1. 程式人生 > >使用Jmeter實現引數的MD5加密

使用Jmeter實現引數的MD5加密

在我們使用Jmeter進行測試,尤其是介面測試,有時需要對引數進行MD5加密後再進行操作,比如登入的時候如果輸入正確的明文密碼,而不對密碼進行MD5加密處理,執行Jmeter時,會有如下報錯:
在這裡插入圖片描述
上次介紹了使用Jmeter的函式助手實現引數的MD5加密,詳見:https://blog.csdn.net/qq_28863851/article/details/84776952
本次介紹另外一種方法利用Jmeter實現引數的MD5加密。

原料

Jmeter,MD5演算法,eclipse

準備工作

Jmeter沒有內建的MD5加密方法,我從網上找了一份,實現了加密功能,具體操作如下:

  1. 從網上找一份MD5加密演算法,在eclipse中新建Java Project(專案名稱自己起)-新建Package(包名自己起)-新建Class(類名自己起),建好後,將下面的MD5演算法複製到.java檔案下,注意根據自己起的專案名、包名和類名修改相應程式碼。
package hfjy.test.jmeter;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Tools {
     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包
點選file->Export,出現如下彈窗,選擇Java資料夾下的JAR file,點選Next
在這裡插入圖片描述
選擇要匯出的專案,點選Browser選擇要儲存的位置,並取名**.jar,點選儲存,點選Finish
在這裡插入圖片描述
在這裡插入圖片描述
3. 將匯出的jar放到Jmeter安裝目錄下的lib資料夾下,如圖所示:
在這裡插入圖片描述
4. 在Jmeter中新建測試計劃,新增執行緒組登入,新增取樣器-HTTP請求,取名login,填寫相應資訊,引數用引數化形式填寫
在這裡插入圖片描述
5. 給執行緒組新增前置處理器-使用者引數,如圖,將引數的正確明文填入對應引數中
在這裡插入圖片描述
在這裡插入圖片描述
6. 給執行緒組新增前置處理器-BeanShell PreProcessor,在BeanShell PreProcessor中寫入以下測試內容:

import hfjy.test.jmeter.Tools;

String pwd = Tools.getMd5(vars.get("password"));
vars.put("password",pwd);

  1. 此時再執行Jmeter,就可以正常登入成功了
    在這裡插入圖片描述