1、什麼是Bean Shellhtml
BeanShell是一種徹底符合Java語法規範的腳本語言,而且又擁有本身的一些語法和方法;java
BeanShell是一種鬆散類型的腳本語言(這點和JS相似);shell
BeanShell是用Java寫成的,一個小型的、免費的、能夠下載的、嵌入式的Java源代碼解釋器,具備對象腳本語言特性,很是精簡的解釋器jar文件大小爲175k。apache
BeanShell執行標準Java語句和表達式,另外包括一些腳本命令和語法。api
官網:http://www.BeanShell.org/eclipse
2、Jmeter有哪些Bean Shellide
定時器: BeanShell Timer工具
前置處理器:BeanShell PreProcessor測試
採樣器: BeanShell Sampler加密
後置處理器:BeanShell PostProcessor
斷言: BeanShell斷言
監聽器: BeanShell Listener
3、BeanShell的用法
在此介紹下BeanShell PreProcessor的用法,其它的beahshell能夠類推。在此咱們使用beahshell調用本身寫的工具類,工具類實現了密碼的加、解密功能:
一、在eclipse寫好代碼,而後把該類打成jar包(在類上點擊右鍵->Export->jar file)
二、把jar包放到jmeter目錄\apache-jmeter-2.13\lib\ext下
三、打開jmeter,添加一個http sampler(調用登陸接口),在sampler下添加一個BeanShell PreProcessor
四、在beanshell PreProcessor中導入咱們的jar包,調用裏面的加、解密碼方法,把結果保存在jmeter變量中,下面兩個方法是beanshell中咱們最經常使用到的:
vars.get(String paramStr):得到變量值
vars.put(String key,String value):,將數據存到jmeter變量中
import com.pingan.ff.account.user.utils.*System..println(= =.println(=vars.(.println( + getEncode);
五、把加密後的密碼存到jmeter變量中,而後在http sampler中就能夠經過${encode}進行使用了:
六、執行腳本:
4、Bean Shell經常使用內置變量
JMeter在它的BeanShell中內置了變量,用戶能夠經過這些變量與JMeter進行交互,其中主要的變量及其使用方法以下:
log:寫入信息到jmeber.log文件,使用方法:log.info(「This is log info!」);
ctx:該變量引用了當前線程的上下文,使用方法可參考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操做jmeter變量,這個變量實際引用了JMeter線程中的局部變量容器(本質上是Map),它是測試用例與BeanShell交互的橋樑,經常使用方法:
a) vars.get(String key):從jmeter中得到變量值
b) vars.put(String key,String value):數據存到jmeter變量中
更多方法可參考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class java.util.Properties):操做jmeter屬性,該變量引用了JMeter的配置信息,能夠獲取Jmeter的屬性,它的使用方法與vars相似,可是隻能put進去String類型的值,而不能是一個對象。對應於java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS爲屬性名,在文件jmeter.properties中定義
b) props.put("PROP1","1234");
prev - (SampleResult):獲取前面的sample返回的信息,經常使用方法:
a) getResponseDataAsString():獲取響應信息
b) getResponseCode() :獲取響應code
更多方法可參考:org.apache.jmeter.samplers.SampleResult
sampler - (Sampler):gives access to the current sampler
官網:
http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler
http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PreProcessor
做者:Glen.He
出處:http://www.cnblogs.com/puresoul/ 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。