Jmeter实现base64加密传参

在Jmeter进行接口测试中,会存在接口传参时候在字段base64加密部分参数,可能为username也可能password,此处以password为例。
1、用户自定义加密参数变量


image.png

2、新增beanshell 取样器
加密代码:
import org.apache.commons.net.util.Base64;
//String source = vars.get("name");

String source = "${password}"; //输入password原始值

byte[] encodedBytes = Base64.encodeBase64(source.getBytes("UTF-8"));

String encoded = new String(encodedBytes);

log.info("加密后的值------->>"+encoded);

vars.put("password-b64", encoded); //"password-b64"替换"password",引用使用"${password-b64}"

image.png

3、新增调试取样器


image.png

4、实际接口调用中实现


image.png

5、调用接口中取样器得到结果
image.png

6、实际执行接口调用


image.png

7、以上仅实现加密的调用,若需要解密,代码参考:
import java.io.*;
import org.apache.commons.codec;
import sun.misc.BASE64Decoder;

log.info("------------开始加密-------------------");

String encryption = new sun.misc.BASE64Encoder().encode("hc_staging".getBytes());

vars.put("encryption", encryption);

log.info("加密后的值------->>"+encryption);
log.info("------------加密结束-------------------");

log.info("------------开始解密-------------------");
org.apache.commons.codec.binary.Base64 base64=new org.apache.commons.codec.binary.Base64();
String decrypt=new String(base64.decode("aGNfc3RhZ2luZw=="));

vars.put("decrypt",decrypt);

log.info("解密后的值------->>"+decrypt);
log.info("------------解密结束-------------------");

你可能感兴趣的:(Jmeter实现base64加密传参)