我有一个角度应用程序。我已经为登录页面编写了一些测试用例,检查了正常的登录方案。
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秒,这应该是理想的。 我想使用量角器,因为应用程序完全位于角度之上。
我猜想每次测试后可能会有300毫秒的默认超时时间。这使得测试变慢。因此,即使检查完成,它也会等待超时。
是否有一些轮询机制,以便如果测试在超时之前完成,它可以继续前进。我尝试在jasmine中使用done()
,但done()
给出了错误,我询问是否done()
内部使用protractor
进行了缓存。
答案 0 :(得分:0)
慢速度很可能与量角器等待每次与每个页面同步有关。 您可以使用
禁用该功能ptor.ignoreSynchronization = true;
请记住,该选项旨在临时传递给非角度页面。 但如果速度对你来说更重要,我想你可以坚持下去。
注意ptor
是旧语法,您应升级并开始使用browser
,如下所示:
browser.ignoreSynchronization = true;
如果您开始体验片状测试,我建议您回到具有随机问题的特定网页上的默认false
值。