我是jMeter的新手,我正在使用它。
我有一个由两个循环控制器组成的线程组。
在第一个循环控制器中,有一个包含正文数据的HTTP请求
{ ..., "var1": "var-${__RandomString(10,1234567890abcdefg)}", ... }
在第二个循环控制器中,还有另一个包含var1的HTTP请求,我想在这个var1中设置与第一个循环控制器中的prev var1相同的值。
我尝试过使用User Defined Variables,但它为另一个Thread Groups生成了相同的值,我想为每个Thread Group生成不同的var1值。
任何人都可以帮助我,我该怎么做才能使它有效?谢谢:))
答案 0 :(得分:0)
添加后处理器 - > Http Request的正则表达式提取器,您想要获取名为var1
的变量。
如上图所示,使用"var1": "(.+?)",
作为正则表达式。 (.+?)
部分定义了嘿!正则表达式提取器,请在"var1": "
和",
之间的任何内容中获取,您可以在响应内容中找到它。因此,var-${__RandomString(10,1234567890abcdefg)}
将被提取到名为Var1
的变量中(因为您将Var1
定义为引用名称。
然后,在要访问该变量的Http Request中,使用${Var1}
以将Var1
变量的值作为请求参数发送。类似下面的图片
请注意,循环中的最后一个值将保存在Var1
中。如果你想在第一个循环中保存所有值以便在第二个循环中使用它们,那么有很多方法可以做到这一点。
您可以将配置元素中的计数器添加到第一个循环控制器,并定义例如loopCounter
作为它的参考名称。使用0
和1
填充开始和增量字段。
然后将正则表达式更改为Var${loopCounter}
在下一个循环的Http请求中,您可以使用${Var1}
,${Var2}
和...
答案 1 :(得分:0)
只需将__randomString()功能更改为:
${__RandomString(10,1234567890abcdefg,var1)}
它将使用随机生成的值覆盖${var1}
,因此您将在两个循环控制器中获得相同的随机字符串。
有关上述和其他功能的更多信息,请参阅How to Use JMeter Functions文章系列。