首先自己寫一個根據手機號生成加密字符串的函數,並且導出為Jar包,函數具體內容省略,網上有很多
將Jar包放到Jmeter lib\ext目錄下面,然后在user.properties里面把路徑加進去
創建一個BeanShell PreProcessor,這是一個前置的beanshell,會在我發request前把我需要的mobile還有簽名生成好
具體結構如圖:
我的request的body data如下:
{ "mobile":"${mobile}", "signature":"${sin}" }
beanshell里面:
import Tools.MD5Util; MD5Util md5=new MD5Util(); vars.put("str",md5.MD5()); String test = vars.get("str"); vars.put("sin",test.substring(0,32)); vars.put("mobile",test.substring(33));
這里有個坑,需要把Jmeter的變量轉換成beanshell認識的變量,String test = vars.get這步比較重要
試了很多次用${str}直接去取值,beanshell不會把它當作變量來處理,只會當作是字符串。
打印結果如下,看結果應該知道,我封裝的方法返回了簽名+","+手機號,如變量str顯示,所以我在beanshell里面做了截取字符串的處理: