JMeter 中单个请求中的多个唯一随机值
Multiple unique random values in a single request in JMeter
我正在尝试在 JMeter 中发出一个 HTTP 请求,其中包含固定范围内的多个随机数(特别是 0-50)。对于每个请求,我需要发送大约 45 个不同的整数,因此对于任何给定的请求,在所述范围内有六个整数不包括在内。显然 {__Random()} 不起作用,因为它不可避免地会产生一些相等的值。我的想法是用整数创建一个数组,例如:
String line = "0, 1, 2, 3, 4, 5.....";
String[] numbers = line.split(",");
然后为它们分配固定的变量名称以包含在请求中。我可以使用带有 CSV 数据的计数器来执行此操作,但我不确定如何使用数组执行此操作。
vars.put("VAR_" + counter, line);
VAR_1 = 1
VAR_2 = 2
and so on...
然后打乱数组(我不知道如何在 Beanshell 中执行此操作)并生成如下内容:
VAR_1 = 16
VAR_2 = 27
...
与下一个请求一起发送。
如果有人可以帮助我解决这个问题,或者提出更简单的方法,我将不胜感激。谢谢
- 要随机播放列表,只需使用 Collections.shuffle() 方法
考虑使用 JSR223 Test Elements and Groovy language 而不是 Beanshell:
- 更多 Java 合规
- 性能更好
- built-in 支持 JSON、XML 和一些 "syntax sugar",可最大限度地减少和简化代码
查看 Groovy Is the New Black 文章了解更多详情
我明白了。它有点丑陋和笨重,但相当简单,并且完全符合我的需要。在 JSR223 预处理器中,我的代码是
def list = [0,1,2,3,4,5,.....];
Collections.shuffle(list);
String VAR_1 = Integer.toString(list.getAt(0));
vars.put("VAR_1", VAR_1);
String VAR_2 = Integer.toString(list.getAt(1));
vars.put("VAR_2", VAR_2);
String VAR_3 = Integer.toString(list.getAt(2));
and so on.....
我不得不手动输入 50 个变量。我确定有更简单的方法,但我很满意。感谢您的建议。
我正在尝试在 JMeter 中发出一个 HTTP 请求,其中包含固定范围内的多个随机数(特别是 0-50)。对于每个请求,我需要发送大约 45 个不同的整数,因此对于任何给定的请求,在所述范围内有六个整数不包括在内。显然 {__Random()} 不起作用,因为它不可避免地会产生一些相等的值。我的想法是用整数创建一个数组,例如:
String line = "0, 1, 2, 3, 4, 5.....";
String[] numbers = line.split(",");
然后为它们分配固定的变量名称以包含在请求中。我可以使用带有 CSV 数据的计数器来执行此操作,但我不确定如何使用数组执行此操作。
vars.put("VAR_" + counter, line);
VAR_1 = 1
VAR_2 = 2
and so on...
然后打乱数组(我不知道如何在 Beanshell 中执行此操作)并生成如下内容:
VAR_1 = 16
VAR_2 = 27
...
与下一个请求一起发送。
如果有人可以帮助我解决这个问题,或者提出更简单的方法,我将不胜感激。谢谢
- 要随机播放列表,只需使用 Collections.shuffle() 方法
考虑使用 JSR223 Test Elements and Groovy language 而不是 Beanshell:
- 更多 Java 合规
- 性能更好
- built-in 支持 JSON、XML 和一些 "syntax sugar",可最大限度地减少和简化代码
查看 Groovy Is the New Black 文章了解更多详情
我明白了。它有点丑陋和笨重,但相当简单,并且完全符合我的需要。在 JSR223 预处理器中,我的代码是
def list = [0,1,2,3,4,5,.....];
Collections.shuffle(list);
String VAR_1 = Integer.toString(list.getAt(0));
vars.put("VAR_1", VAR_1);
String VAR_2 = Integer.toString(list.getAt(1));
vars.put("VAR_2", VAR_2);
String VAR_3 = Integer.toString(list.getAt(2));
and so on.....
我不得不手动输入 50 个变量。我确定有更简单的方法,但我很满意。感谢您的建议。