Jmeter使用教程
前言
前段时间要测试到公司的API接口,使用到了Jmeter工具。为了方便后续再次用到,特此写下这个文章作为参考
一、打开软件
/根目录/bin/jmeter.bat
二、基础设置说明
1、中文设置
5.6版本会出现每次打开软件默认为英文的情况,永久设置请自行百度
2、打开日志
打开日志可以查看运行报错或者打印的信息
3、下载插件
常用的插件:
1)查看tps参数:【3 Basic Graphs、5 Additional Graphs】
2)线程变化增长:【Throughput Shaping Timer】
3)grpc请求:【Jmeter gRPC Request】
三、使用流程
1、添加线程组
线程组用户的设置相当于并发设置,此处的参数视情况定,参数太大会导致结果出错
2、添加请求
根据任务需求添加对应的请求方式,例如HTTP请求/GRPC请求
3、设置请求信息
请求信息主要包括几个:
1)请求头
2)请求类型
3)请求数据
4)请求数据前处理
5)开启任务
6)分析结果
四、设置参数说明
1、线程参数
1)【常用】Thread Group
2)jp@gc - Stepping Thread Group
2、请求参数
1.0)Http请求
1.1)Http请求头
2)grpc请求
3)请求默认值
请求的默认值设置后在请求页面可以通过“${变量名}”访问获取
4)beanshell请求前处理
注意:beanshell不支持javs1.5后的泛型处理,例如这种操作
可以通过此脚本对请求参数做操作,例如对参数进行签名
//签名实例:
import org.apache.commons.codec.digest.DigestUtils; //导入md5加密的包
import java.security.MessageDigest;
import java.util.Date;
long timestamp = new Date().getTime() / 1000;
String timestampStr = String.valueOf(timestamp);
vars.put("timestamp",timestampStr);
//vars.get()获取请求参数的值,参数在请求页面或者定义的变量里
String a = "app_key" + "=" + vars.get("app_key") + "&";
String b = "use_attach_array"+ "=" + vars.get("use_attach_array") + "&";
String c = "timestamp"+ "=" + vars.get("timestamp") + "&";
String key = "key=" + vars.get("secret_key");
// 排序后拼接字符串
sign_data = a+b+c+key;
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(sign_data.getBytes());
byte[] digest = md.digest();
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
String hex = Integer.toHexString(0xFF & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
String md5Hash = hexString.toString().toUpperCase();
//vars.put()将对象赋值到请求参数中
vars.put("signature", md5Hash)
//log.info(md5Hash)函数可以打印信息到日志中,可以通过日志查看运算结果是否正确
3、监听器
1)查看结果树
可以查看请求的信息以及结果详情信息
2)聚合结果
参数里最主要的为:【最低、最高响应时间以及吞吐量】