JMeter中對於Json資料的處理方法
http://www.51testing.com/?viewspace-3578536
Json 作為一種資料交換格式在網路開發,特別是 Ajax 與 Restful 架構中應用的越來越廣泛。而 Apache 的 JMeter 也是較受歡迎的壓力測試工具之一,但是它本身沒有提供對於
Json 資料的響應處理。本文中假設需要從 HTTP 的響應頭中返回的 Json 格式的資料流中抽取某些特定的資料,資料格式如下:
{
"name":"Simpsons family",
"members":[
{"firstName":"Homer", "lastName":"Simpson"},
{"firstName":"Marge", "lastName":"Simpson"},
{"firstName":"Bart", "lastName":"Simpson"},
{"firstName":"Lisa", "lastName":"Simpson"},
{"firstName":"Maggie", "lastName":"Simpson"}
]
}
|
下面我們使用不同的方法來進行資料的抽取工作:
正規表示式提取
JMeter 安裝了正規表示式外掛之後,可以按照固定的格式從字串中提取資料,而本例中正規表示式如下所示:
"firstName":"(.+?)"
使用了該表示式之後會返回所有服從表示式的字串,但是隻有一個表示式是我們所關注的。可以使用$1$ 來作為模板,而 3 則會返回第三個資料。
當偶爾需要對Json資料進行處理時,正規表示式是一個合適的選擇,它的一個優勢在於JMeter本身就內建了Json處理模組。但是,閱讀處理正規表示式卻是比較複雜的,特別是對於某些複雜的Json資料。
JMeter JSON 外掛
另一種處理 Json 資料的方法是使用 JMeter 的外掛,該外掛可以使用 JSONPath 來獲取 JSON 資料中特定位置的資料。類似於 XML 檔案中的 XPath , JSONPath 可以使用簡單的表示式來操作 Json 物件。 JSON Path Extractor 是一個開源的增加了 post處理器的外掛,可以將該外掛的 Lib 檔案拷貝到 JMeter 的 lib 目錄下即可。
而上文中提及的需要定位的資料可以使用如下的JSONPath 進行描述:
$.members[2].firstName
在 JMeter 中,只需要從 PostProcessor 選單中開啟 JSON Path Extractor 然後輸入變數名與預設值即可,如下所示:
JSONPath 表示式較短並且易於閱讀,能夠有效提高測試指令碼的易維護性,該外掛並不隨著標準的 JMeter 一起安裝。
BeanShell Post Processor
最後一種方法即是借用了 JMeter 的對於 BeanShell 支援的特性, BeanShell 是一個輕量級的面向 Java 的指令碼語言。 BeanShell Post Processor 允許使用標準的 Java 語法來處理 Json 資料,使用方法如下圖所示:
總結
本文列舉出了三種可用的從 Json 格式的返回值中提取資料的方法,正規表示式對於簡單的 Json 格式的資料的快速標準化非常佔優勢。而 JsonPath 外掛可以用於建立能夠被維護修改的指令碼,但是需要額外的外掛安裝工作。而最後的帶 JSON 庫的BeanShell 確實非常詳細並且依賴於 Java 語言的靈活性可以進行進一步的開發。
相關文章
- C#中處理JSON資料的方式C#JSON
- 掌握BeanShell,輕鬆處理jmeter中的資料BeanJMeter
- 處理json格式的資料JSON
- C++實現對Json資料的友好處理C++JSON
- flutter json資料處理FlutterJSON
- Hive處理Json資料HiveJSON
- java 如何簡單快速處理 json 中的資料JavaJSON
- spark處理json資料DemoSparkJSON
- 關於 Eloquent ORM 對資料處理的思考ORM
- Python資料處理(一):處理 JSON、XML、CSV 三種格式資料PythonJSONXML
- 【C#】-對於Null值的處理方法C#Null
- 關於attention中對padding的處理:maskpadding
- flutter json_annotation和json_serializable處理json資料序列化FlutterJSON
- 影像資料不足時的處理方法
- 處理恢復資料方法
- Jmeter中使用前置處理器加密傳輸資料JMeter加密
- jmeter之傳送json資料的post請求JMeterJSON
- 機器學習中資料缺失的處理及建模方法機器學習
- MapReduce中對大資料處理最合適的資料格式是什麼?大資料
- 小程式處理大量資料列表的方法
- 資料預處理方法彙總
- sql server對於日期的處理SQLServer
- 關於一類資料處理
- laravel 處理mongodb大資料量對比方法LaravelMongoDB大資料
- 關於SQL Serve資料庫r帳號被禁用的處理方法SQL資料庫
- Python處理JSONPythonJSON
- 傳統的資料處理方式能否應對大資料?大資料
- 對 JSON 資料的搜尋JSON
- 深入理解JMeter中的JSON ExtractorJMeterJSON
- Jmeter 常用後置處理器之正規表示式提取器、JSON 提取器、JSON JMESPath ExtractorJMeterJSON
- JavaScript 資料處理 - 對映表篇JavaScript
- 大資料常見的處理方法有哪些大資料
- 使用Java處理JSON結構化資料 -Advanced Web MachineryJavaJSONWebMac
- 第四章 Caché JSON 處理資料型別JSON資料型別
- sklearn中常用資料預處理方法
- 各位公司對於遲到是怎麼個處理方法?
- JMeter—前置處理器(九)JMeter
- 多對一處理 和一對多處理的處理
- Python資料處理(二):處理 Excel 資料PythonExcel