【干货】JMeter BeanShell 应用
視頻匯總首頁(yè):http://edu.51cto.com/lecturer/index/user_id-4626073.html
不廢話直接上場(chǎng)景
場(chǎng)景1:業(yè)務(wù)單據(jù)參數(shù)化時(shí)要生成一組(多個(gè)時(shí)間,比如訂單日期,發(fā)貨日期等)未來的時(shí)間,運(yùn)用JMeter提供的時(shí)間函數(shù)并不能較好的完成
場(chǎng)景2:測(cè)試Java接口,確又不想繼承AbstractJavaSamplerClient 來完成,此時(shí)可以用BeanShell Sampler來完成
場(chǎng)景3:線程共享變量,我們希望線程之間共享一個(gè)變量,可以利用BeanShell來完成
其它功能自己類推......
場(chǎng)景1:生成訂單日期與發(fā)貨日期,然后放入變量
代碼方便復(fù)制粘貼:
[java] view plaincopyprint?
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
Date date = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String nowDate = sf.format(date);
Calendar cal = Calendar.getInstance();
cal.setTime(sf.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR, +3);
String chanceDate = sf.format(cal.getTime());
cal.add(Calendar.DAY_OF_YEAR, +7);
String planFinishDate = sf.format(cal.getTime());
vars.put("orderDate",chanceDate);
vars.put("delivery",planFinishDate);
這里的 orderDate delivery 在Vars中,在JMeter中是以Map的形式存放的,我們只需要${變量名}來引用,變量能夠保證數(shù)據(jù)一致性(簡(jiǎn)單說就是線程互不干擾)。走起,調(diào)用試試:
1.Java請(qǐng)求調(diào)用
2.結(jié)果樹中察看
如果這兩個(gè)時(shí)間(orderDate,delivery)在測(cè)試過程中只需要生成一次,可以把BeanShell Sampler 放在僅一次控制器下,這樣性能更加。
場(chǎng)景2:
下面BeanUtil是一個(gè)接口程序,已經(jīng)打包BeanShell.jar,現(xiàn)在測(cè)試其中的getUserName與getAddress方法
直接用BeanShell Sampler到調(diào)用接口方法:
上圖中,我們簡(jiǎn)單的調(diào)用了getUserName()與getAddress()方法
log.error是在控制臺(tái)輸出結(jié)果(僅僅調(diào)試的時(shí)候用,正式測(cè)試時(shí)去除掉)。
vars.put()是把取得的結(jié)果放到變量,供下一個(gè)Sampler調(diào)用()。
當(dāng)然有個(gè)最得要的部分別忘記了,接口包BeanShell.jar要放到%JMETER_HOME%\lib目錄(建議),當(dāng)然你也可以在測(cè)試計(jì)劃中加入(不建議)
如下圖:
如果 BeanShell.jar(你的包名可以任意取名)依賴別的包,那么它所依賴的包也要一道放到%JMETER_HOME%\lib目錄。
場(chǎng)景3
線程共享變量
?JMeter中線程間共享變量可以通過定義屬性值來完成,JMeter啟動(dòng)時(shí)會(huì)讀取一些屬性文件,比如jmeter.properties、user.properties,這些屬性
值是可以增加的,也可以修改的,通過BeanShell可以對(duì)其進(jìn)行更改。
?以BeanShell Sampler為例,在其中通過props.put()來增加屬性,props.get()來獲取屬性。
?在其它Sampler中,比如Java Sampler中通過 ${__property(【屬性名稱】,,)}來獲取。
?
??
各類視頻匯總地址:http://xqtesting.blog.51cto.com/4626073/1669386
QQ群掃下方二維碼
?
總結(jié)
以上是生活随笔為你收集整理的【干货】JMeter BeanShell 应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5 LocalStorage 本
- 下一篇: Android Notification