[英]Is it possible to run Selenium like tests in a Windows Docker Container
[英]Easiest way to run Selenium tests in a Docker container over Jenkins CI
我想用Dockers容器中的Jenkins CI執行我的自動化測試,用Nightwatch-Cucumber
編寫。 我有一個Docker圖像,我想用它。
這就是我想要做的更詳細的事情。
通過GitLab CI我已經通過.gitlab-ci.yml
配置文件實現了它並且它運行得非常好:
image: "my-docker-image"
stages:
- "chrome-tests"
before_script:
- "apt-get update"
- "apt-get install -y wget bzip2"
- "npm install"
cache:
paths:
- node_modules/
run-tests-on-chrome:
stage: "chrome-tests"
script:
- "whereis xvfb-run"
- "xvfb-run --server-args='-screen 0 1600x1200x24' npm run test-chrome"
但我想與Jenkins CI實現相同的程序。 什么是最簡單的方法,並在Jenkins調用的Docker鏡像中運行我的自動化測試? 我應該寫一個Dockerfile或者不是或者或者?
查看維護的Selenium Docker映像 ,特別是節點風格。 無論您是決定按原樣使用容器還是自己動手,這都是一個好的起點。
我目前正在運行用PHP編寫的Selenium Test腳本,並使用Docker Compose通過Jenkins運行它們。 您也可以這樣做,而無需自己處理Xvfb的麻煩。
要使用Docker容器內的無頭瀏覽器運行Selenium測試並使用docker-compose將其鏈接到您的應用程序,您只需使用預定義的獨立服務器即可。
https://github.com/SeleniumHQ/docker-selenium
我目前正在使用Chrome Standalone圖片。
這是您的docker-compose應該是什么樣子:
version: '3'
services:
your-app:
build:
context: .
dockerfile: Dockerfile
your_selenium_application:
build:
context: .
dockerfile: Dockerfile.selenium.test
depends_on:
- chrome-server
- your-app
chrome-server:
image: selenium/standalone-chrome:3.4.0-einsteinium
當運行docker-compose時,它將啟動您的應用程序,將與您的應用程序交互的selenium環境,以及將為您提供無頭瀏覽器的獨立服務器。 因為它們是鏈接的,所以在你的selenium代碼中,你可以通過你的app:80向主機發出測試請求。 您的無頭瀏覽器將是chrome-server:4444 / wd / hub,這是默認地址。
這可以在Jenkins內部完成,只需在Jenkins Job中的Execute Shell中使用一個命令。 docker-compose還允許您在本地計算機上輕松運行測試,結果應該相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.