2016-11-18 47 views
2

我运行的JMeter的请求,响应看起来是这样的:过程jsonpath后处理结果

{ 
    "Items":[ 
    { 
     "Available":3, 
     "Info":[ 
     {  
      "Sample1":1, 
      "Sample2":33, 
      "Sample3":50, 
      "Sample4":"asd", 
      "Sample5":88, 
      "Sample6":null, 
      "Sample7":null, 
      "Sample8":null, 
      "Sample9":35, 
      "Sample0":35 
     } 
     ] 
    } 
    ] 
} 

我的目标是要经过项目的列表(我的样本中只有一个,但可以有更多),如果'可用'大于0,则将'Info'中的一些值保存到变量中,以便将它们用于下一个请求。

我现在的解决方案是,我加了JSON路径后处理器在那里我分隔值是这样的:

$.Items[?(@.Available > 0)].Info[0].Sample1[0]; 
$.Items[?(@.Available > 0)].Info[0].Sample2[0]; 
$.Items[?(@.Available > 0)].Info[0].Sample3[0]... 

,但显然这不是一个非常漂亮的解决方案,我也认为这将花费太多资源,如果我必须做很多次。

所以我的问题是它在某种程度上可以将

$.Items[?(@.Available > 0)].Info[0] 

元素分开,然后再处理它得到我需要的领域?

+0

是否想使用单个JSON PATH提取器读取所有“Sample *”值? –

+0

@Naveen不,只是其中的一部分。 – user7177532

+0

@Naveen对不起,我没有注意到你的问题中的'single'这个词,对于我来说,使用多少个JSON路径表达式来获取值并不重要,我只是不想调用'is available大于0'检查每个表达式,如果可能的话。 – user7177532

回答