2016-11-18 64 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

回答