jmeter前置處理器調用java方法,以md5加密爲例

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章