jmeter无法实现的功能可以用java写个方法来实现,并通过前置处理器来调用方法
1、java编写md5加密方法
package md5test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class getmd5 {
public static String getMD5(String input) {
try {
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
mdInst.update(input.getBytes());
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
StringBuffer hexString = new StringBuffer();
// 字节数组转换为 十六进制 数
for (int i = 0; i < md.length; i++) {
String shaHex = Integer.toHexString(md[i] & 0xFF);
if (shaHex.length() < 2) {
hexString.append(0);
}
hexString.append(shaHex);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
public static void main(String args[]) {
String str = "123456";
System.out.println("原始:" + str);
System.out.println("MD5后:" + getMD5(str));
}
}
2、jar包存放
java方法打成jar包,并放在jmeter安装路径 XXX\apache-jmeter-5.0\lib\ext下
也可以不放里面,在测试计划里面设置加载路径
3、调用方法
添加前置处理器,在里面使用java调用,最后转化成jmeter可以使用的变量
import md5test.getmd5;
String md5=getmd5.getMD5(vars.get("Password"));
vars.put("md5",md5);
这里的md5是java中封装的一个方法,入参为md5加密前字符串,最后返回md5加密后字符串
最后jmeter就可以直接使用${md5}这个变量了