我正在使用Protractor进行非角度应用的端到端测试.
一旦我用protractor.conf.js文件写了 -
exports.config = {
directConnect: true,
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
// Framework to use. Jasmine is recommended.
framework: 'jasmine',
// Spec patterns are relative to the current working directory when
// protractor is called.
specs: ['example_spec.js'],
// Options to be passed to Jasmine.
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
}
};
Run Code Online (Sandbox Code Playgroud)
然后它适合我.
之后我做了一些改变,比如 -
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
// Framework to use. Jasmine is recommended.
framework: 'jasmine',
// Spec patterns are relative to the current working directory when
// protractor is called.
specs: ['example_spec.js'],
// Options to be passed to Jasmine.
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
}
};
Run Code Online (Sandbox Code Playgroud)
然后从selenium服务器开始,端口和测试用例成功运行.
所以我的问题是 - 两种方式之间的差异是什么?我知道当我们使用时directConnect:true,它不启动selenium服务器,然后直接使用chrome驱动程序,测试用例运行速度比其他方式快?
当量角器可以在没有selenium服务器的情况下进行测试时,我们为什么需要它呢?selenium服务器在protrator测试中做了什么?
正如你所说,directConnect:trueProtractor直接与Chrome和Firefox的驱动程序通信(任何其他浏览器都会返回错误).
directConnect:true似乎速度的主要优势.测试启动并运行得更快.
另一方面,量角器提到了Selenium Server:
服务器可以处理不同语言的多个脚本.服务器可以在不同的版本和实现中启动和管理多个浏览器.
量角器当然不希望经常保持这些可能性,directConnect:true因为它不是Protractor的主要目的,他们只能比SeleniumServer更糟糕.
跨浏览器测试服务,如BrowserStack和SauceLabs,提供自己的SeleniumServers,应连接使用它们的服务.说服他们提供单独的Protractor解决方案似乎也毫无意义,特别是SeleniumServer已经广泛普及.
总的来说,我认为它是Protractor的一项服务,它们提供了directConnect的可能性,作为从Protractor开始的简化.使用SeleniumServer将是更合理的解决方案,并提供更广泛的可能性,例如跨浏览器测试.
我没有看到(并且从未听说过)比这背后更多的魔法.
| 归档时间: |
|
| 查看次数: |
8412 次 |
| 最近记录: |