Jmeter解决登录接口加密(Rsa/Aes加密)

1、2个jar包拷贝到jmeter的lib目录下

2、BeanShell预处理程序

import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import org.springframework.util.StringUtils;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;

// 定义密钥和IV
String key = "1234567812345678";
String iv = "0000000000000000";

// 创建AES实例
AES aes = new AES(Mode.CBC, Padding.ISO10126Padding,
                 new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"),
                 new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8)));

// 获取用户输入的账号和密码
String account = vars.get("ACCOUNT");
String passwd = vars.get("PASSWD");

// 对账号和密码进行加密
String encryptedAccount = StringUtils.hasText(account) ? aes.encryptHex(account) : account;
String encryptedPassword = StringUtils.hasText(passwd) ? aes.encryptHex(passwd) : passwd;

// 将加密后的账号和密码存入JMeter变量
vars.put("encryptedAccount", encryptedAccount);
vars.put("encryptedPassword", encryptedPassword);

3、前端传参

{
    "account": "${encryptedAccount}",
    "pwd": "${encryptedPassword}"
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter 中测试加密登录接口的步骤大致如下: 1. 使用 HTTP请求默认值 添加登录接口的 URL、请求方法和参数。 2. 添加 HTTP Header管理器,为登录请求添加必要的请求头信息,例如 User-Agent、Content-Type 等。 3. 添加 BeanShell前置处理器,用于生成加密后的登录密码,并将其设置为登录请求中的参数。 4. 配置线程组,并设置用户数量、循环次数和并发数等参数。 5. 运行测试计划,并查看测试结果。可以通过查看响应数据、响应代码、响应头信息等来判断登录是否成功。 具体实现细节可以参考以下步骤: 1. 在 JMeter 工具栏中选择“添加”->“元素”->“HTTP请求默认值”,在“服务器名称或IP”和“端口号”中填写登录接口的地址和端口号,选择请求方法为 POST。 2. 点击“添加”->“元素”->“HTTP Header管理器”,添加必要的请求头信息。例如,添加“User-Agent”请求头信息,可以模拟浏览器的请求;添加“Content-Type”请求头信息,可以指定请求体的数据格式。 3. 点击“添加”->“元素”->“BeanShell前置处理器”,添加用于生成加密后的登录密码的脚本。例如,假设登录密码为“123456”,可以使用以下代码将其进行 MD5 加密后再转换为小写字母: ``` import java.security.*; import java.math.*; String password = "123456"; MessageDigest md = MessageDigest.getInstance("MD5"); byte[] bytes = md.digest(password.getBytes()); StringBuffer sb = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xff & bytes[i]); if (hex.length() == 1) sb.append('0'); sb.append(hex); } vars.put("password", sb.toString().toLowerCase()); ``` 4. 配置线程组,设置用户数量、循环次数和并发数等参数。例如,可以设置用户数量为 10,循环次数为 2,即每个用户登录两次,设置并发数为 5。 5. 运行测试计划,并查看测试结果。可以通过查看响应数据、响应代码、响应头信息等来判断登录是否成功。如果登录失败,可以查看响应数据中的错误信息,并根据错误信息调整测试计划。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值