簡體   English   中英

在protractor.js中運行的異步測試是否存在默認超時

[英]Is there a default time-out for asynchronous tests running in protractor.js

我有一個角度的應用程序。 我已經為登錄頁面編寫了一些測試用例,以檢查正常的登錄方案。

describe('Login screen tests', function () {
  var ptor = protractor.getInstance();

  beforeEach(function(){
    ptor.get('http://url:3000/login/#/');
  });

  it('Blank Username & Password test', function() {
    ptor.findElement(protractor.By.id("submit")).click();
    var message = ptor.findElement(protractor.By.repeater('message in messages'));
    message.then(function(message){
        expect(message.getText()).toContain('Username or Password can\'t be blank');
    });
  });

  it ('Blank Password test', function(){
    ....
  });

  it ('Invalid username test', function(){
    ....
  });    

  ......  //Similarly more test cases folow for the login screen. 
});

測試可以按預期正常運行。

問題:測試非常緩慢,大約需要1.5分鍾才能完成。 如果我通過java使用硒運行相同的測試。 僅需要2-3秒左右,這是理想的選擇。 我想使用量角器,因為該應用程序完全在角度之上。

我猜想,每次測試后可能會有300ms的默認超時時間。 這會使測試變慢。 因此,即使檢查完成,它也會等待超時。

是否有某種輪詢機制,以便在超時之前完成測試可以繼續進行。 我試過像在茉莉花中一樣使用done() ,但是done()給出了一個錯誤,我詢問知道done()內部是用protractor修補的。

速度慢可能與量角器每次都等待與每個頁面同步有關。 您可以通過以下方式禁用該功能

ptor.ignoreSynchronization = true;

請記住,該選項旨在傳遞給臨時的非角度頁面。 但是,如果速度對您來說更重要,我想您可以做到這一點。

注意ptor是舊語法,您應該升級並開始使用browser ,如下所示:

browser.ignoreSynchronization = true;

如果您開始遇到不穩定的測試,建議您在出現隨機問題的特定頁面上返回默認的false值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM