在Jmeter日常實踐中,大家應該都遇到過接口傳參需要加密的情況。以登陸為例,用戶名和密碼一般都需要進行加密傳輸,在服務端再進行解密,這樣安全系數會更高,但在使用jmeter進行接口測試的時候,怎樣發送加密的參數呢,下面以AES加密為例,來示范一下如何在jmeter中對參數進行加密。
一、AES加密算法調試(java+myeclipse)
首先要准備一個AES算法類,並調試算法是否可用,我是在網上找的代碼,調試可用之后導出的jar包,詳解一下步驟
1、在myeclipse中新建一個java工程,我命名為了jmeterTest,可以看到jmeterTest下有src這個文件夾。然后在src文件夾下新建一個包,我命名為了AES。此時的包AES是空的,然后要在AES包中創建一個java類,我命名為了AESUtil

2、java類已經創建好了,現在要在類中添加代碼了,添加下面這段AES加密算法之后,程序會提示錯誤,因為有個包需要引入,包放在網盤里鏈接: https://pan.baidu.com/s/1OxYyK1nI0PhpCofgYXXWrQ 提取碼: s4aw ,選擇工程build path將包導入到工程中就可以了。根據main函數中的調用來測試一下你的程序加密是不是好用。
package AES; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.logging.Level; import java.util.logging.Logger; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * @version V1.0 * @desc AES 加密工具類 */ public class AESUtil { private static String key = "hgfjhgfjsf";//此處的密匙,可以找開發同事提供,我瞎編了一個,要根據實際項目來 private static final String KEY_ALGORITHM = "AES"; private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";//默認的加密算法 /** * AES 加密操作 * * @param content 待加密內容 * @param password 加密密碼 * @return 返回Base64轉碼后的加密數據 */ public static String encrypt(String src) { // 判斷密鑰是否為空 if (key == null) { System.out.print("密鑰不能為空 軟件測試學習交流 273462828"); return null; } try { SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("utf-8"), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); // 算法/模式/補碼方式 cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] encrypted = cipher.doFinal(src.getBytes("utf-8")); return new Base64().encodeToString(encrypted);//base64 // return binary(encrypted, 16); //十六進制 } catch (Exception ex) { Logger.getLogger(AESUtil.class.getName()).log(Level.SEVERE, null, ex); } return null; } public static void main(String[] args) { //用來測試加密后的字符串,我測試的是“1234” String s = "1234"; System.out.println("s:" + s); String s1 = AESUtil.encrypt(s); System.out.println("s1:" + s1); } }
3、程序調試完畢之后,需要導出jar包,選中AES包,右擊Exoprt,選擇Runnable JAR File導出即可,至此我要在jmeter中使用的jar包就准備好了。

二、在jmeter中導入jar包,在需要進行參數加密的請求中添加BeanShell PreProcessor。
如果對軟件測試、接口測試、自動化測試、性能測試、LR腳本開發、面試經驗交流。感興趣可以273462828,群內會有不定期的發放免費的資料鏈接,這些資料都是從各個技術網站搜集、整理出來的,如果你有好的學習資料可以私聊發我,我會注明出處之后分享給大家。


三、jmeter引用,查看結果數中查看一下自己的用戶名和密碼參數是否加密了呢?這樣就完成了對jmeter參數進行加密的過程。

