詹金斯正在进行量角器测试

时间:2016-07-19 08:17:41

标签: selenium jenkins protractor selenium-grid

我试图用硒和量角器进行量角器测试。 要在我的电脑上执行此操作,我将在控制台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
    },

    ...
};

2 个答案:

答案 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从站上执行此操作。

希望它有所帮助。 :)