Jmeter之BeanShell PostProcessor使用

BeanShell介紹

BeanShell是一個嵌套在jmeter中的一個免費的、小型的處理器,採用Java編寫的。
BeanShell執行標準的Java語法,並使用常見的腳本編寫便利進行擴展,可支持自定義導出Jar1包引用等。

使用前的背景

接口間的關聯參數數據需要傳遞參數值。故可通過Beanshell PostProcessor來處理。
下面我們一起來學習如何使用Beanshell PostProcessor獲取接口返回的值。

BeanShell PostProcessor的使用

案例:一個登錄接口響應數據中的token值,在後續的接口(比如:創建用戶)中需要用到。

  1. 使用jmeter複製登錄後的響應數據:
{
	"status":200,
    "message":"",
    "username":"xiaoming",
    "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InhpYW9oZWkiLCJpZCI6NjU3OCwiaWF0IjoxNTg3ODkxNTI4LCJleHAiOjE2NzQyOTE1Mjh9.ICi1Rb9X_2s8GGRsAXmVePJ6byjGEKHB_q3qgN35qtg"
}
  1. 這裏是通過org.json解析的。所以需要下載org.json的jar包。【需自行下載】

  2. jmeter測試計劃中導入下載到的jar包
    在這裏插入圖片描述

  3. 在登錄請求後,添加後置處理器 -> BeanShell PostProcessor。
    在這裏插入圖片描述

  4. 在Beanshell PostProcessor中的Script中輸入以下代碼

//先引入Jar包   
import org.json.*;

//獲取請求返回值。賦予字符串String 變量
String response = prev.getResponseDataAsString();

//將string的值轉換成成 Jsonobject 對象 
JSONObject data_obj= new JSONObject(response); 

//獲取Json中 token的值
String token= data_obj.get("token").toString();

//將獲取到的token值賦予變量
vars.put("token",token);

//打印token的值
log.info("====token====="+token);

打印的日誌在控制檯中顯示
在這裏插入圖片描述
6. 後續的接口調用(${變量名稱})將token對應的值加進去

總結

這個只是簡單的Beanshell 提取json數據。後續有需要,會更新複雜json的解析知識。盡情期待!


  1. Jar包是開發者寫好的工具類通過Java或開發工具(eclipse、idea等)打包而成,供其它人進行調用。 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章