Sampler之BeanShellSampler的使用
by:授客 QQ:1033553122
歡迎加入軟件性能測試交流群: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 key,String 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:\\ ");
2)class_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兩個變量
運行結果:
注:
1、log.info等方法會把日志寫入到JMeter安裝目錄->bin目錄下的jmeter.log文件中(形如:D:\Program Files (x86)\Jmeter\apache-jmeter-2.13\bin jmeter.log)
2、參數輸入框中也可以直接輸入字符串參數值,如下