【发布时间】:2017-03-03 19:07:23
【问题描述】:
在 jmeter 中,我使用 Jmeter json 路径提取器捕获变量。它捕获大约 7-10 个值,我如何从所有捕获的值中传递任何随机值?
【问题讨论】:
标签: jmeter blazemeter
在 jmeter 中,我使用 Jmeter json 路径提取器捕获变量。它捕获大约 7-10 个值,我如何从所有捕获的值中传递任何随机值?
【问题讨论】:
标签: jmeter blazemeter
使用JSON Extractor(从3.0 版本开始),这是在JMeter 中内置的post-processor。语法类似于JSON Path Extractor,所以可以复用配置的JSON Path Expression。
为random value 指定Match Numbers 到0。
来自文档:
匹配数字如果 JSON 路径查询导致许多结果,您可以选择提取哪些作为变量:
- 0:表示随机(默认值)
- -1 表示提取所有结果,它们将被命名为_N(其中N从1到结果数)
- X :表示提取第 X 个结果。如果此 Xth 大于匹配数,则不返回任何内容。默认值为 用过
【讨论】:
例如,你有这个 JSON 响应:
{
"employees": [
{
"firstName": "John",
"lastName": "Doe"
},
{
"firstName": "Anna",
"lastName": "Smith"
},
{
"firstName": "Peter",
"lastName": "Jones"
}
],
"city": "Castle Rock",
"state": "Maine"
}
你有 JSON 路径提取器来获取 firstName 的表达式:$..firstName。它产生以下 JMeter 变量
firstName=["John","Anna","Peter"]
firstName_1=John
firstName_2=Anna
firstName_3=Peter
firstName_matchNr=3
您现在可以使用__Random() 和__V() 函数组合获取随机变量,例如:
${__V(firstName_${__Random(1,${firstName_matchNr},)})}
演示:
有关该方法的更多详细信息,请参阅Here’s What to Do to Combine Multiple JMeter Variables 文章。
【讨论】: