Jmeter性能压测:TPS与QPS

🍅 **点击文末小卡片,**免费获取软件测试全套资料,资料在手,涨薪更快

1、TPS和QPS的区别

TPS:意思是每秒事务数,具体事务的定义都是人为的,可以一个接口、多个接口、一个业务流程等等。

一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。

以单接口定义为事务为例,每个事务包括了如下3个过程:

复制代码
向服务器发请求
服务器自己的内部处理(包含应用服务器、数据库服务器等)
服务器返回结果给客户端

如果每秒能够完成N次这三个过程,TPS就是N;

如果多个接口定义为一个事务,那么,会重复执行1/2/3,完成一次这几个请求,算做一个TPS。

QPS:意思是每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询SQL的次数)

显然这个不够全面,不能描述增删改,所以,不建议用QPS来作为系统性能指标。

两者的区别:

如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么TPS = QPS,否则,TPS ≠ QPS

如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = n*TPS

Jmeter聚合报告中,Throughput是用来衡量请求的吞吐量,也就是TPS。

复制代码
TPS = 样本数/运行时间

我们定义的是TPS,不是QPS。如果没有定义事务,会把每个请求作为一个事务。

QPS是数据库中的概念,每秒执行条数(查询),被引申到压测中来了,但是不包括插入、更新、删除操作,所以不建议用QPS来描述系统整体的性能。

建议用TPS,这个T,你可以随意的定义,可以是一个接口,也可以是一个业务流程等等。

2、面试性能测试bug

①在做压力测试的时候,吞吐量TPS上不去,原本的TPS标准是要达到400/sec,但是实际压测只有50多的TPS。

后面发现是数据库的磁盘空间满了,导致查询速度和请求速度过慢,然后我让我们后端开发同事把数据库的磁盘清理一下就恢复正常了。

②我在压测(修改密码,新建用户,投保用户列表接口,保单管理接口,支付接口,保单查询接口,查看险种接口,投保接口)

接口的时候【这里面接口自己选一个】,平均响应时间在10s左右,不符合性能指标3s

后来发现:原因是接口通过redis,每次请求redis都会初始化。

后面解决:在测试环境增加路由配置之后,这个问题就解决了

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
金銀銅鐵3 小时前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li5 小时前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸10 小时前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学11 小时前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
花酒锄作田1 天前
Pydantic校验配置文件
python
hboot1 天前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
ZhengEnCi2 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi2 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽2 天前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户8358086187912 天前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python