JMeter中BeanShell用法總結(一)


一、什么是Bean Shell

  • BeanShell是一種完全符合Java語法規范的腳本語言,並且又擁有自己的一些語法和方法;
  • BeanShell是一種松散類型的腳本語言(這點和JS類似);
  • BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性,非常精簡的解釋器jar文件大小為175k。
  • BeanShell執行標准Java語句和表達式,另外包括一些腳本命令和語法。

 

二、Jmeter有哪些Bean Shell

  • 定時器:  BeanShell Timer

  • 前置處理器:BeanShell PreProcessor

  • 采樣器:  BeanShell Sampler

  • 后置處理器:BeanShell PostProcessor

  • 斷言:   BeanShell斷言

  • 監聽器:  BeanShell Listener

 

三、BeanShell的用法

通過實例講解BeanShell的用法

使用場景:手機號注冊,登錄,綁卡業務

實現隨機生成不重復的手機號的兩種方式:

1.注冊接口參數:

merchant_id=00000001&bizcode=uums_user_register&mobile=13${__Random(000000000,999999999,Phone)}&password=888888

此種方式,是通過JMeter自帶的Random函數,生成某個范圍內的隨機數,然后后面的登錄業務,直接引用13${Phone}即可

登錄接口:

merchant_id=00000001&bizcode=uums_login&login_type=104&login_account=13${Phone}&password=888888

 

方式2:

通過BeanShell實現:

String time = "${__time(,)}";

int [] arr = {13,15,18,17};
int index=(int)(Math.random()*arr.length);//產生0-(arr.length-1)的整數值,也是數組的索引
int rand = arr[index];

String time =time.substring(6,13);
vars.put("Phone",rand+""+${__Random(0,9,RandNo1)}+""+time+""+${__Random(0,9,RandNo2)});
//如果在測試過程中,存在重復,也可以構造其他隨機數


//1476063656393
//6063697317
//063754461

 

 

注意:BeanShell放置注冊采樣器的下面和放在測試用例下的區別:

每次都會執行BeanShell Sampler一次

 

放在注冊采樣器下:每次只執行一次:

 


免責聲明!

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



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