2017-04-20 61 views
1

如何提取JSON路徑並使用java查找數組長度?爲我的下面的迴應數據。我需要在Jmeter斷言中驗證數組長度應該等於'7'。如何提取json路徑並查找數組長度?

[ 
    [ 
    "Week", 
    "Event Count" 
    ], 
    [ 
    "3/13/17", 
    "1" 
    ], 
    [ 
    "3/20/17", 
    "1" 
    ], 
    [ 
    "3/27/17", 
    "1" 
    ], 
    [ 
    "4/3/17", 
    "1" 
    ], 
    [ 
    "4/10/17", 
    "1" 
    ], 
    [ 
    "4/17/17", 
    "1" 
    ] 
] 
+0

您能分享您的JSON數據而不是響應嗎? – fiskra

+0

@fiskra,這只是我的迴應數據 –

回答

2
  1. 添加JSON Extractor作爲產生上述JSON響應請求的一個孩子,其配置如下:

    • 變量名:任何有意義的事,即week
    • JSON路徑表達式:$[*]
    • 分離號碼:-1

      JMeter JSON Extractor

    這將產生以下JMeter的變量(可以使用Debug Sampler驗證它們):

    week_1=["Week","Event Count"] 
    week_2=["3\/13\/17","1"] 
    week_3=["3\/20\/17","1"] 
    week_4=["3\/27\/17","1"] 
    week_5=["4\/3\/17","1"] 
    week_6=["4\/10\/17","1"] 
    week_7=["4\/17\/17","1"] 
    week_matchNr=7 
    

    你是後者

    JMeter Debug Sampler

  2. 特別感興趣
  3. Response Assertion一樣請求的孩子,因爲如下步驟進行設置:

    • 適用於:JMeter的變量 - >week_matchNr
    • 模式匹配規則:Equals
    • 模式來測試:7

    JMeter Response Assertion Against JSON Variable

    這樣你的取樣器將通過匹配數將等於7和o無論如何,它會失敗。請參閱How to Use JMeter Assertions in Three Easy Steps文章以瞭解有關在JMeter測試中使用斷言的更多信息。

+0

很酷的東西,謝謝@dmitri T但我使用的是2.13版本的J-meter。所以我沒有JSON Exactor。 –

+0

您可以通過[JMeter插件](https://jmeter-plugins.org/)項目使用[JSON路徑提取器](https://jmeter-plugins.org/wiki/JSONPathExtractor/)。您可以使用[JMeter插件管理器](https://www.blazemeter.com/blog)安裝JSON路徑提取器(以及[JSON路徑聲明](https://jmeter-plugins.org/wiki/JSONPathAssertion/))/how-install-jmeter-plugins-manager) –

+1

每種方式我看他們的規格,$ [*]。length()應該工作,但它不。看起來像JSONPath或Jmeter中的一個錯誤對我來說。良好的解決方法。 – minnow