工具:jemeter,fiddler
环境:
压测系统 | |
系统 | win10 |
版本信息 | 64位 16G 1T |
压测服务器 | |
版本信息 | centos7 |
64位 40内核 128G内存 |
脚本准备:
- fiddler代理,设置IP过滤,抓取登录接口,保存成jxl文件
- 找开发要加密的代码,用Bean Shell后置处理程序,实现密码加密处
- Jemeter进行token和密码关联处理
登录密码加密处理():
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Arrays;
import java.util.Base64;
String p="Aa123额威威认为123";
//获取前一个请求token的变量的值
String token = vars.get("get_token");
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(p.getBytes());
byte[] hash = crypt.digest();
crypt.reset();
crypt.update(("{SHA}" + Base64.getEncoder().encodeToString(hash) + token).getBytes());
byte[] hash2 = crypt.digest();
//System.out.println((new StringBuilder().append("{SHA}") .append(Base64.getEncoder().encodeToString(hash2)) .toString()));
log.info(new StringBuilder().append("{SHA}") .append(Base64.getEncoder().encodeToString(hash2)) .toString());
vars.put("pw",new StringBuilder().append("{SHA}") .append(Base64.getEncoder().encodeToString(hash2)) .toString());
脚本:
链接:https://pan.baidu.com/s/1t7ZYrK806gOc8Dfh5IhsPQ
提取码:0wrf