软件性能测试与实践

发布时间 2023-11-26 20:55:05作者: 清风吹拂啊狂风肆虐

一、性能测试基础

1.1性能测试的场景

1.1.1业务场景:分析业务流程,找出性能场景

1.1.2测试场景:模拟性能场景,构造多个测试场景,得到测试结果,并分析得到测试结论。

1.1.3单场景:单个业务场景,测试场景下性能指标最大TPS,平均响应时间,和吞吐量。

1.1.4.混合场景:设计多个业务流程,并给予不同权重,查看整体混合业务的处理最大能达到多少。

1.2常见性能测试指标

1.2.1 响应时间
指客户端client发出请求,到收到响应结果经历的时间。网络时间+服务器处理时间

1.2.2 TPS/QPS
事务:多个steps的集合为一个事务。
TPS是系统每秒能够处理的事务数量。
QPS是系统每秒查询率。通常用于衡量流量多少。

1.2.3 并发用户
绝地并发:用户在同一时刻发出的请求。
相对并发:用户在一段时间内发出的请求。

1.2.4 PV/UV
PV:页面浏览量
UV:同一个用户所有操作,记一次。

1.2.5 点击率
每秒页面点击数我们称为点击率。
提到:性能测试中,我们只调用接口,所有对页面展示的静态/动态资源不请求。所以hit通常指的是动态请求。提到了CDN缓存。

1.2.6 吞吐量
吞吐量是指系统在单位时间内处理客户端请求的数量。
业务角度看:吞吐量为请求数/s、页面数/s等;来进行衡量计算。
从网络角度看:吞吐量 = 字节 /s
从应用角度看:吞吐量指服务器承受的压力。

1.2.7 资源开销
用来衡量请求对资源的消耗程度。CPU,free,I/O,网络带宽。

1.3 性能测试的目标

找出系统是否存在各种性能问题:
1、能够承受多大的并发访问量,平均响应时间,系统的TPS是多少。
1、死锁
2、网络架构或者应用架构不合适
3、混合业务场景是否存在业务场景
4、负载不均衡
5、连接或者是否内存泄露,线程安全等

1.4 性能测试的基本流程

性能需求分析+制定性能测试计划+编写性能测试方案+编写性能测试案例+搭建性能测试环境+构造性能测试数据+性能测试脚本+(执行性能测试场景+分析性能测试结
果+系统性能瓶颈分析与调优),括号中步骤可能要持续多轮。

1.4.1 需求分析

1.熟悉被压测系统的基本业务流程
2.熟悉系统的应用架构,技术架构,数据架构
3.用户发起请求的顺序,请求之间调用关系
4.业务数据流走向,数据是如何流转的,经过哪些应用服务,经过哪些存储服务。
5.评估被压测系统可能存在的重点资源消耗,是I/O消耗性,还是CPU消耗型,以及内存消耗型。
6.与技术经理沟通,并发架构是否采用多线程还是多进程,重点关注数据是否死锁,数据是否存在不一致,线程同步锁是否合理。

1.4.2 制定性能测试计划
目的在于指导接下来的性能测试风险和资源分配以及每个目标完成节点参考。