JMeter Sampler之BeanShellSampler的使用


 

 

SamplerBeanShellSampler的使用

by:授客 QQ1033553122

歡迎加入軟件性能測試交流群:7156436

1.  Bean Shell簡介

·         BeanShell是一種完全符合Java語法規范的腳本語言,並且又擁有自己的一些語法和方法;

·         BeanShell是一種松散類型的腳本語言(這點和JS類似);

·         BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性,非常精簡的解釋器。

·         BeanShell可執行標准Java語句和表達式,另外包括一些腳本命令和語法。

 

2.  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),常用方法:

a) vars.get(String key):從jmeter中獲得變量值

b) vars.put(String keyString value):數據存到jmeter變量中,其作用可簡單理解為賦值操作:key=value,更多方法可參考:org.apache.jmeter.threads.JMeterVariables

 

·         props:即JMeterProperties - class java.util.Properties,操作jmeter屬性,該變量引用了JMeter的配置信息,可以獲取Jmeter的屬性,它的使用方法與vars類似,但是put函數,value數據類型只能為String,不能是一個對象。對應於java.util.Properties 

a) props.get("START.HMS");  注:START.HMS為屬性名,在文件jmeter.properties中定義 

b) props.put("PROP1","1234"); 

 

·         Parameters:從參數輸入框中獲取的參數值的集合

 

·         bsh.args:從參數輸入框中獲取的參數值的數組

 

3.  啟動Jmeter ,添加測試計划,線程組等

 

4.  添加BeanShell Sampler

右鍵線程組->添加->Sampler->BeanShell Sampler

 

 

5.  應用舉例

4.1 自定義腳本、函數

 

注:UUID含義是通用唯一識別碼 (Universally Unique Identifier),java中可調用randomUUID直接生成。

 

代碼如下:

 

使用保存的unique_id變量值

 

 

4.2 引用外部java文件

 

 

 

說明:運行結果,在d盤根目錄下生成shouke.txt文件

附:eclipse中代碼組織結構如下(下同,不再贅述):

 


 

其中:

CreateFile.java代碼文件內容:

 

 

4.3 引用外部class文件

 

 

運行后,在d盤根目錄下生成destfile.txt文件

 

注意:

addClassPath(String class_path);

1 這里的class_path可以不是絕對上級路徑,只需要包含.class文件即可,比如可以是

addClassPath("D:\\workspace\\StudyProject\\");

addClassPath("D:\\ ");

 

2class_path不能包含包名對應的目錄路徑

如上,如果改成addClassPath("D:\\workspace\\StudyProject\\bin\\ mypackage");

運行會報類似如下錯誤

2016/10/17 17:55:50 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   CreateFile (wrong name: mypackage/CreateFile)

2016/10/17 17:55:50 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    CreateFile (wrong name: mypackage/CreateFile)

 

4.4 引用外部jar文件

如下,

1、在eclipse中單獨把CreateFile.java文件打包成jar文件,比如create-file.jar

2、把create-file.jar文件放到JMeter安裝目錄->lib目錄下

3、然后在JMeter的【測試計划】面板中添加打包的jar文件

 


 

4.5 JMeter內置變量演示

添加【配置原件】-【用戶定義的變量】,並在面板中添加var1,var2兩個變量

  

運行結果:

 

 

注:

1log.info等方法會把日志寫入到JMeter安裝目錄->bin目錄下的jmeter.log文件中(形如:D:\Program Files (x86)\Jmeter\apache-jmeter-2.13\bin jmeter.log

2、參數輸入框中也可以直接輸入字符串參數值,如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM