我想在GitLab中运行selenum网格容器。它们将是:一个selenium集线器和两个由共享网络连接的铬节点容器。我知道如何使用yaml文件部署这些容器,但我不知道如何在gitlab中启动这些容器。
理想的情况下,三个编码程序将在pipleine中启动,然后我将执行一个脚本,该脚本将使用网格.运行一些硒测试。
这里有我的yml文件,它将在本地启动selenium网格:
version: '3.7'
services:
selenium-1:
image: selenium/node-chrome:latest
shm_size: '2gb'
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-2:
image: selenium/node-chrome:latest
shm_size: '2gb'
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
expose:
- 4444下面是启动selenium测试的脚本:
#!/usr/bin/env bash
set -e
python -m pytest到目前为止我的..gitlab ci.yml:
stages:
- e2e
e2e:
stage: e2e
interruptible: false
services:
- selenium/hub:latest
- selenium/node-chrome:latest
script:
- bash run_test_page.sh发布于 2022-07-30 03:34:42
我基本上使用丁丁来运行撰写文件。
在下面的片段中,我试图提到基本的部分,您可以在这里看到一个完整的项目示例
而且,我使用的是java和maven,在您的例子中,python不需要太多的更改。
码头工- gitlab管道使用的构筑物
version: "3"
services:
selenium-chrome-01: &selenium-chrome
image: selenium/node-chrome:4.3.0-20220726
shm_size: 2gb
depends_on:
- selenium-hub
environment:
SE_EVENT_BUS_HOST: ${SELENIUM_SERVER_NAME}
SE_EVENT_BUS_PUBLISH_PORT: 4442
SE_EVENT_BUS_SUBSCRIBE_PORT: 4443
selenium-chrome-02:
<<: *selenium-chrome
selenium-hub:
image: selenium/hub:4.3.0-20220726
shm_size: 2gb
container_name: ${SELENIUM_SERVER_NAME}
ping:
image: alpine/curl
tests:
image: openjdk:11
working_dir: /app
volumes:
- ${CI_PROJECT_DIR}:/app
environment:
ENVIRONMENT: remote
SELENIUM_SERVER_URL: ${SELENIUM_SERVER_URL}复合文件有4个容器-两个工作节点、一个集线器、一个检查集线器状态的容器,以及一个运行测试的容器。
gitlab管道文件-
stages:
- test
variables:
SELENIUM_SERVER_NAME: selenium
SELENIUM_SERVER_URL: http://${SELENIUM_SERVER_NAME}:4444
DOCKER_HOST: tcp://docker:2375
services:
- docker:20.10.16-dind
test:
stage: test
image: docker/compose
before_script:
- docker-compose up -d selenium-hub selenium-chrome-01 selenium-chrome-02
- sleep 10
- docker-compose run ping curl ${SELENIUM_SERVER_URL}/status
script:
- docker-compose run tests ./mvnw test -Dtest=TestClass我认为 关于gitlab runner的配置,您可以以services的形式运行selenium网格,我觉得这是一个更好的解决方案
https://stackoverflow.com/questions/72080548
复制相似问题