我刚刚开始使用量角器对 Angular 单页应用程序进行 e2e 测试。我已经用登录页面开始了测试。这是我为失败案例编写的测试
案例一
it('Login with wrong email', function() {
loginPage.get();
loginPage.setEmail('xxxxx@xxxx.com');
loginPage.setPassword('12345678');
loginPage.submit()
expect(browser.getCurrentUrl()).toBe(loginPage.appUrl + '/#/login')
})
上面的代码完美运行。我正在使用 url 测试登录失败,如果 url 没有更改,则将其视为失败。Q1)这是正确的方法吗?我应该检查错误消息吗,我见过这样的例子,所以用 url 测试登录失败。
测试用例 2
这是我收到错误的地方,测试用例检查成功登录。
it('Login with correct email', function() {
loginPage.get();
loginPage.setEmail('YYYY@YYYY.YY');
loginPage.setPassword('12345678');
loginPage.submit()
expect(browser.getCurrentUrl()).toBe(loginPage.appUrl + '/#/home')
})
如果我不使用上面的测试用例也可以完美运行browser.getCurrentUrl()
,当我使用时出现以下错误getCurrentUrl
,这loginPage.submit()
是一次成功的登录尝试并重定向到另一条路线。
等待 Protractor 与页面同步 11 秒后超时。请参阅https://github.com/angular/protractor/blob/master/docs/faq.md。以下任务待处理
我用谷歌搜索了这个问题并找到了很多解决方案,但似乎没有一个有效。
试用解决方案
- 添加
allScriptsTimeout
,getPageTimeout
到量角器配置文件。 - 添加
defaultTimeoutInterval
到配置文件 - 发现以下SO问题link1,link2和这个 github问题,尝试了所有三个,但似乎都没有工作
- 当我用
timeout
错误消息搜索时,我发现这个 SO 问题link1,link2,我尝试了所有不起作用的
基本上所有的解决方案都说要使用wait
, sleep
, waitForAngular
. 我尝试了所有thenable
时尚,因为所有回报都承诺。我发现这个问题是因为使用browser.getCurrentUrl
. 让我知道我在哪里做错了,并想深入了解使用量角器进行 e2e 测试。
我想知道量角器的基础知识,它在路由更改上的工作原理以及量角器如何$http
处理异步用户操作。我应该明确使用承诺等吗?
任何帮助是极大的赞赏。