【性能测试】常用的性能测试指标汇总,测试工程师必备...
两种性能指标:① 业务指标:业务场景② 技术指标时间指标:接口响应时间、业务响应时间容量指标:接口容量、业务容量资源利用率指标:操作系统:CPU、IO、Disk、Mem1、并发狭义:指同一时间点执行相同的操作(如:秒杀)广义:同一时间点,向服务器发起的请求(可能是不同的请求)只要向服务器发起请求,那么服务器在这一时间点内都会收到请求(不管是不是同一个请求)2、并发用户数同一时间点,发出请求的用户数
目录:导读
前言
两种性能指标:
① 业务指标:业务场景
② 技术指标
时间指标:接口响应时间、业务响应时间
容量指标:接口容量、业务容量
资源利用率指标:操作系统:CPU、IO、Disk、Mem
1、并发
狭义:指同一时间点执行相同的操作(如:秒杀)
广义:同一时间点,向服务器发起的请求(可能是不同的请求)
只要向服务器发起请求,那么服务器在这一时间点内都会收到请求(不管是不是同一个请求)
2、并发用户数
同一时间点,发出请求的用户数,一个用户可以发出多个请求
场景不一定是同一个
和 CPU、响应时间有关系
和并发的关系:假设有 10 个用户数,每个用户同一时间点内发起 2 个请求,那么服务器收到的请求并发数就是 20
场景一:
不同身份的用户,访问不同的页面或发起不同的请求(广义并发),观察 CPU 使用率和响应时间
场景二:
所有用户,同一个时间点发送同一个请求(狭义并发),观察 CPU 使用率和响应时间
3、系统用户数
系统累计注册用户数,不一定在线
注册之后也可以一直不在线
因为用户信息是存在数据库的,而数据库数据就是存在磁盘中,所以系统用户数和磁盘空间有关系。
场景一:
写一个脚本添加很多条用户信息插入到数据库
目的:测试系统容量,方便了解系统的最大容量
实际项目中,当系统容量接近最大容量时,系统需要进行容量扩容(加磁盘空间),否则会爆掉
4、在线用户数
在线用户可能是正常发起请求,也可能只是挂机啥操作都没有,不一定同时做某一件事情
在线用户可能是游客(未注册的用户),也可能是系统用户(已注册的用户)
在线用户数 ≠ 并发用户数
和内存有关
场景一:
使用 Jmeter 让不同的用户不断上线,且不下线和发起其他请求,看看内存使用情况
实际场景:12306 以前很多用户在线,响应时间会拉的很长
5、线程数
在 jmeter 中,线程数和并发用户数等价【和 CPU、响应时间有关系】
6、事务
客户端向服务器发送请求,然后服务器做出响应的过程
登录、注册、下单等功能都属于一个事务
一个事务可能会发起多个请求
jmeter:默认一个接口请求就是一个事务,但也支持多个接口整合成一个事务
注意:若一个业务或事务有多个接口,那么多个单接口的性能指标值相加 - 业务或事务的性能指标值
7、响应时间(Response Time)
响应时间对于性能测试来说:
从发起请求到收到请求响应的时间
包含了:Request Time 和 Response Time
等价于:发起请求网络传输时间 + 服务器处理时间 + 数据库系统处理时间 + 返回响应网络传输时间
对用户所感知的响应时间包括:
用户客户端渲染时间 + 请求/响应数据网络传输时间 + 应用服务器处理时间 + 数据库系统处理时间
重点:在做性能测试时,要尽可能的降低网络传输时间,这样最终得出的 RT 会无限接近服务器处理时间
事务请求响应时间:完成单个事务所用的时间,可能包含多个请求。
响应时间多少合理?
标准是:
2s:很好 5s:可以接受 8s:不能接收
8、TPS(每秒事务数,最主要的指标):服务器每秒处理事务数,衡量服务器处理能力的最主要指标
定义 TPS 的粒度:
一般会根据场景的目的来定义 TPS 的粒度
接口层性能测试:T 可以定义为接口级
业务级性能测试:T 可以定义为每个业务步骤和完整的业务流
如果单独测试接口 1、2、3,那么 T 就是接口级
如果从用户角度下订单,那 1、2、3 都在同一个 T 中,就是业务级
结合实际业务涉及,库存服务一定是同步,而积分服务可以是异步,所以这个下单业务,可以只看作由 1、2 这两个接口组成,但是 3 接口还是要监控分析
所以,性能中 TPS 中 T 的定义取决于场景的目标和 T 的作用
9、QPS(Queries per Second):每秒查询率,在数据库中每秒执行 SQL 数量
一个请求可能会执行多条 SQL,某些企业可能会用 QPS 代替 TPS,也是衡量服务端处理能力的一个指标
10、RPS(Request per Second):每秒请求数,用户从客户端发起的请求数
如果一个用户点击了一次,发出来 3 个 HTTP Request,调用了 2 次订单服务,调用了 2 次库存服务,调用了 1 次积分服务、
问:Request 数量如何计算
答:3+2+2+1 = 8? 不,应该是 3,因为发出了 3 个 Request,而调用服务会有单独的描述,以便做性能统计
11、HPS(Hit per Second):点击率,每秒点击数
可以直接理解为用户在界面上的点击次数
一般在性能测试中,都用来描述 HTTP Request,那么它代表每秒发送 HTTP 请求的数量,和 RPS 概念完全一样
HPS 越大对 Server 的压力越大
12、吞吐量(Throughput):单位时间内,网络处理的请求数量(事务/s)
网络没有瓶颈时,吞吐量=TPS
13、吞吐率:单位时间内,在网络传输的数据量的平均速率(KS/S)
14、资源利用率:服务器资源的使用程度,比如服务器(应用、服务器)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率
一般不超过 80%
15、Think Time 思考时间
业务角度:
它指的是用户进行操作时,每个请求之间的时间间隔
比如:假如购物车后,多久之后会点击下单?浏览一个商品多久会加入购物车
性能测试角度:
为了模拟用户两次操作之间的时间间隔,才有 Think Time,更加真实的模拟用户的真实操作
它和用户行为有关系,所以应该分析的是用户行为而非用户数
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最精彩的不是实现梦想的瞬间,而是追梦路上那个永不言弃的自己。那些看似遥不可及的目标,终会在你日复一日的坚持中触手可及。别怕慢,怕的是停下;别怕难,怕的是放弃!
你比自己想象的更强大!每个挫折都是成长的契机,每次坚持都在改写命运的轨迹。当别人选择放弃时,你的执着就是胜利的开始。向前奔跑吧,整个世界都会为追光者让路!
更多推荐
所有评论(0)