jmeter计算测试QPS

本文介绍了一种使用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% 百分位最小值最大值异常 %吞吐量
第一套配置1500010084186203290405920.000%239.46360
第二套配置1500010477197224317395370.000%240.78979

逐步增加线程,直到满足响应时间的最大线程数
计算QPS
上图中两个QPS分别为
239.46360
240.78979

2.在满足响应时间要求的情况下逐步增加线程(再次琢磨发现方法可能有问题,此方法已遗弃,新方法已在上面写出)

确定测试时间为3分钟

测试功能点样本平均值中位数90% 百分位95% 百分位99% 百分位最小值最大值异常 %吞吐量
50线程1分钟13436216202339404521426880.00%223.03747
50线程2分钟28188204198321368446426630.00%234.64385
50线程3分钟430132021923243875923814990.00%238.83108
50线程4分钟570852031953283784744012650.00%237.80165
50线程5分钟72246200194319374473398130.00%240.7558

确定保证200ms响应时间时线程(并发)为50个

测试功能点样本平均值中位数90% 百分位95% 百分位99% 百分位最小值最大值异常 %吞吐量
100个线程测试3分钟4445139739160668988442208870.00%246.55141
60个线程测试3分钟44030238217384422536398500.00%244.00246
50个线程测试3分钟430132021923243875923814990.00%238.83108
40个线程测试3分钟430721601482693113994011200.00%239.06443

3.计算QPS

代入公式:QPS(每秒查询数) = 50/0.202 = 247.5个/s

PS:
1.优快云画表格太反人类了
2.欢迎留言探讨
3.个人观点,欢迎指点

JMeter测试系统在5分钟内的每秒查询数(QPS)性能指标,可以通过以下步骤实现: 1. **设置线程组**:在JMeter中创建一个线程组,配置线程数以模拟并发用户。例如,可以设置多个线程来模拟多个用户同时发送请求。线程组的“持续时间(秒)”字段设置为300秒(即5分钟),确保测试运行的时间长度符合要求。 2. **添加取样器**:在线程组中添加HTTP请求取样器,用于发送请求到目标服务器。配置目标服务器的URL、端口以及请求参数等信息。 3. **使用定时器**:为了控制请求的频率,可以在线程组中添加定时器(如“固定定时器”或“高斯随机定时器”),以确保请求按预期的间隔发送。这有助于更精确地测量QPS。 4. **添加监听器**:为了收集和分析测试结果,需要添加监听器。常用的监听器包括: - **“查看结果树”**:用于调试,查看每个请求的详细响应信息。 - **“聚合报告”**:提供关键性能指标,如平均响应时间、吞吐量(即每秒处理的请求数)等。 - **“PerfMon Metrics Collector”**:如果需要监控服务器资源(如CPU、内存使用率),可以通过PerfMon插件收集相关数据。 - **“Simple Data Writer”**:将测试结果保存为CSV或XML文件,便于后续分析。 5. **运行测试并分析结果**:启动测试后,JMeter会按照配置的参数运行5分钟。在测试过程中,可以通过“聚合报告”监听器实时查看QPS的变化情况。测试结束后,检查保存的结果文件,进一步分析QPS的平均值、峰值等信息。 6. **计算QPS**:JMeter的“聚合报告”中会显示“吞吐量”(Throughput),该值即为每秒处理的请求数,通常可以视为QPS。吞吐量的计算公式为:吞吐量 = 总请求数 / 测试持续时间(秒)。 ### 示例代码 以下是一个简单的JMeter测试计划的JSON结构示例,展示了如何配置线程组和HTTP请求取样器: ```json { "TestPlan": { "ThreadGroup": { "num_threads": 10, "duration": 300, "ramp_time": 60 }, "HTTPSampler": { "protocol": "http", "server": "example.com", "port": 80, "path": "/api/endpoint" }, "Listeners": [ "ViewResultsFullVisualizer", "SummaryReport", "SimpleDataWriter" ] } } ``` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值