第一次做性能测试?来捋一遍流程吧
确认需求
确定性能需求和性能测试方案、需要确定性能测试范围(覆盖哪些场景)、性能测试策略、并发用户数和加压方式。
时间、人员、任务的分配安排,一般在总体测试计划中会预留性能测试的时间。性能测试方案是开展性能测试前的核心内容,决定着性能测试如何开展的指标标准。
其主要包括性能需求调研、性能测试范围、性能测试策略、并发用户数和加压方式、性能测试计划、用例等。其中性能测试方案中最重要的部分是计算并发用户数。
在性能测试有个核心内容也是在谈性能测试时绕不过去的问题,就是并发用户数的计算。目前做性能测试采用的比较多的并发用户数的评估策略是80-20法则。
通过与项目团队(含客户、产品)评估出系统高峰期和高峰时段,得到该高峰时段的用户数量。
假设本电商系统高峰时段为双十一上午10点为高峰期(做秒杀/团购活动)的用户数量是10W用户量,高峰时段为15分钟。那么我们可以通过20-80法则来计算并发用户数,即80%的用户会在20%的时间内完成交易,计算结果为:(10W80%)/(15分钟60秒20%)=80000人/180秒=444.44人。
因为公司产品不只是为了满足当前的性能需求,还要能够满足未来3年的性能需求,而公司业务是增长的(不增长会被打死的),预计增长为20%(领导说了算,他开心就好),那么3年之后的并发用户数为:444.44人 * 1.2 * 1.2 * 1.2 = 768人 ,则得到每秒并发用户数768人。
由上可知,我们在线程组中设计的线程数为768,Ramp-up值为1,持续时间为10分钟(通用标准)。
脚本录制
录制性能测试脚本,增强脚本使性能测试脚本尽可能真实接近性能测试的实际情况(参数化、关联、定时器、集合点、断言)。
参数化
csv数据文件设置
用户变量和用户参数
函数助手
关联
前面响应数据的提取:在JMeter通过在前面请求中添加后置处理器创建正则表达式提取器,正则表达式提取器中包含引用名称即参数的名称,可以任意填写。
正则表达式要根据响应来填写,响应在查看结果树中可以获取,在查看结果树中对响应使用RegExpTester模式查看,获取到要关联的数据及左右边界,将要关联的数据使用(.*?)来替代。模板一般为111,匹配数字一般为1后面。
请求数据的关联:把需要关联的请求数据使用${}正则表达式的引用名称即参数替代即可。
断言
响应断言的操作主要包括四种:
包含:预期结果应该包在实际结果当中
匹配:使用正则表达式进行匹配
Equals:完全相等(很少用)
Substring:与包含差不多,但不能使用正则表达式匹配
运行
运行性能场景,收集性能测试结果(聚合报告、每秒活跃线程数、每秒事务响应时间、每秒平均事务数、每秒点记录、吞吐率),分析性能瓶颈(通过图表分析)。
出具性能测试报告
过程描述、图表加文字说明、缺陷分析。
相关文章
- 基于CMPP协议集成短信测试桩全流程实践分享
- 测试流程不完善,又遇到不积极的开发怎么办?
- Jmeter接口测试流程详解(中科软测认证中心)
- 产品补丁包测试的基本流程
- 测试流程之关于用例评审
- 第 19 课时:调度器的调度流程和算法介绍(木苏)
- 职场日常:一文剖析性能测试流程,时间为啥那么长?
- Jmeter性能测试的标准流程
- 接口测试的概念、目的、流程、测试方法有哪些?
- 测试流程不完善,又遇到不积极的开发怎么办?
- 移动App性能测评与优化1.2 规范测试流程及常见等问题
- 移动App性能测评与优化1.2.1 测试流程
- 手撕spring核心源码,彻底搞懂spring流程
- 《精通软件性能测试与LoadRunner最佳实战》—第1章1.6节软件测试流程
- IBM测试流程
- shell流程控制(流程不可为空、if else流程、for循环、while循环/无限循环、until循环、分支结构case...esac、跳出循环)、shell 函数(定义需在开头、如何调用、有无return返回值差别、函数参数$1 / ${10}、$? 获取返回值及其限制)、shell 输入输出重定向、Here Document重定向方式、/dev/null文件作用、shell文件包含及使用
- 无线客户端测试流程随想
- 性能测试流程各阶段的工作
- 性能测试知多少---性能测试流程
- ERP验收测试的流程、方法与原则!
- 通用社区登陆组件技术分享(开源)中篇:OAuth 登陆组件流程及组件集成方法
- 流程引擎的API和服务基础
- Django使用Redis进行缓存详细最全流程