Jmeter json路径提取器 - 我们如何从所有捕获的变量中获取随机值?

时间:2017-03-03 10:09:13

标签: jmeter blazemeter

在jmeter中,我使用Jmeter json路径提取器捕获变量。它捕获的值大约为7-10,如何从所有捕获的值中传递任何随机值?

2 个答案:

答案 0 :(得分:1)

3.0中使用内置post-processor的{​​{3}}(从JMeter版开始)。语法类似于JSON Path Extractor,因此您可以重用已配置的JSON Path Expression

Match Numbers指定0random value

来自文档:

  

匹配数字如果JSON路径查询导致了很多结果,您可以选择要提取的变量作为变量:

     
      
  • 0:表示随机(默认值)
  •   
  • -1表示提取所有结果,它们将被命名为_N(其中N从1变为结果数)
  •   
  • X:表示提取第X个结果。如果此Xth大于匹配数,则不返回任何内容。默认值为   使用
  •   

答案 1 :(得分:0)

例如,您有此JSON响应:

{
  "employees": [
    {
      "firstName": "John",
      "lastName": "Doe"
    },
    {
      "firstName": "Anna",
      "lastName": "Smith"
    },
    {
      "firstName": "Peter",
      "lastName": "Jones"
    }
  ],
  "city": "Castle Rock",
  "state": "Maine"
}

你有JSON Path Extractor来获取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},)})}

演示:

JMeter Combine Variables with Functions

有关该方法的详细信息,请参阅Here’s What to Do to Combine Multiple JMeter Variables文章。