視頻地址:http://edu.51cto.com/lecturer/4626073.html
成都創(chuàng)新互聯(lián)專注于趙縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。趙縣網(wǎng)站建設(shè)公司,為趙縣等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)JMeter 中可以使用 Beanshell Sampler 編寫一些簡單的腳本,實(shí)現(xiàn)更多功能。
1、Beanshell
Beanshell 是一種輕量級的 Java 腳本,純 Java 編寫的,能夠動(dòng)態(tài)的執(zhí)行標(biāo)準(zhǔn) java 語法及一些擴(kuò)展腳本語法,類似于 javaScript 和 perl。
2、內(nèi)置變量
Beanshell Sampler 中除了可以使用標(biāo)準(zhǔn) java 語法之外,還有一些定義好的變量,可以直接使用。
SampleResult
ResponseCode,
ResponseMessage
IsSuccess
Label
FileName
ctx
vars
props
log
下面我按使用頻率,分別講一下最常用的幾種變量。
3、log
用于打印日志,最常用,也最簡單;
打印在 jmeter.log 中,可以設(shè)置打印級別,可以打印字符串、變量等。
使用方法:
1、打印 info 形式的普通字符串日志:
log.info("hello world"); 輸出 hello world
2、拼接字符串和變量 (其中 token 是 jmeter 局部變量):
log.info("hello world" + "${token}"); 輸出 hello world 和 token 變量的拼接結(jié)果
3、打印自定義變量
str = "12345";
log.info(str); 輸出 12345
4、打印 error 形式的普通字符串日志:
log.info("hihihi");
log.error("aaaaa");
輸出的區(qū)別:
2018-12-27 19:05:13,158 INFO o.a.j.u.BeanShellTestElement: hihihi
2018-12-27 19:05:13,158 ERROR o.a.j.u.BeanShellTestElement: aaaaa
print() 打印日志
在 beanshell 中還可以使用 print() 函數(shù)來打印日志,輸出字符串等信息;
print() 是在控制臺(tái)中輸出信息,log() 默認(rèn)是在 jmeter.log 中輸出信息。
4、vars
用于存取 jmeter 局部變量,很常用,一定要掌握;
通常用于存取字符串內(nèi)容,也可以存取對象;
vars.get()
String mykey = vars.get("keyname");
獲取變量名為 keyname 的值,并保存在 mykey 中。
vars.put()
vars.put("keyname","value");
把變量 keyname(值為 value)保存到 jmeter 變量中。
vars.putObject("OBJname",new Object());
把一個(gè)對象 OBJname 保存到 jmeter 變量中
vars.remove()
vars.remove("keyname");
從 jmeter 變量中刪除 keyname。
5、props
用于存取 jmeter 全局的靜態(tài)變量;
其中的 key 和 value 均是字符串形式;
ymd = props.get("START.YMD");
獲取屬性 START.YMD 的值(腳本啟動(dòng)日期)。
props.put("PROP1","1234");
把 1234 存入全局屬性 PROP1 中。
6、ctx
當(dāng)前線程的上下文信息;
使用舉例:
ctx.getCurrentSampler(); 獲取當(dāng)前 sampler 請求
ctx.getPreviousSampler(); 獲取前一個(gè) sampler 請求
ctx.getThreadNum(); 獲取當(dāng)前線程的序號,從 0 開始計(jì)數(shù)
ctx.getThread(); 獲取當(dāng)前線程
ctx.getThreadGroup(); 獲取當(dāng)前線程組
ctx.getProperties(); 獲取所有屬性
ctx.getVariables(); 獲取當(dāng)前線程的所有變量
7、SampleResult
SampleResult.setResponseData(data);
自定義響應(yīng)數(shù)據(jù)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。