我们在使用jmeter的过程中,有时候配合开发进行简单的压测:
大致过程:
1. 官网下载插件管理器
https://jmeter-plugins.org/将该jar包放入到jmeter的安装路径下的 lib/ext 目录下,重启jmeter即可;
2. 官网下载我们要用的插件jar包,放在 lib/ext 目录下,重启jmeter;或者在插件管理器中搜索可用的插件,点击右下角安装;
此处我们需要在官网下载的插件是 :Transactions per Second和Response Times Over Time;
多嘴提一下:QPS(TPS)、并发数、响应时间是衡量一个系统吞吐量的常用指标;经常会说到QPS和TPS的区别:
QPS指每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准;
TPS指每秒事务数。一个事务包括:用户请求服务器、服务器内部处理、服务器给出返回,三个过程;
QPS基本类似于TPS,但有所不同,访问一次页面,形成一个TPS;但可能有多个QPS; 但是当我们单独调一个同步服务的接口时,我们明确知道接口请求一次服务器,服务器直接给出返回,此时压测时我们可以认为TPS和QPS是等同的;
3. 添加TPS、RT监听器和聚合报告
鼠标右键点击添加。
再多嘴提一下,聚合报告中常用参数含义:
1、Samples:表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100;【我的是用户有100,只迭代一次,因此也是100】
2、Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间;
3、Median:中位数,也就是 50% 用户的响应时间;
4、90% Line ~ 99% Line:90% ~99%用户的响应时间;
5、Min:最小响应时间;
6、Maximum:最大响应时间;
7、Error%:本次测试中出现的错误率,即 错误的请求的数量/请求的总数;
8、Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction ;
9、Received KB/src:每秒从服务器端接收到的数据量;
10、Sent KB/src:每秒从客户端发送的请求的数量。
4. 设置线程数和调度器持续时间,进行压测:
从最初的10 、20、50、100,200、。。。累次递加,可以通过QPS峰值、最大稳定值来探索服务器的性能瓶颈;线程数不变,压测时长可以从5分钟开始递增,具体可以配合开发进行设置,来检测服务的稳定性;同时开发监测服务器的各项指标,服务异常或卡死崩溃时及时叫停压测;
5. 最后,根据线程数和压测时间,整理不同压测环境下的TPS曲线图和聚合报告。