一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情。
1.确定性能需求和性能测试方案,需要确定性能测试范围(覆盖哪些场景),性能测试策略,并发用户数和加压方式。
时间、人员、任务的分配安排,一般在总体测试计划中会预留性能测试的时间。性能测试方案是开展性能测试前的核心内容,决定着性能测试如何开展的指标标准。其主要包括性能需求调研,性能测试范围,性能测试策略,并发用户数和加压方式,性能测试计划,用例等。其中性能测试方案中最重要的部分是计算并发用户数。
在性能测试有个核心内容也是在谈性能测试时绕不过去的问题,就是并发用户数的计算。目前做性能测试采用得比较多的并发用户数的评估策略是 80-20 法则。 通过与项目团队(含客户、产品)评估出系统高峰期和高峰时段,得到该高峰时段的用户数量。假设 本电商系统高峰时段为双十一上午 10 点为高峰期(做秒杀/团购活动)的用户数量是 10W 用户量,高峰 时段为 15 分钟。那么我们可以通过 20-80 法则来计算并发用户数,即 80%的用户会在 20%的时间内完 成交易,计算结果为:(10W80%)/(15 分钟60 秒20%)=80000 人/180 秒=444.44 人 因为公司产品不只是为了满足当前的性能需求,还要能够满足未来 3 年的性能需求,而公司业务是增 长的(不增长会被打死的),预计增长为 20%(领导说了算,他开心就好),那么 3 年之后的并发用户 数为:444.44 人1.21.21.2=768 人,则得到每秒并发用户数 768 人。 由上可知,我们在线程组中设计的线程数为 768,Ramp-up 值为 1,持续时间为 10 分钟(通用标准)。
2.录制性能测试脚本,增强脚本使性能测试脚本尽可能真实接近性能测试的实际情况(参数化,关联, 定时器,集合点,断言)
参数化:
csv数据文件设置
用户变量和用户参数
函数助手
关联:
前面响应数据的提取:在 JMeter 通过在前面请求中添加后置处理器创建正则表达式提取器,正则表 达式提取器中包含:引用名称即参数的名称,[可以任意填写]。正则表达式要根据响应来填写,响应在查 看结果树中可以获取。在查看结果树中对响应使用 RegExp Tester 模式查看,获取到要关联的数据及左 右边界,将要关联的数据使用(.*?)来替代。模板一般为,匹配数字一般为 1 后面请求数据的关联:把需要关联的请求数据使用${}正则表达式的引用名称即参数替代即可。
断言:
响应断言的操作主要包括四种:
包含:预期结果应该包在实际结果当中
匹配:使用正则表达式进行匹配
Equals:完全相等(很少用)
Substring:与包含差不多,但不能使用正则表达式匹配
3.运行性能场景,收集性能测试结果(聚合报告,每秒活跃线程数,每秒事务响应时间,每秒平均事务数,每秒点记录,吞吐率),分析性能瓶颈(通过图表分析)
4.出具性能测试报告
过程描述、图表加文字说明、缺陷分析。