在JMeter中实现单用户请求选择性执行及比例执行的方法
JMeter 请求执行控制方案
问题1:从2个HTTPS请求中选择执行其一
以下是两种常用实现方式:
方式1:按条件指定执行(精准控制)
- 添加用户定义的变量,命名为
target_request,赋值为1或2(对应两个请求的序号)。 - 给第一个HTTPS请求套上If Controller,条件填写:
${__jexl3(${target_request} == 1,)} - 给第二个HTTPS请求套上If Controller,条件填写:
${__jexl3(${target_request} == 2,)} - 运行前修改
target_request的值,即可指定执行对应请求。
方式2:随机二选一执行
- 添加Random Controller,将两个HTTPS请求移入该控制器下。
- 确保控制器的「每次迭代随机选择一个子元素」选项处于勾选状态(默认已开启),每次运行时会随机执行其中一个请求。
问题2:固定首请求+概率执行后续请求
按以下步骤配置:
- 直接放置第一个HTTP请求,它会在每次迭代中优先执行。
- 在第一个请求下方添加Weighted Random Controller。
- 将第二个HTTP请求移入该控制器,设置其权重为
25;将第三个HTTP请求移入控制器,设置其权重为75。- 权重比例决定执行概率:25/(25+75)=25%,75/(25+75)=75%,完全匹配需求。
- 若使用旧版JMeter无Weighted Random Controller,可替代为:
- 先添加用户定义的变量,用
${__random(1,100,rand_val)}生成1-100的随机数并存储。 - 给第二个请求套上If Controller,条件填写:
${__jexl3(${rand_val} <=25,)} - 给第三个请求套上If Controller,条件填写:
${__jexl3(${rand_val} >25,)} - 此方式通过随机数区间实现概率控制,确保同一迭代中只会触发一个后续请求。
- 先添加用户定义的变量,用
内容的提问来源于stack exchange,提问作者Raxon
相关产品推荐
相关产品推荐

