1. 引言
本性能测试案例,包括性能测试的全内容;
本文档包括引言、性能环境配置需求、性能测试计划、性能测试用例、性能测试场景
共五个部分。
1.1 编写目的
- 编写性能测试案例的目的是为了让学员彻底明白:性能测试计划、方案、用例、脚本如何编写;
1.2 性能测试包含内容
2. 性能环境配置要求
2.1 网络环境
2.1.1 网络拓扑图
2.2 服务器环境
2.2.1 服务器硬件
- 服务器数量:2台
- 服务器硬件配置:阿里云云主机
- CPU:八核
- 内存:16.0 G
- 操作系统:CentOs 7.7以上
- 硬盘:80 G
- 网络:10 M
2.2.2 数据库(主从数据库)
- 服务器数量:2台
- 服务器硬件配置:阿里云云主机
- CPU:四核
- 内存:8.0G
- 操作系统:CentOs 7.7 以上
- 硬盘:80 G
2.2.3 服务器软件
- JDK 版本:1.8 以上
- MySQL 版本:MySQL 5.5 以上
- WEB服务器版本:Tomcat 9.0
2.3 测试机环境
- 服务器数量:1台
- 服务器硬件配置:阿里云云主机
- CPU:四核
- 内存:8.0G
- 操作系统:Windows 10 / CentOs 7.7 以上
- 硬盘:40 G
2.4 性能测试工具
序号 | 工具 | 作用 |
---|---|---|
1 | JMete 5.1.1 以上 | 编写和执行性能测试脚本 |
2 | Nmon 性能监控工具 | 服务器系统监控 CPU 和内存实时使用情况 |
3. 性能测试计划
3.1 测试背景
易飒商城是公司新开发的一个电商项目,为了保证项目上线后能够稳定运行,且在后期推广中能够承受用户快速增长,需要对项目进行性能压力测试
3.2 性能指标
性能测试指标制定依据:性能测试需求
并发量 | 响应时间 | 成功率 | 吞吐量 | CPU | 内存 |
---|---|---|---|---|---|
1500人/秒 | <=1500 ms | >= 99.4% | 926 | <=75% | <=70% |
3.3 测试策略与范围
3.3.1 测试策略
- 确定核心业务功能的性能指标:3.2 性能指标
- 对核心业务的单接口进行压测
- 对核心业务多接口进行组合压测
- 系统能在实际系统运行压力的情况下,稳定运行7*24小时
3.3.2 测试范围
下方测试范围只做部分示范
编号 | 业务功能 | 并发量(最高) | TPS | 响应时间 |
---|---|---|---|---|
T01 | 用户注册 | 1500 | 100 | 1500ms |
T02 | 用户登录 | 1500 | 200 | 1500ms |
T03 | 进入首页 | 1500 | 1000 | 1500ms |
T04 | 搜索商品 | 1500 | 400 | 1500ms |
T05 | 查看商品详细 | 1500 | 1000 | 1500ms |
T06 | 添加购物车 | 1500 | 200 | 1500ms |
T07 | 进入购物车 | 1500 | 200 | 1500ms |
T08 | 商品结算 | 1500 | 100 | 1500ms |
T09 | 提交订单 | 1500 | 100 | 1500ms |
T10 | 查看订单 | 1500 | 400 | 1500ms |
T11 | 退出登录 | 1500 | 50 | 1500ms |
3.4 测试策略
- **基准测试:**先做基准测试,确定估算标准,即性能环境、性能测试指标是否合理
- 负载测试:
- 通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能承受的最大负载测试;
- 分别模拟250、500、750、1000、1250、1500个用户并发对系统进行负载测试,查看不同并发树,系统软件各项指标是否符合要需求;
- 稳定性测试:
- 用1500个用户对系统进行7*24小时的不间断稳定性测试,查看服务器日志内有无异常和报错:系统软件各项指标中有无异常波动,是否存在内存溢出的问题;
- 验证系统长期运行的稳定性以及是否存在内存溢出之类的问题。
3.5 风险控制
风险类型 | 风险描述 | 风险级别 | 应对方案 |
---|---|---|---|
环境风险 | 部署服务器资源协调 | 高 | 前期使用缩小版服务器环境 |
数据风险 | 构造测试数据时间较长 | 中 | 开发人员协助完成 |
交付风险 | 发现严重或难解决 BUG | 高 | 延长测试时间,增加技术人员 |
3.6 交付清单
即对应性能测试进度中每个阶段的产物;
序号 | 内容 |
---|---|
1 | 性能测试计划 |
2 | 性能测试方案 |
3 | 性能测试用例 |
4 | 性能测试脚本 |
5 | 性能缺陷统计与性能测试报告 |
6 | 其他(构造数据脚本、相关安装环境包等) |
3.7 进度与任务
阶段 | 事项 | 开始时间 | 结束时间 | 状态 | 参与者 |
---|---|---|---|---|---|
需求阶段 | 性能需求评审 | 完成 | 多方参与 | ||
性能测试计划 | |||||
性能测试方案 | 完成 | 测试人员 | |||
准备阶段 | 环境部署 | 完成 | 运维、测试 | ||
数据准备 | 完成 | 运维、测试 | |||
脚本编写 | 完成 | 测试人员 | |||
实施阶段 | 执行性能测试 | 未完成 | 测试人员 | ||
服务端监控 | 未完成 | 运维、测试 | |||
数据收集整合 | 未完成 | 测试人员 | |||
结束 | 编写测试报告 | 未完成 | 测试人员 |
4. 性能测试用例
4.1 性能测试用例 - 用户登录
用例名称 | 用户登录 | |||
用例编号 | login_01 | |||
用例描述 | 在1500的并发量下,TPS不低于200,响应时间不高于1500ms | |||
前置条件 | 1. 用户表需要准备100万条用户数据 2. 准备100万组正确的用户登录数据 | |||
用例步骤 | 动作 | 预期响应时间 | ||
1 | 填写用户名、密码、登录类型进行登录 | <=1500ms | ||
事务响应 | ||||
用户并发数 | 平均响应 | 最大响应 | 吞吐量 | 成功率 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
服务器性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
数据库性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 |
4.2 性能测试用例 - 用户注册
用例名称 | 用户注册 | |||
用例编号 | register_01 | |||
用例描述 | 在1500的并发量下,TPS不低于100,响应时间不高于1500ms | |||
前置条件 | 1. 备号大量未注册的用户组数据 | |||
用例步骤 | 动作 | 预期响应时间 | ||
1 | 填写用户名、密码、登录类型进行注册 | <=1500ms | ||
事务响应 | ||||
用户并发数 | 平均响应 | 最大响应 | 吞吐量 | 成功率 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
服务器性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
数据库性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 |
4.3 性能测试用例 - 用户退出
用例名称 | 用户退出 | |||
用例编号 | exit_01 | |||
用例描述 | 在1500的并发量下,TPS不低于50,响应时间不高于1500ms | |||
前置条件 | 1. 准备100万条已经登录成功的账号数据 | |||
用例步骤 | 动作 | 预期响应时间 | ||
1 | 可借助工具或代码来实现登录 | |||
2 | 退出登录 | <=1500ms | ||
事务响应 | ||||
用户并发数 | 平均响应 | 最大响应 | 吞吐量 | 成功率 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
服务器性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
数据库性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 |
5. 性能测试场景 - 脚本
5.1 使用性能测试场景的作用
- 单场景有利于分析性能问题,因为排除了其他业务干扰;
- 混合场景更贴近用户实际使用习惯,是一个综合的性能评估。
- 建议先做单场景测试,再做混合场景测试
5.2 单场景设计
5.2.1 用户注册
- 请求默认值
- 信息头管理器
- http 请求
- 断言
- 察看结果树
5.2.2 用户登录
- 请求默认值
- 信息头管理器
- http 请求
- 断言
- 察看结果树
5.2.3 用户退出
- 请求默认值
- 信息头管理器
- http 请求
- 断言
- 察看结果树
5.2 多场景设计
5.2.1 注册登录退出场景
用例名称 | 注册登录退出业务 | |||
用例编号 | comp_01 | |||
用例描述 | 在业务流程过程中,响应时间和TPS达到要求 | |||
前置条件 | 注册登录退出相关数据准备完成 | |||
用例步骤 | 动作 | 预期响应时间 | ||
1 | 用户注册 | <=1500ms | ||
2 | 用户登录 | <=1500ms | ||
3 | 退出登录 | <=1500ms | ||
事务响应 | ||||
用户并发数 | 平均响应 | 最大响应 | 吞吐量 | 成功率 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
服务器性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 | ||||
数据库性能 | ||||
用户并发数 | CPU 利用率 | 内存利用率 | 磁盘IO | 其他参数 |
250 | ||||
500 | ||||
750 | ||||
1000 | ||||
1250 | ||||
1500 |
5.2.2 组合场景脚本
看起来用例复杂,但是写脚本简单,组合场景就是将单场景组合起来
6. 附赠一份软件测试面试宝典
点我 >>> 软件测试高频面试题(2023全新版)你必须掌握的面试技巧