如何在gitlab-ci.yml中为selenium/standalone-chrome配置超时参数
GitLab CI下selenium/standalone系列镜像超时参数配置方案
你之前配置未生效的核心问题是
environment配置块的缩进位置错误:GitLab CI中Service的专属环境变量必须定义在对应Service的子配置下,你之前的写法将environment放在了services同级,属于Job的全局环境变量,不会传递给selenium服务容器。
正确配置示例
marked_test: image: $CONTAINER_TEST_IMAGE allow_failure: true stage: test services: - name: selenium/standalone-chrome:latest alias: chrome # 注意缩进:environment属于当前service的子配置,比name多2个空格缩进 environment: SE_OPTS: "-timeout 86400 -browserTimeout 86400" - name: selenium/standalone-firefox:latest alias: firefox environment: SE_OPTS: "-timeout 86400 -browserTimeout 86400" only: refs: - main variables: - $TAG_RUN == "marked" tags: - run01_docker script: # 可选调试步骤:验证selenium服务配置是否生效 - curl -s http://chrome:4444/wd/hub/status | grep -E '(timeout|browserTimeout)' - $PYRUN -m $TAG_MARK --env="$TEST_ENV" --mode="server" --browser=$TEST_BROWSER --alluredir=$ALLURE_RESULTS_FOLDER timeout: 2h
补充说明
- 参数单位说明:
-timeout(会话空闲超时)和-browserTimeout(浏览器无响应超时)的单位均为秒,设置值不要超过当前Job配置的全局超时时间(你当前配置为2小时=7200秒,建议根据实际测试时长调整,避免设置过大无意义) - 配置校验:上述调试命令会返回selenium节点的实际生效超时值,可用来确认配置是否正确传递
- 备用方案:如果SE_OPTS方式仍未生效,可直接通过
command字段覆盖服务启动命令,写法如下:
services: - name: selenium/standalone-chrome:latest alias: chrome command: ["/opt/bin/entry_point.sh", "-timeout", "86400", "-browserTimeout", "86400"]
内容的提问来源于stack exchange,提问作者Kisuro
相关产品推荐
相关产品推荐

