And*_*rit 2 testing end-to-end protractor
我写了一些komplex量角器测试,但一切都在一个文件中.我在它的顶部装载所有变量,如:
var userLogin = "John";
Run Code Online (Sandbox Code Playgroud)
然后在代码中的某个地方我一起使用它.
我需要做的是1.将所有变量文件分离到aditional文件(一些配置文件)2.每个测试到一个文件
1-我尝试使用config.js添加所有变量,我在protractor.conf.js中需要它正确加载问题是当我在某些测试中使用任何变量时它不起作用(测试失败,"userName is未定义")我知道有一种方法可以在每个测试脚本中查询config.file,但这在我看来并不是最好的选择.
2-如果它是独立的,我怎么知道我在最后一个脚本中做了什么,例如如何知道我已经登录?
谢谢.
您可以使用多种功能.
2)我怎么知道我在最后一个脚本中做了什么,如果它是分开的,例如如何知道我已经登录?
这是在哪里beforeEach(),afterEach()可以帮助:
为了帮助测试套件干掉任何重复的设置和拆卸代码,Jasmine提供全局的beforeEach和afterEach功能.顾名思义,beforeEach函数在运行describe中的每个spec之前调用一次,afterEach函数在每个spec之后调用一次.
还有beforeAll(),afterAll()可以在茉莉2,或通过jasmine-beforeAll第三方茉莉花1:
在运行describe中的所有规范之前,只调用一次beforeAll函数,并在所有规范完成后调用afterAll函数.这些功能可用于通过昂贵的设置和拆卸来加速测试套件.
1)我尝试使用config.js添加所有变量,我在protractor.conf.js中需要它正确加载问题是当我在某些测试中使用任何变量时它不起作用(测试失败,"userName is未定义")我知道有一种方法可以在每个测试脚本中查询config.file,但这在我看来并不是最好的选择.
我个人使用的一个选项是创建一个config.js文件,其中包含您在多次测试中需要的所有可重用配置变量,并且需要文件一次 - 在量角器配置中 - 然后将其设置为params配置键值:
var config = require("./config.js");
exports.config = {
...
params: config,
...
};
Run Code Online (Sandbox Code Playgroud)
在哪里config.js,例如:
var config;
config = {
user: {
login: "user",
password: "password"
}
};
module.exports = config;
Run Code Online (Sandbox Code Playgroud)
然后,您不需要config.js在每个测试中都需要,而是您将使用browser.params.例如:
expect(browser.params.user.login).toEqual("user");
Run Code Online (Sandbox Code Playgroud)
此外,如果您需要某种全局测试准备步骤,可以在onPrepare()功能中执行此操作,请参阅设置被测系统.此处提供了执行"全局"登录步骤的示例配置.
另一个快速说明:您可以使用自定义全局定义的变量(如内置browser或变量protractor),使用globalin 设置它们onPrepare.例如,我已经定义protractor.ExpectedConditions为自定义全局变量:
onPrepare: function () {
global.EC = protractor.ExpectedConditions;
}
Run Code Online (Sandbox Code Playgroud)
然后,在测试中,不要求任何东西,`EC变量将在范围内可用,例如:
browser.wait(EC.invisibilityOf(scope.page.dropdown), 5000)
Run Code Online (Sandbox Code Playgroud)
此外,使用"页面对象模式"组织测试也有助于解决可重用性和模块化问题.
| 归档时间: |
|
| 查看次数: |
1885 次 |
| 最近记录: |