使用Jmeter實現引數的MD5加密
阿新 • • 發佈:2018-12-06
在我們使用Jmeter進行測試,尤其是介面測試,有時需要對引數進行MD5加密後再進行操作,比如登入的時候如果輸入正確的明文密碼,而不對密碼進行MD5加密處理,執行Jmeter時,會有如下報錯:
上次介紹了使用Jmeter的函式助手實現引數的MD5加密,詳見:https://blog.csdn.net/qq_28863851/article/details/84776952
本次介紹另外一種方法利用Jmeter實現引數的MD5加密。
原料
Jmeter,MD5演算法,eclipse
準備工作
Jmeter沒有內建的MD5加密方法,我從網上找了一份,實現了加密功能,具體操作如下:
- 從網上找一份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);
- 此時再執行Jmeter,就可以正常登入成功了