我试图用硒和量角器进行量角器测试。 要在我的电脑上执行此操作,我将在控制台1上启动selenium服务器:
webdriver-manager update
webdriver-manager start
然后在控制台2上启动测试:
protractor test.config.js
我想在詹金斯做同样的事情。问题是,启动硒后我无法做任何事情,因为控制台在运行selenium服务器时被锁定。所以我需要的是在后台(并行)启动selenium服务器到其他进程。我对吗?也许有一个Jenkins插件可以实现这个目标吗?
===编辑
感谢您的回复。最后我决定不使用无头浏览器,而是使用selenium-plugin在远程机器上运行测试。但是我发现了配置我的测试环境的其他问题。到目前为止我所取得的成就是建立了硒中心与节点之间的连接。当我执行protractor.config.js文件时,出现以下错误:
E/launcher - Error: Error: Could not find chromedriver
我不明白的是如何设置驱动程序的路径?应该是哪个驱动程序,来自集线器或来自主机的驱动程序。在selenium-plugin配置页面中有一个输入来设置Chromedriver path
,但不考虑它。我还尝试在chromeDriver
文件中设置protractor.conf.js
参数,但我仍然收到同样的错误。这是我的protractor.config.js
:
exports.config = {
directConnect: true,
// path to driver on node server
chromeDriver: '/usr/local/lib/node_modules/selenium-standalone/.selenium/chromedriver/2.21-x64-chromedriver',
// path to driver on hub server
// chromeDriver: '/u01/apps/jenkins/data/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_5.12.0/lib/node_modules/selenium-standalone/.selenium/chromedriver/2.21-x64-chromedriver',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome',
shardTestFiles: true,
maxInstances: 3
},
...
};
答案 0 :(得分:0)
两个快速解决方案和一个理想情况我能想到:
work-around1:将在单独的webdriver manager
文件中运行bat
并在批处理脚本(Windows环境)中调用它
<强> server.bat 强>
webdriver-manager update
webdriver-manager start
批处理脚本
call "path to your server.bat"
========Server Started========
protractor "path to you protractor config file" // if protractor is installed globally else change directory to specific folder where it is installed & execute the same command
解决方法2:将摆脱webdriver-manager
并在directConnect= true
文件中使用config
,该文件将直接与firefox&amp;如果设置了chrome浏览器。
Noe:Chrome浏览器有开销。您需要webdriver-manager update
下载Chrome驱动程序或手动将其放在特定位置。
理想案例将我们的测试环境与始终运行的selenium server
区分开是一种很好的做法。有两个好的提供者 - Saucelabs
&amp; BrowserStack
您可以根据自己的需要选择其中任何一种。
我希望这会给你一些理解!
答案 1 :(得分:0)
我们就是这样做的:
在构建中,添加“执行Shell”步骤并执行类似的操作:
cd $WORKSPACE/ && npm update && npm install
$WORKSPACE/node_modules/protractor/bin/webdriver-manager update --standalone
$WORKSPACE/node_modules/protractor/bin/webdriver-manager status
grunt run-e2e-tests:<PASS NECESSARY PARAMETERS>
然后将在运行该作业的Jenkins从站上执行此操作。
希望它有所帮助。 :)