如何在JMeter中配置负载测试实现异步API 10 TPS吞吐量(500ms响应)
在JMeter中配置异步API负载测试以达到10 TPS
一、先算好核心参数
要稳定达到10TPS,先参考这个核心公式:目标TPS = 线程数 / (平均响应时间 + 思考时间)
已知目标TPS为10,预期响应时间0.5秒,暂时忽略思考时间的话,理论线程数=10*0.5=5。实际测试时可结合你手里的性能统计数据微调。
二、搭好基础测试脚本
- 添加线程组:初始线程数设为5,循环次数选
永远(也可按测试时长设置具体次数),Ramp-Up时间设为10秒,让线程平稳启动,避免瞬间冲击服务。 - 添加HTTP请求:配置异步API的地址、参数、请求头等信息,注意异步API通常会返回请求ID,若需验证最终结果,用正则表达式提取器或JSON提取器把这个ID存下来。
- 若要验证异步请求结果:额外添加一个HTTP请求,用保存的请求ID轮询查询状态,直到获取成功响应或触发超时,同时添加响应断言验证结果正确性。
三、用定时器控制吞吐量
添加Constant Throughput Timer(固定吞吐量定时器):
- 选择
Calculate throughput based on为All active threads in current thread group - 设置
Target throughput (in samples per minute)为600(因为10TPS×60=600样本/分钟) - 该定时器会自动调整请求发送间隔,确保整体吞吐量稳定在10TPS。
四、适配异步API特性调整配置
- 若异步API无需等待结果即可发送下一个请求:确保取样器不阻塞,线程能快速循环发送请求,此时定时器可精准控制TPS。
- 若必须等待异步结果返回才能发送下一个请求:在轮询取样器后添加Constant Timer,根据实际情况调整等待时间,避免线程长时间占用影响吞吐量。
五、验证与调优
- 添加Summary Report、Transactions per Second监听器,实时查看吞吐量是否稳定在10TPS左右。
- 根据性能统计数据调整线程数:若实际响应时间超过500ms,适当增加线程数;若吞吐量未达目标,排查JMeter自身资源瓶颈(如CPU、内存)或后端服务并发限制。
- 若出现超时、错误,用Response Time Graph、View Results Tree排查问题,调整轮询逻辑或请求参数。
内容的提问来源于stack exchange,提问作者user3222327
相关产品推荐
相关产品推荐

