这里简单的介绍下使用jmeter进行http接口的压测方法
1、创建线程组
添加一线程组(即用户组:一个线程模拟一个用户行为,如果要模拟多个用户,则通过设置多线程来实现)
2、创建HTTP请求
因为是对http接口进行压测,所以需要在线程组下添加HTTP请求
3、配置请求参数
主要设置服务器名称或IP,端口号,连接、响应时间,所采用的协议,请求类型,内容编码,路径,最后设置请求内容。
这里请求百度首页为例,修改请求名称。端口、路径、内容编码这里可以不用填写。
在http请求添加响应断言
这里仅做示例介绍,因此断言处仅仅检查响应码
4、结果检查
结果检查这里新增聚合报告和察看结果树。运行 *.jmx,如果保存jmeter保存失败,则需要切换主题即可
创建查看结果数和聚合报告监听器。
如果这里监听器不满足要求,可以安装监听器插件
下载客户端插件:JMeterPlugins-Standard 和 JMeterPlugins-Extras
下载服务端插件:ServerAgent
将jmeter-Standard、jmeter-Extras中lib—>ext—>JMeterPlugins-Standard.jar、JMeterPlugins-Extras.jar:将这两个文件复制到Jmeter文件下—lib—ext文件中
将ServerAgent-X放在Jmeter目录下
配置可参考:监听器插件
重新打开Jemeter
常用组件介绍
- jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表)聚合报告里,Throughput是按请求个数来展示的,比如说5/sec,就是每s发送5个请求;而这里的展示是按字节Bytes来展示的图表
- jp@gc - Hits per Second:每秒点击量
- jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等
- jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
- jp@gc - Reponse Times Distribution:显示测试的响应时间分布, X轴显示由时间间隔分组的响应时间, Y轴包含每个区间的样本数
- jp@gc - Transactions per Second: 每秒事务数,服务器每秒处理的事务数
- jp@gc - Active Threads Over Time:随时间活动的线程数
运行压测脚本
有了上面的这些操作之后,这里来解释一下这些概念:
- TestPlan:测试计划,相当于一个工程,需要测试什么,怎么测就是定义在一个测试计划中
- Thread Group:线程组,相当于模拟的请求数。一个线程相当于一个用户请求
- 察看结果树:监听发送请求时各个请求的状态
- 聚合报告:把一次测试的数据汇总
5、并发请求
上面的请求是单个用户发起的接口请求,类似Postman一样的接口自动化,这里着重介绍一下线程组。因为一个线程相当于是一个用户请求
。针对线程组的线程属性
上图中的参数表示:5s内发起10个请求,共循环2次,这里通过不同的监听器查看一下实际效果
5.1 jp@gc - Active Threads Over Time
每秒活动线程变化,用于展示展示Jmeter阶梯式加压测试,可以使用插件
5.2 jp@gc - Response Times Over Time
每秒响应时间变化
5.3 jp@gc - Transactions per Second
每秒事务处理率(TPS)
5.4 汇总图
结合以上3个监听器我们可以看出,随着活动线程数的不断增加,响应时间越来越高,但TPS保持稳定没有太大变化
5.5 聚合报告
解释一下这份报告:
解释一下这份报告:
样本:请求的次数,计算公式是线程数*循环次数,如果线程组配置勾选了永远,那么就是你停止测试时实际发送的请求数
平均值:响应时间的平均用时,单位是毫秒。比如这里的平均响应时间是38毫秒
中位数:响应时间的中位数,单位是毫秒。
90%百分位:90%的响应时间小于该数值,单位是毫秒。这里有90%的响应时间小于22毫秒
95%百分位:含义和90%类似
99%百分位:含义和90%类似
最小值:本轮测试最小响应时间,单位是毫秒。
最大值:本轮测试最大响应时间,单位是毫秒。
异常%:本轮测试出现异常的请求比例。
吞吐量:可以理解为QPS,即是我们测试的接口处理请求的能力。比如这里是平均每秒可以处理2.2次请求
接收KB/Sec:响应数据的接收速率
发送KB/Sec:请求数据的发送速率
接着修改线程组中的请求参数,将线程数修改为5000,同时点击界面的“扫帚”标识
参考:https://blog.csdn.net/tomoya_chen/article/details/82901291