jmeter测试QPS
前言
网上一搜全是复制粘贴,根据个人理解,得出一套测试QPS的方法,so:本文一切概念为个人理解,请辩证的看文章。
测试方法概论
首先定一个响应时间的目标,本文定为平均相应时间小于200ms,其次根据这个响应时间找到能满足的最大线程数与合适的测试时间。我认为聚合报告中的吞吐量就是QPS(每秒查询数)
1.建立测试(准备工作,有经验的可以跳至下一步)
1.建立线程组
线程数+Ramp-Up表示在Ramp-Up这个时间段内 均匀启动线程,如
例1:线程数:50
Ramp:1
表示1秒内启动50个线程
例2:线程数:50
Ramp:5
表示5秒内启动50个线程 (每秒启动10个线程)
2.建立http请求
3.添加监听器
2.添加Constant Throughput Timer(常量吞吐量定时器)
这个定时器保证了吞吐量为预设的吞吐量,与之前不设置相比,可以保证并发更接近为设置的值,从而计算起QPS更加准确
1)设置线程组
其中50为预设的线程,
预计平均响应时间(如200ms)可以计算出每个线程每秒的查询次数为5 所以循环次数为: 5*60s = 300
设置常量吞吐量定时器
目标吞吐量与基于计算吞吐量为一对出现
如预计平均响应时间(如200ms)可以计算出每个线程每秒的查询次数为5
所以可以选出两套方案
1.目标吞吐量:5*60s = 300
基于计算吞吐量:只有此线程
2.目标吞吐量:50(个线程)*5 *60s = 15000
基于计算吞吐量:所有活动线程
两套选哪种都行,结果相差不大
测试功能点 | 样本 | 平均值 | 中位数 | 90% 百分位 | 95% 百分位 | 99% 百分位 | 最小值 | 最大值 | 异常 % | 吞吐量 |
---|---|---|---|---|---|---|---|---|---|---|
第一套配置 | 15000 | 100 | 84 | 186 | 203 | 290 | 40 | 592 | 0.000% | 239.46360 |
第二套配置 | 15000 | 104 | 77 | 197 | 224 | 317 | 39 | 537 | 0.000% | 240.78979 |
逐步增加线程,直到满足响应时间的最大线程数
计算QPS
上图中两个QPS分别为
239.46360
240.78979
2.在满足响应时间要求的情况下逐步增加线程(再次琢磨发现方法可能有问题,此方法已遗弃,新方法已在上面写出)
确定测试时间为3分钟
测试功能点 | 样本 | 平均值 | 中位数 | 90% 百分位 | 95% 百分位 | 99% 百分位 | 最小值 | 最大值 | 异常 % | 吞吐量 |
---|---|---|---|---|---|---|---|---|---|---|
50线程1分钟 | 13436 | 216 | 202 | 339 | 404 | 521 | 42 | 688 | 0.00% | 223.03747 |
50线程2分钟 | 28188 | 204 | 198 | 321 | 368 | 446 | 42 | 663 | 0.00% | 234.64385 |
50线程3分钟 | 43013 | 202 | 192 | 324 | 387 | 592 | 38 | 1499 | 0.00% | 238.83108 |
50线程4分钟 | 57085 | 203 | 195 | 328 | 378 | 474 | 40 | 1265 | 0.00% | 237.80165 |
50线程5分钟 | 72246 | 200 | 194 | 319 | 374 | 473 | 39 | 813 | 0.00% | 240.7558 |
确定保证200ms响应时间时线程(并发)为50个
测试功能点 | 样本 | 平均值 | 中位数 | 90% 百分位 | 95% 百分位 | 99% 百分位 | 最小值 | 最大值 | 异常 % | 吞吐量 |
---|---|---|---|---|---|---|---|---|---|---|
100个线程测试3分钟 | 44451 | 397 | 391 | 606 | 689 | 884 | 42 | 20887 | 0.00% | 246.55141 |
60个线程测试3分钟 | 44030 | 238 | 217 | 384 | 422 | 536 | 39 | 850 | 0.00% | 244.00246 |
50个线程测试3分钟 | 43013 | 202 | 192 | 324 | 387 | 592 | 38 | 1499 | 0.00% | 238.83108 |
40个线程测试3分钟 | 43072 | 160 | 148 | 269 | 311 | 399 | 40 | 1120 | 0.00% | 239.06443 |
3.计算QPS
代入公式:QPS(每秒查询数) = 50/0.202 = 247.5个/s
PS:
1.CSDN画表格太反人类了
2.欢迎留言探讨
3.个人观点,欢迎指点