一、性能测试理论

一、什么是性能测试?

通过一定的手段,在多并发下情况下,获取被测系统的各项性能指标,验证被测系统在高并发下的处理能力、响应能力,稳定性等,能否满足预期。定位性能瓶颈,排查性能隐患,保障系统的质量,提升用户体验。

二、什么样的系统需要做性能测试?

- 用户量大,PV(访问量,注释:一般公司都有监控,可以知道大概的访问量) 比较高的系统
- 系统核心模块接口
- 业务逻辑 算法比较复杂
- 促销 活动推广计划
- 新技术选型(比如,换了一个技术框架,看看新的技术框架和旧框架的性能比较)

三、性能测试分类

- 客户端性能:测试APP自身的性能,如CPU、内存消耗;web页面元素渲染的速度

- 服务端性能:测试服务端项目程序的支持并发、处理能力,响应时间等,主要通过接口来做性能测试目前服务端的性能测试是主流,一般说到的性能测试,都是指的服务端性能测试。客户端相对较少一些

四、性能测试指标

4.1 并发:

定义:同时向服务器发送请求的用户数

4.2 TPS/QPS

TPS:Transaction Per Second,每秒钟处理的事务数。

在服务端接口性能测试中,事务Transaction 可以理解成一次接口调用(一次事务可以包括多个接口,这个事务是自己写脚本自己定义的),所以TPS 其实就是服务端每秒钟处理多少次接口调用。如果TPS 越高,证明服务端项目的处理能力就越好,性能就越好。

QPS:是站在接口维度统计的,会单独统计每个接口的数据,QPS越高,则性能越高

eg:将加购物车、下单、支付三个接口定义成一个事务,压力测试工具会统计服务端每秒处理多少次事务,比如,每秒处理100次,则tps=100,因为一次事务需要处理三次请求,则,QPS=3x100=300

4.3 平均响应时间

响应时间 = 网络传输的总时间 + 各组件业务处理时间

响应时间Response Time,简称RT,指的是服务端处理完一个请求所花费的时间,通常时间单位为毫秒ms 。
平均响应时间就是n 多个请求响应时间的平均值。
平均响应时间越短,代表性能越好,TPS 就越高。
银行办理业务的速度越快,单位时间内处理的业务量越多,因此性能就越好

4.4 TOP响应时间

将所有请求的响应时间先从大到小进行排序,计算指定比例的请求都是小于某个时间。该指标统计的是大多数请求的耗时。
Tp90(90% 响应时间):90% 的请求耗时都低于某个时间
Tp95(95% 响应时间):95% 的请求耗时都低于某个时间
Tp99(99% 响应时间):99% 的请求耗时都低于某个时间

eg:请求接口100次,然后按照响应时间从大到小排序,然后,第11次的响应时间为960ms,那么tp90,则指的是90%的响应时间都小于960ms

4.5 并发数

4.6 成功率

4.7 PV(page view)

页面/接口的访问量

4.8 UV(Unique Visitor)

页面/接口的每日唯一访客

4.9 吞吐量

网络中的流量,TPS 越高,吞吐量越大

五、TPS、响应时间、并发数的关系

TPS与并发数的关系:在系统达到性能瓶颈之前,TPS 和并发数成正比关系,即并发数越高,TPS 越高;达到瓶颈后,并发数增加,TPS不会继续增高(甚至会下降),这个最高的tps 出现的点,叫做拐点。

TPS和平均响应时间成反比关系,即平均响应时间越小,TPS 就越高

六、性能监控指标

6.1 操作系统级别监控

CPU使用率、内存使用率、网络IOIO(input/output output)、磁盘(read/write/ utilutil)

6.2 中间件监控

连接数、长短连接、使用内存

6.3 应用层监控

线程状态、JVM 参数、GC 频率、锁

6.4 DB层监控

连接数、锁、缓存、内存、SQL 效率

七、性能测试流程

1、需求调研

2、测试计划/测试方案

1、基准测试:

目的:给接口建立一个性能基线

手段:用一个并发去对接口做测试,获取TPS,建立基线TPS,后续对接口做了改动时,可以重新做基准测试,验证接口的性能是提升还是下降

2、单交易/单接口负载测试:

目的:验证单个接口/业务是否有性能问题,如果接口有性能问题,需要对接口进行优化,确保单接口性能没有问题

手段:从小并发开始压测,每轮压测5分钟,记录TPS,梯度增加并发数,一直找到TPS拐点

3、混合场景测试

目的:多个业务接口同时做性能测试,获取所有接口的总TPS,验证系统是否有性能问题。

手段:将多个接口,按照一定的比例关系分配压力,获取所有接口的总TPS,判断是否达到预期

4、稳定性测试

目的:验证系统长时间运行下,能否保持稳定

手段:稳定性测试不需要找拐点,只需要按照拐点数据对应的并发数,持续运行,验证系统的TPS是否保持平稳

5、高可用性测试

目的:验证集群中的某个节点出现故障时,整个集群是否能保持平稳运行,整体性能是否平稳,以及故障节点重新上线后,能否继续处理请求

手段:通过集群配置或者人工停机,将集群中的某个节点摘除,去验证集群的高可用性(测试环境一般都是单机,很少有集群)

3、环境搭建

4、数据准备

5、脚本编写

6、压测执行

7、调优回归

8、测试报告

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值