lou*_*ros 5 angularjs protractor
我有一个使用非角度登录页面的角度应用程序。仅当用户登录时,Angular应用才会加载。
我已经端到端测试我的无棱角登录与页面量角器和茉莉按照这个帖子,运行位于我的测试代码e2e/login.spec.js和使用browser.ignoreSynchronization = true,以防止没有角加载。
我现在想对我的角度应用程序进行一些测试,但是不能,因为后端重定向到登录页面。这意味着我需要为每个角度视图测试记录一个testingUser。如果进行大量测试,效果不是很好。
我知道有一种解决方案,可以通过模拟后端API来解决登录页面倾斜的问题(请参阅同一篇文章),但无法使用我现有的API 。
有没有办法让用户保持登录状态?它是什么?还是其他解决方法?我是否需要在angular应用程序内实现开发人员登录页面以进行测试?
小智 4
在我的配置文件中,我有一个包含很多变量的 onPrepare 对象。这包括登录功能,如下所示:
global.loginFn = function loginFn() {
usernameInput.sendKeys(username);
passwordInput.sendKeys(password);
login.click();
};
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以添加 browser.ignoreSynchronization,如下所示:
global.loginFn = function loginFn() {
browser.ignoreSynchronization = true;
usernameInput.sendKeys(username);
passwordInput.sendKeys(password);
login.click();
};
Run Code Online (Sandbox Code Playgroud)
然后在我的spec.js 文件中我可以这样做:
beforeAll(function () {
browser.get('myUrl');
loginFn();
};
Run Code Online (Sandbox Code Playgroud)
在你的 it 块中,你可以添加
browser.ignoreSynchronization = false;
Run Code Online (Sandbox Code Playgroud)
所以它知道再次等待角度。你甚至可以尝试把
beforeAll(function () {
browser.get('myUrl');
loginFn();
browser.ignoreSynchronization = false;
};
Run Code Online (Sandbox Code Playgroud)
所以你不必重复自己,我个人并没有这样做,但它应该有效。
这样,您需要在该规范文件中运行的任何测试,用户都将登录,并且不必在每个测试之前(即在该特定测试套件中的所有测试之前)登录它们。
或者,如果您的所有测试都需要用户登录,您可以使用 onPrepare 登录用户,而不是仅仅创建一个在特定时间调用的函数。
| 归档时间: |
|
| 查看次数: |
682 次 |
| 最近记录: |