1. 性能测试的相关概念
- 性能测试的定义:
- 测试人员借助测试工具,模拟系统在不同场景下对应性能指标是否达到预期。
- 性能测试和功能测试有什么区别:
- 功能测试依靠人力完成,不管什么场景下只要能够正常运行即可,
- 性能测试依靠工具完成,测试软件在一些软件的情况下是不是能够正常运行。
- 影响一个软件性能的因素:
- 硬件:
服务器CPU利用率,内存,磁盘操作频率,CPU核心数- 软件:
算法,编程语言- 用户:
用户数量,用户使用时长,用户访问频率
2. 为什么要做性能测试 ?
- 获取系统的性能指标,作为性能指标的基准
- 验证系统的性能指标是否达到性能需求
- 应用程序是否能够满足系统要求的各种性能指标
- 应用程序是否能处理预期的用户负载并有盈余能力
- 应用程序是否能处理业务所需要的事务数量
- 在预期和非预期的用户负载下,应用程序是否稳定
- 是否能够确保用户真正使用软件时获得舒适的体验
- 发现系统的性能瓶颈,内存泄漏等问题
- 系统正常工作的情况下的最大容量
- 帮助系统运维部门能够更好的规划硬件配置
3. 性能测试相关术语、衡量指标
- 并发数用户数:
- 业务层面的并发用户数:
指同时向服务器发送请求的用户数量- 后端服务器的并发用户数:
指的是同时向服务器发送请求的请求数量- 用户数:
- 系统用户数:
系统注册的用户- 在线用户数:
成功登录系统用户数- 并发用户数:
大量的用户访问系统,此时访问的用户数就是并发用户数- 响应时间:
- 用户响应时间:
应用系统从发出请求开始到客户端接收完成所有的字节数据所消耗的时间。- 请求响应时间:
服务器收到请求到发出响应这段时间。- 影响一个软件响应时间的因素:
数据库性能,网络带宽,服务器处理性能,软件算法、逻辑,用户设备- 事务响应时间(TPS):
- 处理一个事务需要的时间。
- 每秒事务通过数量:
- 每秒完成的事务数,通常指每秒成功的事务数。
- 点击率:
- 点击率代表用户每秒向Web服务器提交的HTTP请求数,点击率越大服务器压力越大。一次鼠标点击可能会有多次HTTP请求。
- 吞吐量:
- 用户一次请求和服务器之间的数据交互量。
- 吞吐率:
- 单位时间内用户和服务器之间的数据交互量。
- 思考时间:
- 用户每一个操作之间的时间间隔。
- 资源利用率:
- 不同系统资源的使用情况,包含:CPU、内存、硬盘、网络等。
4. 性能测试分类
基准性能测试:
- 让系统在正常情况下运行,观察软件的性能指标
- 应用场景:项目刚上线需要进行性能摸底。
负载性能测试:
- 验证软件在一定压力情况下运行,观察性能是否出现拐点
压力性能测试:
- 系统处于饱和情况下,观察系统性能指标
可靠性测试:
- 验证系统在一个持续的时间段内运行,在这个时间段内观察系统各项性能指标是否正常:1day —> 1week —> 1month —> 1seasion —> 1year
5. 性能测试执行流程
功能测试流程:
- 需求分析 -----> 测试计划 ----> 测试设计 -----> 测试执行 -----> 测试评估(测试报告)----> 上线
性能测试流程:
- 需求分析 ----- 测试计划 ------ 选择一款性能测试工具 ---- 性能测试脚本编写 ---- 执行性能测试 ---- 产出性能测试报告
性能测试中出现了不符合预期的情况叫性能瓶颈,开发修复的过程叫优化。
示例:
- 基准性能测试:
需求分析:摸底接口可以容纳的用户数量。
工具:Loadrunner
针对需求写脚本
6. 使用LoadRunner进行性能测试
- LoadRunner三大组件之间的关系
- VUG:录制、编写脚本
- Controller:设计场景、运行场景
- Analysis:产生性能测试报告
- 为什么选择LoadRunner ?
- Jemter没有录制功能
- Ld可以设计丰富的测试场景
- Ld可以产出丰富的测试报告