一、背景:接口请求时一般都需要设置签名,没有签名,接口是无法请求成功的
- 签名规则:MD5(秘钥+时间戳+业务参数) , 然后转大写字母! 示例: 转大写( MD5(appsecret+timestemp+param) )
二、jmeter设置签名
- jmeter设置签名是在beanshell里面设置的,具体代码如下
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jmeter.protocol.http.control.Header;
// 获得 body
Arguments args = sampler.getArguments(); // 截获请求
Argument arg_body = args.getArgument(0); // 获取请求body
String body = arg_body.getValue(); // 获取body的值保存成字符串
//log.info("业务参数:"+body); // 打印日志
// 获得 token
//String token = "${token}";
String token_md5 = DigestUtils.md5Hex("${token}");
//log.info("token_Upper:"+token_md5);
// 获得 timestamp
String timestamp = "${__time(,)}";
// MD5加密
String sign = (DigestUtils.md5Hex(token_md5.toUpperCase() + timestamp + body)).toUpperCase();
//log.info("sign:"+sign.toUpperCase());
//增加签名验证至请求头
sampler.getHeaderManager().add(new Header("timestamp", timestamp));
sampler.getHeaderManager().add(new Header("sign", sign));