jmeter做測試中,經常會有下一個請求需要用到上一個請求的返回值,那如何取到這個返回值就顯得很重要。下面有兩個方法,可以按照自己的熟悉程度在測試過程中靈活使用。
1、正則表達式法
正則表達式是比較直接的獲取返回值得方法,只要熟悉正則表達式,就不在話下。
使用方法是,請求右鍵---后置處理器---正則表達式提取器,如圖
添加正則表達式提取器后,就可以設置正則表達式了,左右邊界值設置正確,取到值是沒問題的
返回有多組數據的,想取第幾個,那么再【匹配數字】中寫幾。如寫2,則去返回第二組的值。【匹配數字】寫0的時候,多個數組中的值隨機取。
當然,不是所有的人都對正則表達式熟悉,那么在使用中往往會有取不到值得情況,可以試試下面的方法。
2、JSON Extractor 方法(jmeter 3.1)
測試http接口的時候,返回值通常是json格式的。而json格式是key-value的方式來存,當然我們就可以使用key值來取到后面的value值。
打開jmeter,新建一個調用接口的http請求,然后添加后置處理器,就可以看到有json extractor這個插件了,如下圖:
注意,若是jmeter3.0,可能需要自己下載插件。該插件下載地址為:http://jmeter-plugins.org/wiki/JSONPathExtractor/,下載完之后,把lib文件夾放到jmeter的目錄下就可以了。3.0的名稱是 json path extractor。
響應數據如下圖:
需要從響應數據中取到sign,那么分析一下響應數據中的json串,sign在login_info這個列表里面存着,那就要先取到login_info里面的值,再取login_info里面的元素,就是用戶信息,再取到sign。如下圖:
若響應數據的json串中有多個值,那就要先取到login_info里面的值,再取login_info里面的第一個元素,就是用戶信息,再取到sign。JSON Path expressions的表達式將會變成$.login_info[0].sign
第二種方法更多詳細介紹,可參考 http://www.nnzhp.cn/archives/322 Jmeter中處理json