首先自己写一个根据手机号生成加密字符串的函数,并且导出为Jar包,函数具体内容省略,网上有很多
将Jar包放到Jmeter libext目录下面,然后在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里面做了截取字符串的处理: