1、 背景 开发人员自测接口的时候一些繁琐
当你为了安全性给自己的接口添加了一个加密算法的参数,搞到最后发现作为开发人员的自己,要自己先自测自己的接口时,感觉有些些许的繁琐,不然就暂时把加密的部分去掉测试,又或者加密的方式自己每次都要手动的生成一个,但jmeter很好的解决了我们这个问题。
例如我的接口中
master入参中是传递参数sign sign 是md5动态生成,
2、 配置jar路径
3、 jar调用方法
3.1、 添加beanShell控件
3.2、BeanShell 中添加代码
import org.apache.commons.codec.digest.DigestUtils;
String bindParams = vars.get("bindParams");
String custId = vars.get("custId");
String orderNo = vars.get("orderNo");
String timestamp = vars.get("timestamp");
String signStr = "bindParams=" + bindParams + "&custId="+ custId + "&orderNo=" + orderNo + "&tamp="+ timestamp + "&key=&&&&&&&&";
public static String getSign(String signStr){
//调用外部jar包中的类进行加密
vars.put("sign",DigestUtils.md5Hex(signStr));//把值保存到jmeter变量checkSum中
}
getSign(signStr);
4、 请求
在benShell同目录下,建立一个java请求,引入变量sign(上述代码中,vars.put("sign",DigestUtils.md5Hex(signStr)))
5 疑问,当md5中有中文的时候会出现问题
5.1 中文的时候可能md5 加密失败,但在intellij中和eclipse中可以。(解决方法,content encoding UTF-8 ,修改配置文件,修改jar中的代码)
修改md5jar 中的java代码,添加上编码:str.getBytes("UTF-8")
这样请求中的md5参数就自动为我们添加上了,自测的时候也省去了自己要先用main函数加密,然后再拼接参数请求自己的接口了,这个工具果然强大。