导图社区 软件性能测试流程
软件性能测试流程主要从测试准备、搭建环境、测试脚本开发、测试数据准备、测试执行、结果分析与调优这几个步骤来说明性能测试的一个流程
编辑于2022-07-04 16:01:04软件性能测试流程
测试准备
需求分析
1、分析业务场景
需求调研和收集:用户调查、业务方咨询、同类型软件对比
什么场景可能存在什么问题:比如,同时登录、提交、上传、交叉请求等
获取性能指标:吞吐量/秒或X个并发下响应时间<XX秒
2、确定应用领域
能力验证:系统能否在A情况下具有B能力
容量规划:系统如何调整才能满足何种需求
发现瓶颈:瓶颈定位、重现、没有特定的性能指标
基准比较:敏捷开发中,通过每次迭代变化判断是否达到预期目标
建立性能目标
选取核心业务流程(重要程度/频繁)
并发用户数
事务吞吐率需求
响应时间需求
系统占用资源需求
可扩展性需求
了解应用软件
系统体系架构
采用的开发语言
通信协议
动态session
验证码问题
了解软件部署平台
物理部署(局域网/虚拟机)
硬件架构(版本/关键内核参数)
数据库(类型/版本/启动/参数/存储布局)
中间件(类型/线程数/内存参数)
软件部署模式
建立系统负载模型
业务层面
核心业务流程吞吐率
高峰期业务分布时段
系统负载
高峰/平常场景吞吐率
CPU/IO/MEM/NETWORK
数据来源
服务器端监控
数据库日志
用户提出需求
制定性能测试计划和方案
开始时间和结束时间
测试环境配置:局域网、虚拟机、操作系统、数据库、中间件等
人员:谁负责哪些任务
产出物:测试方案、分析结果
搭建环境
测试机环境
JDK/Eclipse/Loadrunner or jmete等各种监控工具
服务器环境
Linux系统/数据库/应用服务/各种监控工具
测试脚本开发
LR和Jmeter类图
选取协议
选取系统采用的协议
为了测试变更流程
使系统适应测试,如去掉验证码
设计测试脚本
脚本要符合业务逻辑、可用性强
脚本获得方式:工具录制、代码实现
增强脚本
参数化用户输入
关联数据
增加事务
增加检查点
调试调本
Vugen单次回放
Vugen多次回放
Controller单脚本多用户
Controller多脚本多用户
查看回放日志信息
验证脚本
通过检查点验证,或者设置断言
通过查看后台服务器日志验证
通过测试系统查看运行后的变化
利用sql查询插入/更新/修改效果
测试数据准备
利用脚本自动生成数据
利用测试工具生成数据
尽量保持数据与生产数据的一致性以及量级足够
利用脚本生成数据,如利用JDBC预埋数据
测试执行
设置加压运行场景
监控操作系统/网络/数据库各个层面
Linux监控
监控工具
Nmom、Spotlight on Unix
监控命令
CPU监控
top、uptime、dstat
内存监控
free、vmstat、dstat
磁盘监控
iostat、iotop、df、dstat
网络监控
ifstat、dstat
JVM监控
JVM性能
Thread Dump
分析HeapDump
数据库监控
Windows监控
Perform
监控应用运行状况/日志
确认施压机资源充分
抽查关键功能是否可用
确定性能测试检查,内存泄漏
对测试结果进行记录
展现方式
折线图、统计图、表格等方式
结果分析与调优
瓶颈定位分析
吞吐量:二八原则,即:80%的业务在20%的时间内完成(正太分布)
响应时间2/5/10原则
内存、磁盘、IO、进程、网络分析法
由易到难法:硬件-操作系统-中间件-应用瓶颈
性能调优验证
综合考虑调优方式:时间资源、人力资源、硬件资源、扩展性、影响等
调优是一个不断debug,不断验证的过程
测试后续跟踪
报告、跟踪
产出物:测试结果、报告
延伸:性能持续跟踪、观察变化
跟进性能测试发现问题的解决情况,问题修复后有必要再进行一次性能测试