软件测试基础
1 性能测试
1.1 性能测试基础
1.1.1 什么是软件性能
- 软件性能:效率特性
- 效率特性:
- 时间特性(指系统处理客户请求的响应时间)
- 资源特性(指在进行性能测试过程中,系统资源消耗的情况)
- CPU
- 内存
- 磁盘
1.1.2 什么是性能测试
性能测试:针对软件性能进行的测试
功能测试:界面、功能
性能测试:时间、资源
通过自动化测试工具模拟用户来测试是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度是否达到期望
1.1.3 性能测试的重要性
导致用户体验,流失用户
1.1.4 性能测试的目的
- 评估当前系统能力:
系统没有做过任何性能测试,对系统的当前性能情况不了解,通过测试得到系统整体的评估 - 寻找性能瓶颈,优化性能
某业务操作响应时间长,某系统上线一段时间运行越来越慢,这些需要逐步分析定位并调优 - 预测未来性能
当用户数和业务增加时能否及时应对?如何调整?是增加应用服务器,还是数据库服务器?还是要优化代码逻辑?
1.1.5 性能测试注意事项
- 应尽可能早地进行
与功能测试一样,越早越容易发现问题并修复问题 - 需团队支持
性能的优化需要开发部门、运维以及相关部门的合作 - 需要独立的测试环境
性能测试的环境相对功能环境有更严格的要求,需要独立的网络和硬件环境,来保护被测系统是独立可控的,甚至需要专门的管理员和流程来对被测环境进行控制 - 测试前定义明确的测试目标
由于性能测试执行成本高,为确保性能测试执行的有效性,在性能测试前应明确本次性能测试的目的,一级相应的性能指标
1.2 性能测试分类
- 基准测试
模拟单用户运行,产生基准性能测试数据 - 并发测试
模拟多用户运行,验证服务器是否有问题 - 负载测试
找到系统最大的负载能力 - 压力测试
系统达到一定饱和时,系统处理业务的能力 - 稳定性测试
测试系统在一定的业务压力下系统可持续运行的时间 - 配置测试
通过环境的调整来分析系统的性能,从而进行调优
1.3 性能指标
1.3.1 系统指标
- 响应时间
- 定义:从用户发送一个请求到用户接受到服务器返回的响应数据这段时间就是响应时间
- 关键路径:
- 计算方法:响应时间 = (N1+N2+N3+N4)+(A1+A2+A3),即(网络传输时间+应用程序处理时间)
- 并发数
- 并发用户数:某时刻同时向系统提交请求的用户数
- 在线用户数:某时段内访问系统的用户数
- 系统用户数:系统注册的总用户数据
- 三者之间的关系:系统用户数>=在线用户数>=并发用户数
- TPS
- 定义:Transactions Per Second,每秒事务数
单位时间内系统处理的客户端请求的事务次数 - 计算方法
TPS = 并发数/平均响应时间 - 例如
- 定义:Transactions Per Second,每秒事务数
1.3.2 资源指标
- 资源利用率
- 定义:指对不同系统资源的使用程度,通常是以占用最大的百分比来衡量
- 服务器资源指标
- CPU使用率:一般可接受上限不超过85%
- 内存利用率:一般至少有10%可用内存,使用率上限为85%
- 磁盘IO:%Disk Time度量磁盘读写性能
- 网络带宽:8b = 1B,100Mbps = 100/8 = 12.5M
1.4 总结:性能测试分析
- 为什么进行性能测试分析
- 性能需求分析做的好不好会直接影响到性能测试的结果
- 性能测试分析的结论或目标
- 明确被测系统
- 系统架构
- 系统要求
- 明确被测内容
- 具体测试的性能点
- 明确测试策略
- 基准测试
- 压力测试
- 负载测试
- 稳定性测试
- 明确测试指标
- 无明确需求指标
- 需团队一起分析
- 自己查找相关资料,以及对未来流量的预估
- 明确需求指标
- 具体的数值,例如平均响应时间小于等于3s
- 确定测试指标
- 响应时间
- 并发数
- TPS
- 资源利用率
- 无明确需求指标
- 明确被测系统
1.5 性能测试计划及方案
1.5.1 测试计划
- 测试目标
- 确定此次性能测试的目标
- 登录
- 支付
- 确定此次性能测试的目标
- 人力资源
- 时间进度
- 风险:列出可能存在的风险
1.5.2 测试方案
- 测试环境
- 架构设计
- 软硬件配置
- 服务器
- 数据库
- 注意:尽量和生产环境一致
- 测试工具
- 性能测试工具
- LoadRunner
- Jmeter
- 监控工具
- Linux
- nmon:分析Linux性能的免费工具
- rpc:安装在Linux,结合LoadRunner使用
- jvisualVm:主要监控JAVA程序,监控内存等wyth
- Spotlight:监控数据库相关的信息
- Windows
- Spotlight
- perfmon.exe:性能监视器,Windows自带
- Linux
- 性能测试工具
- 测试策略
满足在规定的服务器资源性能指标范围内,模拟不同的用户数量的性能测试,以确定系统能够承受的最大并发- 一般的性能测试
- 单一场景: 登录、下单
- 混合场景:登录 -> 查看商品 -> 下单
- 稳定性测试
- 混合业务场景下,在负载测试的并发数下,延长测试时长到至少3*24小时,考察系统的稳定性
- 一般的性能测试
1.6 性能测试用例设计及执行
1.6.1 性能测试用例设计
按场景设计
- 预期性能指标的测试
- 单业务并发性能的测试
- 混合场景并发性能测试
测试用例设计 - 测试性能点:登录、注册
- 用例的编写
- 预期性能指标用例
- 单业务并发性能的测试
- 混合场景并发性能测试
- 预期性能指标用例
1.6.2 测试用例执行
- 脚本编写:根据测试用例设计编写对应的脚本
- 场景监控设计:把编写好的脚本去设计执行
- 运行场景
- 监控场景:使用工具对服务器进行监控
- 测试报告
- 压测结果
通过表格方式描述结果是否满足需求 - 监控图
包括性能指标的结果及图形- tps
- 响应时间
- 性能评估
根据结果进行性能分析及评估,提供可优化的方案
- 压测结果
注:看的学习视屏做的笔记。如有侵权,请告知。