我正在使用量角器1.4对E2E测试我们的Angular网站。我有一套测试正在运行并完美传递,直到一周前突然大部分测试在11秒超时时开始失败("超时等待Protractor在11001ms&#34之后与页面同步;)
因为我想回溯并发现是否有一段代码可以解决这个问题,我恢复了一个可以提交的提交,并且我标记为所有测试都在通过和nada - 仍然是同样的问题。 / p>
此时我不知道原因是什么以及如何继续。似乎环境中的某些东西已经发生了变化(回复并没有改变),但我不确定它是什么。 我认为这可能与Chrome版本有关,所以我尝试使用firefox - 结果相同。
我非常感谢给予的任何帮助。
测试失败的示例:
it('should succeed for new user and fail for registered one', function () {
//check create account link
var createAccountLink = element(by.id('createNewAccountLink'));
expect(createAccountLink.getText()).toEqual("or Create account");
createAccountLink.click();
//check create account title
expect(element(by.css('#createAccountTitle > span')).getText()).toEqual("Create account");
//insert new phone
element(by.model('phone.number')).sendKeys(e2eHelperMethods.testedPhoneNumber);
element(by.id('sendPinCodeBtn')).click();
//check the pin code message
expect(element(by.css('#pincodeSentMsg > span')).getText()).toContain(e2eHelperMethods.testedPhoneNumber);
element(by.buttonText('OK')).click();
//check pin code input screen
element(by.model('model.pinCode')).sendKeys(e2eHelperMethods.defaultPin);
element(by.id('validatePinCodeBtn')).click();
//enter new password for the user
element(by.model('model.password')).sendKeys(e2eHelperMethods.defaultPassword);
element(by.model('model.repeatPassword')).sendKeys(e2eHelperMethods.defaultPassword);
element(by.id('updateNewPasswordBtn')).click();
//verify we got to the home screen
expect(browser.getCurrentUrl()).toEqual(e2eHelperMethods.defaultWebsiteUri + 'home');
//now log out and try to create same user again and verify we are failing
browser.get(""); <-------------Here it hangs and gives me the
createAccountLink.click();
element(by.model('phone.number')).sendKeys(e2eHelperMethods.testedPhoneNumber);
element(by.id('sendPinCodeBtn')).click();
expect(element(by.css('#numberAlreadyRegisteredMsg > span')).getText()).toContain("Your number is already registered. Please enter the password to login.");
});
也许值得一提的是,在失败的时候,网站开始了一个Into.JS之旅 - 也许这就是问题?
答案 0 :(得分:0)
事实证明,我们在启动Web应用程序时使用了$ timeout来监视用户的不活动状态。 为测试环境禁用此功能解决了主要问题。 仍然对于Intro.JS框架,似乎我们必须导致使用browser.driver实例,因为由于某种原因,它会挂起并最终抛出11秒的异常。