最近公司要求对新增的一个流程做性能测试,但自己对性能也是一知半解,了解性能测试相关知识也都是从网上查找,这次出个专题记录下测试,以后学习用。
日活动用户5千,高峰时段10分钟,总用户数4万
测试方案的整理,主要是为了确认测试目的、测试需求、测试范围、测试过程、确认需求指标TPS、响应时间、吞吐量。 也就是要测什么,怎么测的问题。
1.测试业务场景是否能符合需求
2.测试系统瓶颈,了解系统性能表现
3.通过对业务场景测试,为系统调优提供参考
4.预估系统容量
本次测试的主要流程,涉及到业务对应的接口,需要跟业务和开发沟通确认。
1.交易吞吐量:后台主机每秒能够处理的交易笔数(TPS)
2.交易响应时间(3-5-8)秒:用户打开界面和程序事务处理时间
3.并发交易成功率99.99%:系统成功响应用户请求的成功率
4.资源使用指标:cpu(80%)、内存占有率(80%)
确认当前系统日活动5千人。根据二八原则(80%的交易量发生在20%的时间段),当前环境对主机的交易吞吐量指标结合二八原则计算公式 :
TPS = (总请求数* 80%) / (总时间*20%)
TPS = 5000*0.8/10*60*0.2=33.33
需要在测试环境模拟用户业务操作(压力测试)的并发量为:
并发数=TPS*(thinktime+runtime)=34*(7)=238
time值=登录0.2+完善信息3+扫码0.1+输入数据3+提交0.2+查看数据0.3=6.8
在正常的并发测试和批处理测试中,核心系统服务器主机的资源使用指标要求:
CPU 使用率 ≤ 80%
内存使用率 ≤ 80%
测试环境需与生产环境相同、网络和软硬件配置相同
服务器 | cpu | 存储 | 操作系统 | 应用软件 |
---|---|---|---|---|
测试管理工具jmeter,具体信息如下:
用途 | 工具 | 生产厂商 | 版本 |
---|---|---|---|
压力测试 | jmeter | Apche | 5.0 |
因有4万个用户的需求,日在线用户 5000人以上,并发用户在【250】个左右,使用jmeter工具测试,创建相关操作脚本。测试过程按四个步骤进行:即基准测试场景、单独场景压力测试、混合场景压力测试、稳定场景测试,设置对服务器性能监视,查看各性能指标
测试接口调试准备
通过fiddler工具获取app接口,需提前获取token,考虑token多用户如何取值(需研发配合)
接口名称 | 接口路径 | 入口参数 | 出口参数 | 备注 |
---|---|---|---|---|
登录 | ||||
完善信息 |
典型交易基准测试是单交易单用户测试,目的是对选择的每个典型交易在无压力情况下 (无额外进程运行并占用系统资源)情况下,获取系统处理单笔交易的耗时,为下一步模拟 多个用户、混合交易的性能测试提供一个基本数据参考。
基准测试要达到以下目标:
测试单业务单人测试获取典型交易的平均响应时间
场景名称 | 线程数 | ramp-up(总启动时间) | 循环次数 | 持续时间(秒) | 备注 |
---|---|---|---|---|---|
登录 | 1 | 1 | 1 | 无 | |
完善信息 | 1 | 1 | 1 | 无 |
单交易多用户并发测试对每个典型交易通过多个用户多次循环执行,获得该交易在并发
用户情况下的平均响应时间以及每秒响应交易数,同时检验服务器端对每个典型交易多个并
发用户的处理能力。
测试方法
对单交易多用户并发测试:使用手动场景,设置并发用户数 200、300,500,持续时间 2/3/5 分钟, 循环次数永久。测试每个交易在不同压力下的应时间以及每秒响应交易数量。从 而发现交易的单点瓶颈,并针对问题进行优化。
测试场景-单交易并发测试
场景名称 | 线程数 | 加压方式 | 加压持续时间 | 退出方式 | 备注 |
---|---|---|---|---|---|
登录 | 200/400/500 | 总500个,从0开始启动200个,每过60s,在5s内增加60 | 2分钟 | 1s停5个 | 得出性能变化趋势图找出拐点 |
完善信息 | 200/400/500 | 总500个,从0开始启动200个,每过60s,在5s内增加60 | 2分钟 | 1s停5个 |
混合场景压力测试是多交易多用户测试,根据实际用户操作,将多个单独的业务操作同时进行压力测试,分析测试结果是否满足用户要求的指标。
测试方法
对混合交易多用户并发测试:混合场景,设置并发用户数 200、300,500,持续时间 2/3/5 分钟, 按照交易占比设置比例,循环次数永久。测试每个交易在不同压力下的应时间以及每秒响应交易数量。从而发现交易的单点瓶颈,并针对问题进行优化。
测试场景-混合交易并发测试
场景名称 | 线程数 | 所占比例 | 加压方式 | 加压持续时间 | 退出方式 | 备注 |
---|---|---|---|---|---|---|
登录 | 200/400/500 | 10% | 总500个,从0开始启动200个,每过60s,在5s内增加60 | 2分钟 | 1s停5个 | 得出性能变化趋势图找出拐点 |
完善信息 | 200/400/500 | 10% | 总500个,从0开始启动200个,每过60s,在5s内增加60 | 2分钟 | 1s停5个 |
备注:比例设置需在线程组右键添加->选择逻辑控制器->选择吞吐量控制器->多个吞吐量设置10、10、30、30、10/10,并将对应接口请求放置在对应的吞吐量控制器下后运行
性能测试执行过程中应收集的测试场景执行结果数据包括:
1.jmeter中执行基准测试、常规并发、混合交易产生的聚合测试报告结果
2.通过监测服务器的资源监控数据(cpu/内存)
1.测试环境和人员准备
2.jmeter和相关监测服务器插件安装
3.相关测试接口获取,入参准备
4.执行测试场景
5.查看jmeter报告:结果树、聚合报告、服务器监控资源
6.输出测试报告