新公司要編寫jmeter腳本,Java丟掉N久也不想撿起來的我第一時間尋找其他語言編寫的方法,千辛萬苦找到了jython,還沒開心呢,寫完登錄和退出腳本問題就來了,jython已經停更多年,很多功能和現在並不接軌了,只能扭頭乖乖撿起java。好在jmeter腳本需要的Java包主要只有兩個,一個JSONArray一個JsonObject。為了加深印象順帶撿起丟了許久未更新的blog開始記隨筆了,目標是一周內熟悉語法,能獨立編寫beanshell。
基本獲取jmeter響應參數都可以套用下面的模板
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//獲取上一個請求的返回值
String json=prev.getResponseDataAsString();
//將返回值轉換為json
JSONObject jso = JSON.parseObject(json);
//獲取data
JSONObject data = jso.getJSONObject("data");
//獲取token
//也可以寫作String token = jso.getJSONObject("data").getString("token");
String token = data.getString("token");
log.info("token");
//使用vars.put()方法儲存變量token
vars.put("token",token);
在后面的其他接口中如何需要使用變量token,可以使用${token}來獲取變量的值;
變量儲存好后,在需要斷言的接口后面添加BeanShell斷言,使用Failrue來標識斷言失敗,FailureMessage標示斷言失敗的原因,如:
//使用vars.get()方法獲取變量的值
String token= vars.get("token");
if(!message.equals("")) {
Failure = true;
FailureMessage = "規則解析失敗";
}else{
FailureMessage = "規則解析成功";
}
或者直接在需要斷言的接口中進行斷言操作
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//獲取上一個請求的返回值
String json=prev.getResponseDataAsString();
//將返回值轉換為json
JSONObject jso = JSON.parseObject(json);
//獲取data
JSONObject data = jso.getJSONObject("data");
//獲取token
//也可以寫作String token = jso.getJSONObject("data").getString("token");
String token = data.getString("token");
log.info("token");
if(!message.equals("")) {
Failure = true;
FailureMessage = "規則解析失敗";
}else{
FailureMessage = "規則解析成功";
}
