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
相关产品推荐
相关产品推荐

