Jmeter之BeanShell腳本


學了Java的一些基本語法后,就可以來在Jmeter中寫寫BeanShell腳本了。

 

直接在線程組下創建一個BeanShell取樣器,然后在腳本區寫java代碼:

 

寫了個循環,執行后在這里看不到,要在jmeter.bat的windows批處理里看到:

 

 

JMeter在它的BeanShell中內置了變量,用戶可以通過這些變量與JMeter進行交互:

1、log:寫入信息到jmeter.log文件,使用方法:log.info(“hahahahahahah”);

2、vars:操作jmeter變量,這個變量實際引用了JMeter線程中的局部變量容器(本質上是Map),它是測試用例與BeanShell交互的橋梁,常用方法:

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

    b) vars.put(String key,String value):數據存到jmeter變量中

 

 

添加日志查看:

 

 

使用vars:

 

 在線程組2里面去訪問vars變量,輸出null,可見vars確實是個局部變量:

 

 

3、props:操作jmeter屬性,該變量引用了JMeter的配置信息,可以獲取Jmeter的屬性,它的使用方法與vars類似,但是只能put進去String類型的值,而不能是一個對象。對應於java.util.Properties。 

props的全局性:

 

 

4、prev:獲取前面的sample返回的信息,常用方法:

    a)getResponseDataAsString(): 獲取響應信息;

    b)  getResponseCode(): 獲取響應代碼;

 

先發個接口請求,然后prev獲取返回信息:

 

 

自定義函數:使用Java自定義函數來處理特定的邏輯,結合BeanShell的內置對象進行變量的存取,提高腳本的靈活性。

寫了個自定義的靜態函數,實現的是整數的累加:

 

 

發現報錯,原來是函數的返回值是int類型的,而log.info()里面要的是String。這里把int類型的result轉換為string有三種方法:
1、String.valueOf(result)

2、Integer.toString(result)

3、result+""

任選一個即可。

 

 

引用外部java文件:在BeanShell中通過source("代碼路徑")方法引入Java文件,然后調用方法和java一樣,new一個對象,通過

對象調用里面的方法。

寫個靜態方法,保存為Test.java文件,放在D盤下:

 

 然后在BeanShell里引用Test.java,調用函數,傳參100,日志輸出:

 

 

引用外部jar包

首先打包:

 

1、把當前的Test作為運行文件,先運行一遍。

 

 2、右鍵項目名--Export--Runnable JAR file.

 

 

3、在Launch找到運行文件,放到jmeter安裝目錄下lib/ext下。

 

 

4、在Jmeter的BeanShell里導包,調用方法。

 

 這里我運行報錯了,說方法找不到,摸索良久后嘗試在測試計划里添加一下jar包,結果成功了。

 

 


免責聲明!

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



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