JMeter中如何根据环境变量控制请求参数foo的赋值逻辑?
JMeter实现条件参数值的最简方案
你要的需求可以直接在参数值里用JMeter内置函数实现,不需要额外添加逻辑控制器或前置处理器,这是最简便的方式:
方法1:用__if函数(JMeter 5.4及以上版本适用)
在HTTP请求的参数列表中,添加参数foo,将其值设为:
${__if(${__P(check,true)},${__time()},,)}
__if函数逻辑:第一个参数是判断条件,当${__P(check,true)}等于true时,返回第二个参数${__time()}的结果;否则返回第三个参数(此处留空,即空字符串)。
方法2:用__groovy函数(兼容所有JMeter版本)
如果你的JMeter版本较低(低于5.4),推荐用Groovy函数实现,参数foo的值设为:
${__groovy(props.getOrDefault("check", "true") == "true" ? System.currentTimeMillis() : "",)}
逻辑说明:通过props.getOrDefault("check", "true")获取属性check的值(默认true),判断是否等于true;如果是,返回当前时间戳(和__time()效果一致),否则返回空字符串。
注意事项
- 这里的
${__P(check,true)}是读取JMeter属性,如果你实际要读取的是系统环境变量,需要把__P换成__env函数,比如${__env(check,true)},对应的Groovy代码也要改成System.getenv().getOrDefault("check", "true")。
内容的提问来源于stack exchange,提问作者Hayi
相关产品推荐
相关产品推荐

