要测试3DES加密接口分为以下三步:
一、eclipse导出加密包
二、连接mysql数据库
三、调用jmeter前置管理器
一、eclipse导出加密包分为以下几步:
(1)3DES加密/解密方法可以自己百度,也可以直接问开发要源码:
package DES;
import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import java.net.URLDecoder;
public class There3DesUtil {
private static String key = "WJ6X1X6IRMO2EXZYLYWWZGMY";
private static String ALGORITHM = "DESede";
/**
* 3DES加密
*
* @param src 需要加密的明文
* @return 加密后的密文
*/
public static String urlDecrypt(String src, String des3_key) throws Exception {
src = URLDecoder.decode(src, "UTF-8");
src = src.replaceAll("\\ ", "+");
return There3DesUtil.Decrypt(src, des3_key);
}
/**
* 3DES加密
*
* @param src 需要加密的明文
* @return 加密后的密文
*/
public static String Encrypt(String src, String des3_key) throws Exception {
Cipher cipher = Cipher.getInstance(ALGORITHM);
DESedeKeySpec desKeySpec = new DESedeKeySpec(des3_key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return new String(Base64.encodeBase64(cipher.doFinal(src.getBytes("UTF-8"))));
}
public static String EncryptM(String src) {
try {
return Encrypt(src, key);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 3DES解密
*
* @param src 加密后的密文
* @return 解密后的明文
*/
public static String Decrypt(String src, String des3_key) throws Exception {
Cipher cipher = Cipher.getInstance(ALGORITHM);
DESedeKeySpec desKeySpec = new DESedeKeySpec(des3_key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] target = cipher.doFinal(Base64.decodeBase64(src.getBytes("UTF-8")));
return new String(target, "UTF-8");
}
public static void main(String[] args) {
//测试加密后的字符串
String s = "c4d597468b774f7e8aa2f5cc3ac09955";
System.out.println("s:" + s);
String s1 = There3DesUtil.EncryptM(s);
System.out.println("s1:" + s1);
}
}
(2)通过eclipse导出加密方法:
(3)导出加密包放在jmeter\lib\ext下
二、连接mysql数据库
(1)先在往下下载插件包mysql-connector-java-8.0.15,放到jmeter下面
(2)添加一个测试计划,把上面加密包,数据库插件包添加进来,如图
(3)添加一个线程组,在线程组配置mysql,如图
(4)根据自己需求来写sql语句,如图:(注意变量名称需要第(3)一致)
三、调用jmeter前置管理器
(1)调用前置管理器来达到加密效果,我这里是json字符串加密,可以添加一个debug来看有没有加密成功,如图:
(2)添加http请求/结果树来测试加密接口