gpt4 book ai didi

javascript - 在 protractor.js 中运行的异步测试是否有默认超时

转载 作者:行者123 更新时间:2023-11-28 08:22:11 25 4
gpt4 key购买 nike

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

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 使用 selenium 运行相同的测试。只需要大约 2-3 秒,这应该是理想的。我想使用 Protractor ,因为该应用程序完全基于 Angular。

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

是否有某种轮询机制,以便如果测试在超时之前完成,则可以继续进行。我尝试像 Jasmine 中那样使用 done() ,但是 done() 给出错误,我询问知道 done() 是内部打包的使用 Protractor 。

最佳答案

速度缓慢可能与 Protractor 每次等待与每个页面同步有关。您可以禁用该功能

ptor.ignoreSynchronization = true;

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

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

browser.ignoreSynchronization = true;

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

关于javascript - 在 protractor.js 中运行的异步测试是否有默认超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22828381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com