目录
1. 什么是性能测试
1.1 常见的性能问题
1.2 性能测试的概念
1.3 性能测试和功能测试的区别
1.4 性能的好坏如何定义
1.5 影响性能的因素
2. 为什么进行性能测试
3. 性能测试常见专业术语以及衡量指标
4. 性能测试分类
4.1 基准测试
4.2 负载测试
4.3 压力测试
4.4 可靠性测试
5. 性能测试如何展开
1. 什么是性能测试
1.1 常见的性能问题
- 资源泄漏,包括内存泄露
- CPU 使用率达到 100%,系统被锁定等
- 线程死锁,阻塞等造成系统越来越慢
- 查询速度慢,或者列表的效率低
- 受外部系统影响越来越大
1.2 性能测试的概念
测试人员借助性能测试工具,模拟系统在不同情况下性能指标是否正常。
1.3 性能测试和功能测试的区别
功能测试关注软件的功能是否实现,而性能测试不仅要实现功能同时要测试在极端条件下(用户的访问量增加)能否正常实现。
性能测试在功能测试完成后执行。
1.4 性能的好坏如何定义
-
用户登录所需时间短的性能好
-
页面不卡顿的性能好
-
....
1.5 影响性能的因素
- 硬件:服务器 CPU、服务器内核、内存、磁盘、网络带宽...
- 软件:编程语言、算法
- 用户:用户数量、用户操作频率
2. 为什么进行性能测试
- 获取系统性能的指标,作为性能标准的基准
- 验证系统的性能指标是否达到要求(性能需求)
- 应用程序是否能够满足系统要求的各种性能指标
- 应用程序是否能够处理预期的用户负载并有盈余能力
- 应用程序是否能够处理业务所需要的业务数量
- 在预期和非预期的用户负载下,应用程序是否稳定
- 是否能确保用户在真正使用软件时获得舒服的体验
- 发现系统的性能瓶颈,内存泄漏等问题
- 系统正常工作的情况下的最大容量
- 帮助系统运维部门能更好的规划硬件配置
3. 性能测试常见专业术语以及衡量指标
并发:软件在运行的过程中,有大量的用户同时访问。
并发用户数:大量用户请求系统,此时的用户数量就是并发用户数。
并发请求数:大量用户请求系统,服务器接收到的请求数。
用户数:
- 系统用户数:系统数据库中维护的用户数据对应的数量
- 在线用户数:登录系统的用户数量
- 并发用户数:同时对系统发起请求对应的用户数量
系统用户数 > 在线用户数 > 并发用户数(系统限制用户登录成功才能访问系统)
响应时间/平均响应时间(RT/ART):
- 用户响应时间:用户从发起请求到接受到请求花费的时间。
- N1 + A1 + N2 + A2 + N3 + A3 + N4
- 请求响应时间:服务器接受到请求到发出响应的时间。
- A1 + N2 + A2 + N3 + A3
用户的设备、网络、服务器的配置(CPU、内存、带宽)、服务器对应的算法、逻辑处理、数据查询的速度等都会影响响应时间。
事务:此时的事务是针对一个业务单位来定义的。
事务响应时间:服务器处理一个事务所花费的时间。
每秒事务通过数:TPS 指每秒系统能够处理的事务数,它是衡量系统处理能力的重要指标。
点击率:用户在单位时间内提交的 HTTP 请求数。点击率越大,服务器压力越大。
吞吐量:用户和服务器之间数据传输量。
吞吐率:吞吐量/时间(Size/time),单位时间内系统处理的客户请求的数量。吞吐率越大性能越好。
思考时间:用户在进行操作时,每个请求之间的间隔时间。
资源利用率:不同系统资源的使用情况,包含 CPU、内存、硬盘、网络等。
4. 性能测试分类
- 代码级别的性能测试
- 基准性能测试
- 并发测试
- 压力测试
- 配置测试
- 可靠性测试
4.1 基准测试
基准测试也叫一般性能测试。
什么是基准性能测试?
让系统在正常情况下运行,观察系统的性能指标是否正常。
跟前一个版本的性能指标进行对比。
4.2 负载测试
负载测试是指让系统背负一定的压力,运行一段时间观察系统是否存在性能拐点。
4.3 压力测试
让系统处于极限或者饱和状态时,观察系统性能指标(压力测试会使系统崩溃)。
4.4 可靠性测试
使系统长时间运行,观察系统性能是否出现异常。
5. 性能测试如何展开
功能测试展开的流程:
需求分析 -> 测试计划 -> 测试开发、测试设计 -> 测试执行 -> 测试评估
性能测试展开的流程:
需求分析(性能需求) -> 测试计划(确定性能测试的工具) -> 测试开发(性能测试脚本编写) -> 测试执行(跑脚本) -> 测试评估(测试报告,包括性能问题和优化方案)
性能测试的时候,发现的问题不叫 BUG,叫性能瓶颈;开发进行修复的过程叫性能优化。