【问题标题】:Run automated Selenium Nightwatch.js tests in Docker Container with Jenkins CI使用 Jenkins CI 在 Docker 容器中运行自动化 Selenium Nightwatch.js 测试
【发布时间】:2017-07-18 17:06:20
【问题描述】:

我的自动化测试基于Nightwatch-CucumberNightwatch.js。我创建了一个 Dockerfile 并将构建的 Docker image 推送到 Docker Cloud。

目前我使用Nightwatch-CucumberNightwatch.js 的自动化测试将在我创建的无头Chrome 上的Docker 映像/容器中通过GitLab CI 成功执行。因此我创建了一个gitlab-ci.yml

image: "grme/nightwatch-chrome-firefox:0.0.1"

stages:
  - "chrome-tests"

before_script:
  - "npm install"
  - "npm install -y nightwatch-cucumber@7.1.10"
  - "npm install -y chromedriver@2.30.1"
  - "npm install -y geckodriver@1.7.1"
  - "npm install -y cucumber-html-reporter@2.0.3"
  - "npm install -y multiple-cucumber-html-reporter@0.2.0"

cache:
  paths:
    - node_modules/

run-tests-on-chrome:
  stage: "chrome-tests"
  script:
    - "xvfb-run --server-args='-screen 0 1600x1200x24' npm run test-chrome"
  only:
    - "master@xxx/e2e-web-tests"

现在我想将此测试执行移植到Jenkins CI。所以,我想以与GitLab CI 相同的方式执行我的测试。

起初我想使用本地Jenkins CI 实例来执行我​​的测试。我想创建两个工作:

  1. 在推送到主测试项目时执行测试(相当于当前的GitLab CI 解决方案)
  2. 通过手动启动 Jenkins CI 来执行测试
  3. 通过Jenkins CI 上的时间触发器执行测试

如果测试未通过,我希望构建失败,并且我想在每次执行后使用Cucumber Report Jenkins Plugin 创建一个Cucumber 报告。

我的第一个想法是创建一个 shell 脚本来启动容器并在容器中执行测试。但后来我没有得到任何测试结果返回Jenkins CI 还是?

Nightwatch.js 的过程与 Selenium 的 Java 实现不同。所以,这是我第一次使用 Nightwatch.jsNightwatch.js 测试必须在 Docker 容器中执行,并且测试结果必须返回给 Jenkins CI

或者,我可以在我创建的 Docker 容器中运行 Jenkins,但我想将它分开。 Jenkins 应该是一个修复实例,只需要在 Docker 容器上启动测试。

但是我怎么能意识到呢?您如何通过我的设置实现它?

【问题讨论】:

  • 嗨,马丁,我玩过你的 docker 镜像 grme/nightwatch-chrome-firefox:0.0.1,我很想看看这个版本的 docker 文件的内容,可以请与我们分享。谢谢!

标签: selenium docker jenkins gitlab-ci nightwatch.js


【解决方案1】:

我不完全确定 Jenkins CI 是如何工作的,但我可以从 Jenkins 中运行一个带有入口点 nightwatch 的 docker 容器(因此它运行 nightwatch 然后停止容器),并将结果作为输出。只需docker run [containername] 就可以了。如果你有 junit.xml 作为输出,你可以用 docker cp [containername]:[absolute_path_to_file_in_container] [destination] cp 它,甚至从停止的容器中@

还有 Jenkins 插件可用于分析该 junit 文件,可以设置作业状态并发布结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 2019-09-01
    • 1970-01-01
    • 2018-02-08
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多