Jmeter之BeanShell變量使用講解


一、在測試過程中經常會遇到一些業務邏輯處理需要,單純的線程設置不能滿足,這時候就要使用BeanShell編寫一定的腳本

前置處理器:BeanShell PreProcessor,主要接口請求前做一些參數化及邏輯處理

后置處理器:BeanShell PostProcessor ,自己寫腳本提取參數,或者使用正則表達式

本人主要由於接口加密,從而需要使用BeanShell做一些接口參數化

\

二、接口加密需要開發提供的Jar包,放到/Users/wuxi/Documents/apache-jmeter-3.2/lib/ext里面

從而可以在BeanShell使用該加密方法進行邏輯處理

三、參數的使用,BeanShell里面參數變量引用來源

1、測試計划內變量,以后變量可以直接使用${url},${domain},可以在很多組件中直接使用

\

2、CSV Data Set Config中取值,一樣使用${mobile}去使用,多個參數可以使用,分開

\

3、正則表達提取的變量,也可以直接使用${token},${id}去使用

正則提取跟LR的關聯差不多,主要是左右邊界獲取中間所要提取的值

\

正則表達式:一般是用(.+?)全部獲取

模版:$1$ 獲取第一個匹配的,如果確認接口就返回一個該字段 $1$.匹配數字1,即可

如果返回很對該字段,則$-1$ ,匹配數字-1 來獲取,${XXXX_matchNr}來獲取整個獲取字段個數

變量提取最好使用Debug Sampler 來確認下變量名是否提取的是自己所要的

\

4、BeanShell 變量的使用,將需要引用的變量寫在parameters中

\

${id}可以直接寫入string內部,jmeter會優先識別該變量,"${id}"也能獲取到變量

也可以String token = vars.get("token");把jmeter參數轉化為 java 變量,再進行字符串拼接

vars.put("user",user); //Bean shell的變量存到jmeter中,勾選編碼

\

對於非法字符進行編碼:在chrome中可以調試,encodeURIComponent(),dencodeURIComponent()


免責聲明!

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



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