2015年11月30日 星期一

在 JMeter 中驗證 JSON

在使用 JMeter 做自動化測試時,想要用比較簡單的方式處理網站回覆的 JSON
簡單查了點資料後,看起來預設的方法應該是用 JSR223 Post Processor 或者 BSF Post Processor
不過從 [1] 的描述看來,這個作法因為要把回應轉成 JavaScript 語法,實際跑起來效率頗低
如果遇到要執行的 concurrent thread 很多時,可能會把 CPU 吃滿。


看了幾篇文章,看起來都推薦依靠 JMeter Plugin 來處理,後來我用的是 JSON Path Assertion [2]
從 [2] 文件的右上角,可以看到這個 Plugin 是被包含在 Extras With Libs Set 內
因此想安裝時,記得要下載 JMeterPlugins-ExtrasLibs-x.x.x 那個檔案,才有包含 JSON Path Assertion。

安裝方法可以參照文件 [2] 的描述,其實就只是下載下來解壓縮,然後貼到 JMeter 資料夾內而已
這些 Plugin 就是一些 jar,放在 /lib 資料夾內,讓 JMeter 開啟時自動讀進去。
安裝完以後,在 JMeter 的 Assertion 元件中就會出現「jp@gc - JSON Path Assertion」可以選擇。

使用方法也蠻簡單的,就是在 JSON Path 那欄寫下要確認的 JSON key 的路徑
要驗證值的話,就將 "Validate against expected value" 打勾,然後下面就輸入預期的回覆值(也可以輸入 regular expression)。

參考截圖如下(轉錄自 Plugin 的官方文件 [2]):

參考資料:
  1. Extract JSON content efficiently with JMeter using JSON PATH syntax with UBIK-LOAD-PACK
  2. JSON Path Assertion
  3. How to verify JSON Response in JMeter?
  4. Parsing JSON responses with JMeter
  5. Jmeter JSON Path Assertion

沒有留言: