JMeter元件之BeanShell PostProcessor的使用
1. 場景一:獲取請求響應中的資料,並儲存
import com.alibaba.fastjson.*; // 引入包。這個包需要先放在:<安裝目錄>\apache-jmeter-3.2\lib\ext中
// 獲取資料
String response = prev.getResponseDataAsString(); // 獲取Response
JSONObject responseObj = JSON.parseObject(response); // 整個Response作為JSON物件
JSONObject resObj = responseObj.getJSONObject("res"); // 獲取某一部分物件。即,json串中{}的內容
JSONArray listArray = resObj.getJSONArray("list"); // 獲取列表。即,json串中[]的內容
// 儲存資料
// 1) 列表
int len = listArray.size();
for(int i=0; i<len; i++){
temp[i] = listArray.get(i).getString("name");
}
vars.put("names", Arrays.toString(temp)); // 儲存到JMeter變數中,vars.put只能儲存字串,因此這裡使用了toString()進行轉換
// 2) String型別
String id = resObj.get("id"); // 獲取物件中某一字串的內容。
vars.put("id", id); // 儲存到JMeter變數中,後面的元件可以使用
// 3) Integer型別
Integer no = resObj.get("id"); // 獲取物件中某一整型的內容。
vars.put("no", no.toString()); // 儲存到JMeter變數中,vars.put只能儲存字串,因此這裡使用了toString()進行轉換
2. 場景二:獲取資料庫中查詢到的資料,並儲存
前提:在JDBC Request中已經獲取到資料,詳見《JDBCRequest的用法》。
select total_cash from t_cash where user_name="tom";
在Result variable name中的值為:result
String cash_new = vars.getObject("result").get(0).get("total_cash").toString();
vars.put("cash_new", cash_new); // 操作前與此步驟相同,不再贅述。儲存的變數名為cash_old
---------------------
作者:aduocd
來源:CSDN
原文:https://blog.csdn.net/aduocd/article/details/80351719
版權宣告:本文為博主原創文章,轉載請附上博文連結!