当您决定执行测试用例时,请使用下面列出的任何配置。请参考典型的conf.js 文件并选择conf.js 文件中的任何配置。
exports.config = {
// The address of a running selenium server.
seleniumAddress: 'http://localhost:4444/wd/hub',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
specs: ['spec1.js','spec2.js']
};
Type-1:单个浏览器实例:在某一时间启动一个浏览器实例
时间。
conf.js 文件中的示例配置。
capabilities: {
browserName: 'chrome',
},
specs: ['spec1.js','spec2.js']
以上配置将启动chrome浏览器实例,并一一执行所有规范
sequestial --> [chrome] --> spec1.js --> spec2.js
Type-2:不同的浏览器实例将并行启动,所有
spec:[] 标签中提到的规范将在每个
浏览器的实例分开。
conf.js 文件中的示例配置。
multiCapabilities: [
{ browserName: 'chrome', },
{ browserName: 'firefox', },
],
specs: ['spec1.js','spec2.js','spec3.js']
上述配置将启动 chrome、firefox 浏览器并在每个浏览器实例中并行执行所有规范。
--> [chrome] ---|--> spec1.js --> spec2.js --> spec3.js
|
parallel
|
--> [firefox] ---|--> spec1.js --> spec2.js --> spec3.js
Type - 3:以下配置将帮助您执行不同的
不同浏览器实例中的一组规范。
conf.js 文件中的示例配置。
multiCapabilities: [
{
browserName: 'chrome',
specs:['spec1.js']
},
{
browserName: 'firefox',
specs:['spec2.js']
},
],
以上配置将启动chrome、firefox浏览器并在chrome中执行spec1.js,在firefox实例中执行spec2.js
--> [chrome] ---|--> spec1.js
|
parallel
|
--> [firefox] ---|--> spec2.js
Type - 4:在同一浏览器上并行执行不同的规范文件。
假设您的测试套件中有 5 个规范文件,并且您希望
并行执行所有内容。下面的配置可以帮助你
这样做。
conf.js 文件中的示例配置。
capabilities: {
browserName: 'chrome',
specs: [
'spec1.js', 'spec2.js', 'spec3.js' , 'spec4.js' , 'spec5.js'
],
maxInstances : 5,
shardTestFiles: true
}
上述配置将启动 5 个 chrome 实例,每个规范将在这 5 个 chrome 实例中并行执行。
|-- [instance 1] --|--> spec1.js
|-- [instance 2] --|--> spec2.js
--> [chrome] ---|-- [instance 3] --|--> spec3.js
|-- [instance 4] --|--> spec4.js
|-- [instance 5] --|--> spec5.js
maxInstances 数字表示 Protractor 允许创建的浏览器窗口的最大数量。
例如,将 maxInstances 设置为 10,包含 200 个测试的测试套件将导致 Protractor 创建 10 个 Chrome 实例,每个实例运行 20 个测试,而没有 shardTestFiles,这将是一个运行所有 200 个测试的 Chrome 实例。