Jmeter 处理MD5加密
-
引入MD5加密所需要的jar包。该jar包的名字是:commons-codec-1.9.jar
https://mvnrepository.com/artifact/commons-codec/commons-codec/1.9
-
线程组下添加一个 前置处理器 BeanShell PreProcessor:线程组——添加——前置处理器——BeanShell PreProcessor
(BeanShell PreProcessor 主要是用来完成加密字符串的拼接和MD5 加密)
- 在前置处理器 BeanShell PreProcessor添加如下内容:
- Jmeter 5 自带 org.apache.commons.codec.digest jar,所以只需要导入就可以了
- 字符串的顺序拼接规则是:按照参数的首字母,对参数进行A-Z的顺序进行排序,并拼接,可以参见图中参数的排序规则
- 字符相互之间连接类似:appVersion=V1.0.0&clientType=XXX&productId=XXX&source=XXX,注:不同公司的拼接规则不同,需询问开发具体的拼接规则
🌰
// 导入MD5加密需要用到的jar包。
import org.apache.commons.codec.digest.DigestUtils;
// 声明你需要拼接的字符串
String requestTime = "${__time(,)}"; //生成时间戳
String appVersion ="XXX";
String clientType ="XXX";
String productId ="XXX";
String source ="XXX";
//拼接需要加密的字符串
String str = "appVersion="+appVersion+"&clientType="+clientType+"&productId="+productId +"&requestTime="+requestTime+"&source="+source+"istarkid2018";
// 加密已拼接的字符串
String sign = DigestUtils.md5Hex(str);
vars.put("signStr",sign.toString()); //把生成的signStr提供给beanshell外部组件引用
vars.put("requestTime",requestTime.toString()); //把生成的时间戳提供给beanshell外部组件引用
vars.put("appVersion",appVersion.toString()); //把生成的版本号提供给beanshell外部组件引用
vars.put("clientType",clientType.toString()); //把生成的clientType提供给beanshell外部组件引用