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("------------解密结束-------------------");

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容