首页 文章

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

提问于
浏览
1

我正试图用硒和量角器进行量角器测试 . 要在我的电脑上执行此操作,我将在控制台1上启动selenium服务器:

webdriver-manager update
webdriver-manager start

然后在控制台2上我启动测试:

protractor test.config.js

我想在詹金斯做同样的事情 . 问题是,启动硒后我无法做任何事情,因为控制台在运行selenium服务器时被锁定 . 所以我需要的是在后台(并行)启动selenium服务器到其他进程 . 我对吗?也许有一个Jenkins插件来实现这一目标?

===编辑

谢谢你的回复 . 最后我决定不使用无头浏览器,而是使用selenium-plugin在远程机器上运行测试 . 但是我发现了配置我的测试环境的其他问题 . 到目前为止我所取得的成就是 Build 了硒中心与节点之间的连接 . 当我执行我的protractor.config.js文件时,我有以下错误:

E/launcher - Error: Error: Could not find chromedriver

我不明白的是如何设置驱动程序的路径?应该是哪个驱动程序,来自集线器或来自主机的驱动程序 . 在selenium-plugin配置页面中有一个输入来设置 Chromedriver path 但不考虑它 . 我也尝试在 protractor.conf.js 文件中设置 chromeDriver param,但我仍然收到同样的错误 . 这是我的 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

    Two 快速的工作和 One 我能想到的理想情况:

    work-around1: 将在单独的 bat 文件中运行 webdriver manager 并在批处理脚本中调用它(Windows环境)

    server.bat

    webdriver-manager update
    webdriver-manager start
    

    batch script

    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
    

    work-around2: 将摆脱 webdriver-manager 并在 config 文件中使用 directConnect= true ,如果设置,它将直接与firefox和chrome浏览器交互 .

    Noe:Chrome浏览器有一个开销 . 您需要执行 webdriver-manager update 以下载Chrome驱动程序或手动将其放在特定位置 .

    Ideal Case 将测试环境与始终运行的 selenium server 的测试环境分开是一种很好的做法 . 有两个好的提供者 SaucelabsBrowserStack 你可以根据你的需要选择其中任何一个 . 我希望这会给你一些理解!

  • 0

    这就是我们如何做到的:

    在build下,添加一个“Execute 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从站上执行 .

    希望能帮助到你 . :)

相关问题