在量角器.js中运行的异步测试是否有默认超时

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

本文关键字:是否 测试 默认 超时 异步 量角器 js 运行      更新时间:2023-09-26

我有一个角度的应用程序。我已经为登录页面编写了一些测试用例,检查了正常的登录场景。

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秒,这应该是理想的。我想使用量角器,因为该应用程序完全位于角度之上。

我猜每次测试后可能会有 300 毫秒的默认超时。 这使得测试变慢。因此,即使检查完成,它也会等待超时。

是否有一些轮询机制,以便如果测试在超时之前完成,它可以向前移动。我尝试像茉莉花一样使用done(),但done()给出错误,我询问知道done()内部是用protractor .

缓慢有可能与量角器每次等待与每个页面同步有关。您可以使用以下方法禁用该功能

ptor.ignoreSynchronization = true;

请记住,该选项旨在临时传递给非角度页面。但如果速度对你来说更重要,我想你可以接受它。

注意 ptor是旧语法,您应该升级并开始使用browser,如下所示:

browser.ignoreSynchronization = true;

如果您开始遇到不稳定的测试,我建议您返回到具有随机问题的特定页面上的默认false值。