Jmeter:带有beanshell的随机数

时间:2016-10-20 12:19:47

标签: jmeter beanshell

我想在帖子请求中添加2种参数。

从http请求中我提取了2个变量列表:

Order_id = input type="hidden" name="(drag.+?)" value="(\d+?)"

Weight_id = class="draggableviews-weight form-select" id=".+?" name="(drag.+?)"

在随后的Post Request中,我需要重新发布所有这些变量。我为此使用BeanShell PreProcessor。第一个列表没有问题,因为它获得相同的值。第二个列表应该在-50和50之间得到一个新的随机值。我还希望每次迭代都有一个不同的随机值。

我该怎么做?

image1 image2 image3

如果我使用Random Variabele Config Element,我会为每个varbele获得相同的随机int。我希望每次迭代都有不同的一个。

enter image description here

2 个答案:

答案 0 :(得分:2)

我建议使用像

这样的ThreadLocalRandom.nextInt()方法
sampler.addArgument(name2, String.valueOf(java.util.concurrent.ThreadLocalRandom.current().nextInt(-50, 51)));

不要将JMeter Functions内联到Beanshell脚本中,要么通过"参数"部分并通过Parametersargs缩写或使用适当的基于代码的替换进行引用。

有关JMeter测试中Beanshell脚本的详细信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南。

答案 1 :(得分:0)

To retrieve multiple values from single Regular Expression Extractor, we use Templates as follows:

enter image description here

then refer groups as follows: enter image description here

In the image, you can see that link is Reference Name and there is only match found with the regular expression.

number of matches is : link_matchNr
first group value    : link_1_g1
second group value   : link_1_g2

Note: The regular expression I tried on is google.com, you can also simulate the same as follows: enter image description here

  1. Use Random function as follows:

    value2 = ${__Random(-50,50)};

    log.info("valuee2 " + value2);

    1. Use Random Variable: enter image description here then, refer Output Variable in Beanshell Preprocessor as follows:

    value2 = vars.get("randomInt");