1. 设置线程组
线程:可以理解为用户,一个线程代表一个用户。
线程组:可以理解为一个包含了多个待测试接口的集合。
线程数:代表用户数量。
循环次数:每个线程执行次数,代表每个用户请求接口的次数。
持续时间:当到达测试时间后,线程组中的任务还没有结束,JMeter则停止测试
2. 添加HTTP请求
这里填写需要测试的接口地址,下图中演示验证码接口
,红框中使用了JMeter中的库函数生成随机数。
3. 添加查看结果树
查看结果树:这个主要用来分析各请求结果信息。
4. 添加聚合报告
聚合报告:这个用来分析压测结果分析。
5. 查看测试结果
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值。
样本:表示这次测试中一共发出了多少个请求。
可以看到本次测试样本只有2930个,因为在前面对线程组的持续时间进行了设置,导致很多样本没有发出任务就结束了。
平均值:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间。
中位数:就是所有用户的响应时间取中间值。
90% 百分位:90% 用户的响应时间(单位毫秒)。
最小值:最小响应时间。
最大值:最大响应时间。
异常%:本次测试中出现错误的请求的数量/请求的总数。
吞吐量:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 TransactionperSecond 数。
接收KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec。发送同理。
6. json格式数据请求
这里使用登录接口作为示例。
请求数据
加入信息头管理器,用来设置请求的数据类型。
重新配置线程组。
程序运行完成以后,就可以查看相应的测试结果这里以2000个线程组瞬时并发为例得到如下报告:
上图表参数含义如下:
1、样本数目是总共发送到服务器的请求数。
2、最新样本是代表时间的数字,是服务器响应最后一个请求的时间。
3、吞吐量是服务器每分钟处理的请求数,应越来越高或趋于稳定。
4、平均值是总运行时间除以发送到服务器的请求数。
5、中间值是代表时间的数字,有一半的服务器响应时间低于该值,而另一半高于该值。
6、偏离量:数据分布的偏差,每次响应时间的变化偏差,应该是趋于稳定或者越来越小比较好
偏离量最好接近平均值的一半比较好。
可以看出当2000人瞬时并发时平均响应时间为1686ms,吞吐量为38,095.238/分钟,平均响应中值为1729ms。