Jmeter 接口权限和简单脚本

添加HeaderManager,如下:

 数据取自于:

 

添加依赖:

如果需要新增jar包,则将其放到jmeter的lib\ext目录下,将jmeter保存数据后重启。

签名脚本:

1)签名后得到的内容是请求头中的一个参数,所以需要在http请求前处理;这里需要用到bean shell 预处理程序,如下:

 代码如下: 

import org.apache.jmeter.config.*;
import org.apache.commons.codec.digest.DigestUtils; //用于md5加密
import com.alibaba.fastjson.JSON;

Arguments args = sampler.getArguments(); // 截获请求
Argument argBody = args.getArgument(0); // 获取请求body
String body = argBody.getValue(); // 获取body的值保存成字符串
log.info("线程组的body:"+body); // 打印日志
String body2 = JSON.parseObject(body).toJSONString();
log.info("线程组的body2:"+body2); // 打印日志
String sign = DigestUtils.md5Hex(body); //md5加密
String sign2 = DigestUtils.md5Hex(body2); //md5加密
log.info("sign=======>" + sign);
log.info("sign2=======>" + sign2);
vars.put("sign", sign); //将值设置为sign变量,方便在http头部调用
vars.put("sign2", sign2); //
vars.put("bodys", body); //
vars.put("body2", body2); //

  header中调用:

 

 程序中获取:

@PostMapping("/history/list2")
public String getHistoryProjectList(HttpServletRequest request) {
try {
String json = new String(readInputStream(request.getInputStream()), StandardCharsets.UTF_8);
json = JSON.parseObject(json).toJSONString();
String sign = request.getHeader("sign");
String sign2 = request.getHeader("sign2");
String bodys = request.getHeader("bodys");
String body2 = request.getHeader("body2");
log.info("param body ===>" + bodys);
log.info("param body2 ===>" + body2);
log.info("param body3 ===>" + json);
log.info("param sign ===>" + sign);
log.info("param sign2 ===>" + sign2);
String sign3 = DigestUtils.md5Hex(json);
log.info("computer sign ===>" + sign3);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return "true";
}

public static byte[] readInputStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];

int len;
while((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
return outSteam.toByteArray();
}

后端获取结果:

Jmeter调试日志有助于排查脚本代码是否争取,具体查看如下:

 

posted on 2022-03-27 16:36  蔻德盈  阅读(95)  评论(0)    收藏  举报