最近测试移动端接口,但是请求内容是用MD5加密的,所以要先对请求内容进行加密,Jmeter内置的没有MD5加密方法,所以自己从网上copy了一份,实现了加密功能,以下是具体操作:
1、从网上copy了一份MD5加密方法,用eclipse建个工程(包名、类名、方法名自己起)
package com.wjika.test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class mymd5 {
public static String getMd5(String plainText) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
//32位加密
return buf.toString();
// 16位的加密
//return buf.toString().substring(8, 24);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
}
eclipse截图:
2、导出jar包
3、将导出的jar放到Jmeter安装目录下的lib文件夹下
4、Jmeter新建测试计划,添加线程组,新建BeanShell Sampler,并写入以下测试内容
import com.wjika.test.mymd5;
String pass = mymd5.getMd5(vars.get("users"));
System.out.println(pass);
添加监听器,查看结果树,运行测试,可以看到Jmeter控制台中输出了加密后的字符串
以上,已经实现了字符串的加密,如果想加密自定义变量,可如下:
在测试计划中添加用户自定义变量:
BeanShell Sampler中使用自定义变量users,加密后保存
添加一个http请求,测试加密保存的sign是否可用
运行,查看测试结果: