1. 程式人生 > >JMeter元件之BeanShell PostProcessor的使用

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
版權宣告:本文為博主原創文章,轉載請附上博文連結!