如何在JMeter中按指定比例触发不同API负载测试事务?
实现JMeter请求比例分配的几种方法
方法一:构造比例化CSV数据
- 在CSV文件中按8:2的比例填充
Product字段值,例如每10行数据里写入8个VEGAN、2个NON-VEGETARIAN。 - 配置CSV数据文件时,勾选*“乱序读取”*选项,让JMeter随机选取行数据。测试量越大,实际比例越接近80/20的设定。
方法二:随机变量+条件控制器组合
- 添加Random Variable元件,设置取值范围为1-100,变量名设为
random_num。 - 添加If Controller,输入条件
${__jexl3(${random_num} <= 80,)},将需使用VEGAN值的请求逻辑(如HTTP请求中Product字段设为"VEGAN")放入该控制器下。 - 再添加一个If Controller,输入条件
${__jexl3(${random_num} > 80,)},将使用NON-VEGETARIAN值的请求逻辑放入其中。
- 这种方式每次请求都会生成随机数,严格按80%/20%的概率分配流量,适合任何规模的测试。
方法三:随机变量+切换控制器组合
- 添加Random Variable元件,设置取值范围为1-10,变量名设为
rand。 - 添加Switch Controller,将Switch Value设置为
${rand}。 - 在Switch Controller下创建10个子节点:8个配置
Product为VEGAN的请求逻辑,2个配置为NON-VEGETARIAN的请求逻辑。
- 每次随机选取1-10的数字,对应匹配的子节点执行,从而实现8:2的比例分配。
内容的提问来源于stack exchange,提问作者Murali Krishna
相关产品推荐
相关产品推荐

