gpt4 book ai didi

selenium - 使用 Jenkins CI 在 Docker 容器中运行自动化 Selenium Nightwatch.js 测试

转载 作者:行者123 更新时间:2023-12-02 20:13:27 26 4
gpt4 key购买 nike

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

目前我使用 Nightwatch-Cucumber 进行自动化测试和 Nightwatch.js将在 GitLab CI 上成功执行在 headless Chrome 上创建的 Docker 镜像/容器中.因此我创建了一个 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实例来执行我​​的测试。我想创造两个工作:
  • 在推送到测试项目的master时执行测试(相当于当前的GitLab CI解决方案)
  • 通过手动启动 Jenkins CI 来执行测试
  • 通过 Jenkins CI 上的时间触发器执行测试

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

    我的第一个想法是创建一个 shell 脚本来启动容器并在容器中执行测试。但后来我没有得到任何测试结果返回 Jenkins CI或者?
    Nightwatch.js 的程序与 的 Java 实现不同 Selenium .所以,这是我第一次使用 Nightwatch.js . Nightwatch.js 测试必须在 Docker 容器中执行,测试结果必须返回到 Jenkins CI .

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

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

    最佳答案

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

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

    关于selenium - 使用 Jenkins CI 在 Docker 容器中运行自动化 Selenium Nightwatch.js 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45173095/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com