You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium自动化测试:GitLab变量关联TestNG.xml及流水线配置

实现GitLab流水线中动态选择测试环境与浏览器

1. 在GitLab中配置可选择变量

进入GitLab项目的设置→CI/CD→变量,添加两个可编辑变量:

  • 变量名TEST_ENV:默认值设为常用环境(如dev),勾选「在流水线运行时可编辑」
  • 变量名TEST_BROWSER:默认值设为常用浏览器(如chrome),勾选「在流水线运行时可编辑」
    如果要限制可选值,可在变量描述里注明允许的选项,或者直接在.gitlab-ci.yml里配置下拉选择框(见下一步)

2. 修改.gitlab-ci.yml传递变量给Maven

更新流水线脚本,将GitLab变量作为系统属性传给Maven,同时可配置下拉选项简化界面选择:

stage: test
variables:
  TEST_ENV:
    description: "选择测试环境"
    value: "dev"
    options:
      - "dev"
      - "test"
      - "prod"
  TEST_BROWSER:
    description: "选择测试浏览器"
    value: "chrome"
    options:
      - "chrome"
      - "firefox"
      - "edge"
script:
  - mvn test -DsuiteXmlFile=testng.xml -Denv=$TEST_ENV -Dbrowser=$TEST_BROWSER

注:原脚本中-DsuiteXmlFile=pom.xml应为笔误,需改为实际的testng.xml路径

3. 修改testng.xml读取系统属性

把testng.xml里硬编码的env、browser参数替换为读取系统属性的配置:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Selenium Test Suite">
  <parameter name="env" value="${env}" />
  <parameter name="browser" value="${browser}" />
  
  <test name="UI Tests">
    <classes>
      <class name="com.yourpackage.YourTestClass" />
    </classes>
  </test>
</suite>

TestNG会自动读取Maven传入的-Denv、-Dbrowser系统属性,替换参数值

4. 测试代码中注入参数(可选)

如果需要在测试类中直接使用这些参数,可通过TestNG的@Parameters注解注入:

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class YourTestClass {
    @Parameters({"env", "browser"})
    @Test
    public void testMethod(String env, String browser) {
        System.out.println("当前测试环境:" + env);
        System.out.println("当前测试浏览器:" + browser);
        // 后续Selenium驱动初始化等逻辑
    }
}

触发时选择参数

手动触发流水线时(项目→CI/CD→流水线→运行流水线),会看到配置的TEST_ENV和TEST_BROWSER选项,直接选择或修改值后启动即可

内容的提问来源于stack exchange,提问作者Shavaiz Safdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:50:45