当前位置:网站首页>第一次性能测试实践,有“亿”点点紧张
第一次性能测试实践,有“亿”点点紧张
2022-08-05 03:50:00 【入坑玩家】
最近有粉丝做性能测试,不停地来问我问题,感觉他连很基本的概念都不清楚,就开始轰轰烈烈的干起来了,出了问题,就指望我手把手来解决。
“磨刀不误砍柴工”,我们搞清楚了性能测试的技巧,测试起来就会顺畅很多。
确认需求
确定性能需求和性能测试方案、需要确定性能测试范围(覆盖哪些场景)、性能测试策略、并发用户数和加压方式。
时间、人员、任务的分配安排,一般在总体测试计划中会预留性能测试的时间。性能测试方案是开展性能测试前的核心内容,决定着性能测试如何开展的指标标准。
其主要包括性能需求调研、性能测试范围、性能测试策略、并发用户数和加压方式、性能测试计划、用例等。其中性能测试方案中最重要的部分是计算并发用户数。
在性能测试有个核心内容也是在谈性能测试时绕不过去的问题,就是并发用户数的计算。目前做性能测试采用的比较多的并发用户数的评估策略是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:与包含差不多,但不能使用正则表达式匹配
运行
运行性能场景,收集性能测试结果(聚合报告、每秒活跃线程数、每秒事务响应时间、每秒平均事务数、每秒点记录、吞吐率),分析性能瓶颈(通过图表分析)。
出具性能测试报告
过程描述、图表加文字说明、缺陷分析。
学习技术千万不要孤军奋战,最好是能抱团取暖,这里邀请你进入我们的软件测试学习交流群:【769146372】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
好文推荐
边栏推荐
- Never put off till tomorrow what you can put - house lease management system based on the SSM
- token、jwt、oauth2、session解析
- 开发Hololens遇到The type or namespace name ‘HandMeshVertex‘ could not be found..
- UE4 通过互动(键盘按键)开门
- 【树莓派】树莓派调光
- 36-Jenkins-Job迁移
- How to solve the three major problems of bank data collection, data supplementary recording and index management?
- 静态方法获取配置文件数据
- [TA-Frost Wolf_may-"Hundred Talents Project"] Graphics 4.3 Real-time Shadow Introduction
- Hard power or soft power, which is more important to testers?
猜你喜欢
Use CH341A to program external Flash (W25Q16JV)
多御安全浏览器 V10.8.3.1 版正式发布,优化多项内容
MySql的索引学习和使用;(本人觉得足够详细)
Open-Falcon of operation and maintenance monitoring system
UE4 通过与其它Actor互动开门
UE4 opens door via interaction (keyboard key)
Shell script: for loop and the while loop
iMedicalLIS listener (2)
【Mysql进阶优化篇02】索引失效的10种情况及原理
2022 High-level installation, maintenance, and removal of exam questions mock exam question bank and online mock exam
随机推荐
Beyond YOLO5-Face | YOLO-FaceV2 officially open source Trick+ academic point full
[Paper Notes] MapReduce: Simplified Data Processing on Large Clusters
[Software testing] unittest framework for automated testing
Fifteen. Actual combat - MySQL database building table character set and collation
public static <T> List<T> asList(T... a) 原型是怎么回事?
Ali's local life's single-quarter revenue is 10.6 billion, Da Wenyu's revenue is 7.2 billion, and Cainiao's revenue is 12.1 billion
This year's Qixi Festival, "love vegetables" are more loving than gifts
2022-08-04T17:50:58.296+0800 ERROR Announcer-3 io.airlift.discovery.client.Announcer appears after successful startup of presto
Industry Status?Why do Internet companies prefer to spend 20k to recruit people rather than raise their salary to retain old employees~
ffmpeg enumeration decoders, encoders analysis
队列题目:最近的请求次数
Web3.0 Dapps - the road to the future financial world
[论文笔记] MapReduce: Simplified Data Processing on Large Clusters
GC Gaode coordinate and Baidu coordinate conversion
Shell script: for loop and the while loop
UE4 第一人称角色模板 添加冲刺(加速)功能
Spark基础【介绍、入门WordCount案例】
Redis1:Redis介绍、Redis基本特性、关系型数据库、非关系型数据库、数据库发展阶段
Haproxy搭建Web群集
Common open source databases under Linux, how many do you know?