jmeter计算测试QPS

  • Post author:
  • Post category:其他




前言

网上一搜全是复制粘贴,根据个人理解,得出一套测试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.个人观点,欢迎指点



版权声明:本文为Le_1M原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。