如何在jenkins-taurus.yml中传递JMeter脚本的用户自定义变量?
Taurus向JMeter用户自定义变量传参的标准配置方法
是的,Taurus向JMeter用户自定义变量(UDV)传参的标准规范就是使用user.{自定义变量名}的命名格式,完整操作流程如下:
操作步骤
- 第一步:整理JMeter脚本中的用户自定义变量,确保你需要动态传入的变量「名称」字段是固定可识别的,比如
service_url、account、password,原有值可以留空,也可以保留默认值,Taurus传入的变量优先级更高会自动覆盖。 - 第二步:在jenkins-taurus.yml中配置对应变量,有两种常用配置位置:
- 单场景专属变量:放在对应执行场景的properties下,仅对当前JMeter脚本生效
- 全局通用变量:放在modules.jmeter.properties下,对所有执行的JMeter脚本生效
配置示例
单场景变量配置
execution: - executor: jmeter scenario: script: your_test_script.jmx properties: user.service_url: "https://test-service.example.com" user.account: "test001" user.password: "Test@123456"
全局变量配置
modules: jmeter: properties: user.service_url: "https://test-service.example.com" user.account: "test001" user.password: "Test@123456"
Jenkins动态传参示例
如果需要在Jenkins构建时动态传入变量,无需修改yml配置文件,可以直接在执行bzt命令时通过-o参数覆盖:
bzt jenkins-taurus.yml -o execution.0.scenario.properties.user.service_url=${BUILD_SERVICE_URL} -o execution.0.scenario.properties.user.account=${TEST_ACCOUNT}
注意事项
- 变量名大小写敏感,
user.service_url对应JMeter里的service_url,拼写和大小写必须完全一致 - JMeter脚本中引用变量的方式不用修改,还是沿用原有
${service_url}的写法即可 - 如果需要同时传递多套环境配置,可以把不同环境的变量拆分到独立的yml片段中,执行时合并加载即可,比如
bzt base_config.yml test_env.yml
内容的提问来源于stack exchange,提问作者gabrielselotto
相关产品推荐
相关产品推荐

