有以下五個元件:
• beanshell sampler
• beanshell preprocessor
• beanshell postprocessor
• beanshell assertion
• __beanshell function
常用物件
1、vars:實際引用jmeter執行緒的區域性變數,連通jmeter和beanshell(本質上是個map)
vars.get(string key)//獲取字串變數值
vars.put(string key,string value)//儲存value到變數key
vars.putobject("object_name", object);//儲存物件(包括list, map, closure之類)
vars.getobject("object_name");//讀取物件
2、log:寫入資訊到日誌中
log.info("")
3、prev:獲取前乙個sample的響應
prev.getresponsedataasstring():以字串形式獲取響應資訊
prev.getresponsecode():獲取狀態碼
4、props:hashtable物件,可以跨執行緒組使用
props.put("some_variable',vars.get("some_variable"))
常用指令碼
import org.json.*;
string response = prev.getresponsedataasstring();//獲取前乙個sample的響應
"response的值:" + response);//將返回值轉換為json物件
jsonobject responsejson = new jsonobject(response);
jsonobject dataobj= responsejson.getjsonobject("data");//獲取data物件
jsonarray answersarr= dataobj.getjsonarray("answers");//獲取answers陣列
failure=true;//標記該斷言失敗
failuremessage="內容檢查失敗";//在log中輸出失敗原因
jsonobject的資料是用 來表示的,
例如:
jsonarray,顧名思義是由jsonobject構成的陣列,用 [ , , ...... , ] 來表示
例如: [ , ] ;
如何從字串string獲得jsonobject物件和jsonarray物件
jsonobject jsonobject = new jsonobject (string str);
jsonarray jsonarray = new jsonarray(string str ) ;
如何從jsonarray中獲得jsonobject物件
大家可以把jsonarray當成一般的陣列來對待,只是獲取的資料內資料的方法不一樣
jsonobject jsonobject = (jsonobject)jsonarray.get(i);
jsonobject jsonobject = jsonarray.getjsonobject(i) ; (常用)
兩者都可。第一種注意轉換
獲取json內的資料
int jid= jsonobject.getint ( "id" ) ; // 這裡的jid得到的資料就是123.
string jcourse=jsonobject.getstring( "courseid") ; // 這裡的jcourse得到的資料就是huangt-test.
strirng jcourse = jsonobject.get("courseid").tostring();
JMeter中BeanShell斷言使用一
首先必須給beanshell斷言新增failuremessage if 2 totalclient ss2 expected totalclient ss 2 totalclient ss2,actually 2 新增了failuremessage,在jmeter介面執行時,如果beanshell斷...
jmeter之beanshell斷言例項
首先儲存乙個介面的響應結果,比如在http請求的後面新增beanshell後置處理器 beanshell postprocessor 來儲存http請求的響應結果 1 import org.json.23 獲取上乙個請求的返回值 4 string response prev.getresponsed...
JMeter中BeanShell實現寫入檔案
1.首先f test.txt檔案為空 2.定義jmeter引數 3.編寫beanshell public static void execparam string getdata vars.get v2 string getdata string filename f test.txt filewr...