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}這個變量了