JMeter中對於Json資料的處理方法

來源:互聯網
上載者:User

標籤:jmeter   json   beanshell   plug-in   

http://eclipsesource.com/blogs/2014/06/12/parsing-json-responses-with-jmeter/

 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"}

            ]

}

下面我們使用不同的方法來進行資料的抽取工作:

Regex提取

JMeter安裝了Regex外掛程式之後,可以按照固定的格式從字串中提取資料,而本例中Regex如下所示:

"firstName":"(.+?)"

使用了該運算式之後會返回所有服從運算式的字串,但是只有一個運算式是我們所關注的。可以使用$1$來作為模板,而3則會返回第三個資料。


 當偶爾需要對Json資料進行處理時,Regex是一個合適的選擇,它的一個優勢在於JMeter本身就內建了Json處理模組。但是,閱讀處理Regex卻是比較複雜的,特別是對於某些複雜的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格式的返回值中提取資料的方法,Regex對於簡單的Json格式的資料的快速標準化非常佔優勢。而JsonPath外掛程式可以用於建立能夠被維護修改的指令碼,但是需要額外的外掛程式安裝工作。而最後的帶JSON庫的BeanShell確實非常詳細並且依賴於Java語言的靈活性可以進行進一步的開發。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.