BeanShell取樣器可以理解為一個小型的Java解釋器
當我們要執行一些復雜的操作的時候例如給密碼通過特殊的算法來加密解密,可能通過Jmeter自帶的插件很難完成,這時候我們就可以通過BeanShell自己編寫腳本來處理
導入Java腳本過程:
第一步導包:將你的Java代碼打包成jar包通過下圖,把jar包添加進Jmeterlib
第二部,創建一個BeanShell取樣器,在其中輸入import 包名.類名,就可以導入你自己寫的Java代碼啦,調用的方法和正常的Java使用基本一致
下面說說BeanShell常用的幾個內置對象:
①log:寫入信息到jmeber.log文件,使用方法:log.info(“你要輸出在日志的信息”),注意點是log.info只輸出String類型的變量
具體案例如下面演示:
②vars :操作jmeter變量,這個變量實際引用了JMeter線程中的局部變量容器(本質上是Map),它是測試用例與BeanShell交互的橋梁,常用方法:
a) vars.get(String key):從jmeter中獲得數據
b) vars.put(String key,String value):將Java種數據存到jmeter變量中
一個小小的注意點vars.put產生的新變量無法通過BeanShell和日志查看
案例如下:獲取登入種的session的值,同時給id賦值讓Jmeter讀取到:
運行結果如下,可以看到成功讀取到了session同時給new這個變量賦了值:
還有一個比較常用的就是prev
prev - (SampleResult):獲取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():獲取響應信息
b) getResponseCode() :獲取響應code
其他的方法可以參考官網的api,這里就不放截圖了