如何利用Jmeter从0到1做一次完整的压测

压测,在很多项目中都有应用,是测试小伙伴必备的一项基本技能,刚好最近接手了一个小游戏的压测任务,一轮压测下来,颇有收获,赶紧记录下来,与大家分享一下,希望大家能少踩坑。

一、压测的时机

压测的时机很重要,如果时间选择不对,可能会做无用功,简单总结下5个常见的压测场景:

1、活动上线前压测

活动类的项目,常规操作是在活动上线前,对系统进行一个摸高压测,根据预估的流量,对系统配置进行优化调整,保证活动期间,系统能正常运行。

本次的小游戏项目,就属于活动类,在上线前进行了压测。

2、项目上线稳定后,对系统评估

系统上线后,随着用户量不断增加,承受的压力会越来越大,为了让系统在未来的时间内稳定运行,需要通过压测对系统进行评估,以调整配置或优化接口,来充分应对不断增长的用户量。

3、项目研发后期,对系统的检验

在项目后期,由于领导或团队的要求,需要对系统的稳定性做校验,保证系统短时间内流量陡增时能稳定运行,可以给系统的部署提供参考。

4、线上出现性能问题

有些项目为了抢占市场,节省时间,完成了基本的功能就上线了,没有做压测,当用户突然增加出现线上性能问题后,反过来做压测,这种情况的风险是很大的,不推荐。

5、合作方要求

有些合作方对性能有明确的要求,并且写进了合同,这种情况下就必须去做压测了。

二、压测过程

可做压测的工具很多,业界用得比较多的是Jmeter,今天我们就以Jmeter为例,分享下做压测的6个步骤:

1、编写压测脚本

图片

1)添加HTTP请求

填写请求方法,路径,请求参数

图片

2)添加HTTP信息头管理器

有些请求不需要添加,使用默认值,有些需要添加,与开发同学确认即可,注意请求体为Body Data时,大部分情况下需要添加请求头Content-Type: application/json

图片

3)添加响应断言

图片

4)添加断言持续时间

根据项目情况确定,一般设置为60s

图片

5)评估是否需要限制吞吐率(添加Constant Throughput Timer)

有时候为了模拟真实的使用场景,尽量保证线程组设置的并发数与聚合报告中的吞吐率一致

图片

图片

图片

6)查看结果树

开始压测时勾选仅错误日志,便于查看报错信息,调试时需要查看所有日志,保证接口脚本能正常调通

图片

7)聚合报告

图片

2、准备压测服务器(测试服务器/线上服务器)

有些项目需要在测试服务器上进行,而有些则直接在线上服务器进行,例如还未上线的活动类项目,就可直接在线上压测,不同的服务器配置,压出来的结果是不同的。

3、开始压测

提前与开发和产品同学确认并发量,如果项目有明确的用户数,比如500用户,那就直接用500并发或者稍稍高于500的并发,如果项目没有明确的并发,可根据当前项目情况酌情施压。

在压测过程中,注意观察服务器资源消耗情况,例如cpu,内存,磁盘,网络等以及服务器Nginx的日志。

观察服务器的压力,如果在测试环境,可以在服务器上装个nmon工具,可实时查看服务器的资源消耗情况,如果是线上环境,一般不能直接远程服务器,可以找运维同学要链接,比如这次运维同学直接给了夜莺(Nightingale)的链接地址,登录可直接查看服务器的资源消耗情况。

查看服务器的Nginx,主要是看是否有报错信息以及请求是否打到了测试服务器上。

4、记录结果

主要包括服务器配置,压测场景、Jmeter聚合报告以及接口报错情况,服务器资源监控等。

1)服务器配置

测试环境机器配置:单台机器,配置为6核6G内存

线上环境机器配置:两台Web应用程序服务器负载均衡,一台数据库服务器,每台配置为6核6G内存

2)压测场景

打开红包+猜测红包大小+获取红包状态接口(写上接口的URI)

/v1/api/red

3)聚合报告

1s起1000个线程数,循环次数500次,压测时间:2023/01/17 15:00~15:05(记录压测时间是为了在夜莺(Nightingale)上查看时间段内的资源消耗情况图)

图片

主要关注平均响应时间Average,Error%,Throughput

4)测试结果

查看结果树,将报错的类型全部列举出来,例如存在连接超时的报错:Connection timed out

图片

5)资源监控

关注CPU使用率,内存使用率,网络流量

图片

图片

5、提性能Bug和验证Bug

如果有的接口有性能Bug,提Bug给开发,开发修复后,再次压测,进行回归测试,验证Bug已修复。

6、发送压测报告

将步骤4的结果进行简单的文字分析总结,发送压测报告

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405014.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Py Error002】python rarfile解压 Cannot find working tool

1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 2.了解、学习Python批量解压zip、rar压缩包文件,并结合日常的场景进行测试。 文章目录 1.问题详情2.解决办法3.参考链接 1.问题详情 Python代码解压rar压缩包报错&#xff…

秃姐学AI系列之:池化层 + 代码实现

目录 池化层 二维最大池化层 Max Pooling 池化层超参数 平均池化层 Mean Pooling 总结 代码实现 池化层 卷积对位置非常敏感的,但是我们在实际应用中我们需要一定程度的平移不变性。比如照明、物体位置、比例、外观等因素会导致图片发生变化。所以卷积对未…

ollama使用llama3.1案例

ollama安装和运行llama3.1 8b conda create -n ollama python3.11 -y conda activate ollama curl -fsSL https://ollama.com/install.sh | sh ollama run songfy/llama3.1:8b 就这么简单就能运行起来了. 我们可以在命令行中与他交互. 当然我们也可以用接口访问: curl http:…

DQL-案例

一.题目: 1)分析: 1.有 姓名 ,性别,入职时间(需要开始时间和结束时间-->范围查询); 2.右下角有分页条-->需要分页展示 2)创建表的代码: -- 员工管理 create table emp (id int unsigned primary ke…

linux知识

内核是操作系统的核心部分,它是基于硬件的第一层软件扩充,提供操作系统的最基本功能,是操作系统工作的基础。内核的主要职责包括管理系统的进程、内存、设备驱动程序、文件和网络系统等,这些功能共同决定了系统的性能和稳定性。 …

武汉流星汇聚:西班牙时尚消费高涨,中国商家借亚马逊平台拓商机

在2024年第二季度的亚马逊西班牙站,一场前所未有的时尚盛宴正悄然上演。销售额同比高增长TOP10品类榜单的揭晓,不仅揭示了西班牙消费者对于时尚品类的狂热追求,更为亚马逊平台上的中国商家开启了一扇通往新蓝海的大门。其中,男士拳…

极速闪存启动:SD与SPI模式的智能初始化指南

最近很多客户朋友在询问我们 CS 创世 SD NAND 能不能使用 SPI 接口,两者使用起来有何区别,下面为大家详细解答。 SD MODE: CS 创世 SD NAND 支持 SD 模式和 SPI 模式,SD NAND 默认为 SD 模式,上电后,其初始化过程如下…

系统架构:分而治之

系统架构:分而治之 引言“分而治之”在架构中的应用模块化设计分层化架构微服务架构 分而治之的优势降低复杂性提高灵活性和可扩展性增强可维护性促进团队协作 分而治之的劣势复杂性转移性能开销开发和运维的复杂性数据一致性挑战 结论 引言 “分而治之”是一种分析…

python开发--乌龟对对碰实现(一)

文章目录 前言规则解析代码实现代码解析问题总结与思考 前言 "乌龟对对碰"是一种近期在网络直播平台上非常流行的盲盒玩法,消费者购买盲袋或盲盒,每个包含一个不同颜色的树脂乌龟玩具。玩家在购买时会许愿一个特定颜色的乌龟,卖家…

虚幻5|AI视力系统,听力系统,预测系统(1)视力系统

继宠物伴随系统初步篇后续 虚幻5|AI巡逻宠物伴随及定点巡逻—初步篇-CSDN博客 一,听力系统 1.打开宠物ai的角色蓝图 2.选中ai感知组件 右侧细节,找到ai感知,添加感知配置,我们需要的是ai视力配置 3.选中左侧创建的ai感知组件&…

分组汇总时保留不变列

Excel表格的ID列是分类,Value1和Value2是数值,ID相同时Descr 1和Descr 2保持不变。 ABCDE1IDValue 1Value 2Descr 1Descr 22112.51.8ax13112.31.1ax14111.91.6ax15123.73.5bx26123.91.5bx27132.50.2cx38132.64.1cx391324.8cx310132.71.8cx3 要求&#…

科创中心“核”动力|趋动科技:AI算力界的领跑者

近日,趋动科技与深信服正式推出联合解决方案。联合解决方案将深信服EDS的高性能存储与趋动科技OrionX AI算力资源池化软件、以及GeminiAI训练平台有机结合,整合存力与算力资源的同时,帮助用户建好AI平台、管好AI资源、用好AI服务。 双方已完成…

【嵌入式烧录刷写文件】-2.10-为一个Intel Hex文件计算校验和Checksum

案例背景(共6页精讲): 有如下一段Intel Hex文件,为其创建Checksum校验和:CRC16,CRC32(CVN),SHA-256 Hash算法…, 将Checksum Value填充到指定地址。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767…

Unity 求坐标点在扇形区域内的投影

视频效果&#xff1a; 代码: /// <summary>/// 投影在扇形区域内的点/// </summary>/// <param name"targetPos">目标点</param>/// <param name"fanRadius">扇形半径</param>/// <param name"fanAngle"…

【C语言】【Linux】如何在Linux终端中进行彩色输出——C语言篇

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;C语言编程&…

超越Midjourney的AI绘画神器,Flux文生图究竟强在哪里?测评攻略来咯|附生成咒语

最近&#xff0c;AI绘画界又掀起了一阵热潮。Flux大模型现在真的已经是火遍了Al圈&#xff0c;都说生图的质感媲midjourney&#xff1f;但是对于大多数人来说配置要求太高了&#xff0c;今天就带大家用国产的AI绘画软件进行测评&#xff0c;感兴趣的就一起往下看看吧&#xff0…

eNSP 华为交换机链路聚合

华为交换机链路聚合 链路聚合好处&#xff1a; 1、提高带宽 2、链路冗余 SW_2&#xff1a; <Huawei>sys [Huawei]sys SW_2 [SW_2]vlan batch 10 20 [SW_2]int g0/0/4 [SW_2-GigabitEthernet0/0/4]port link-type access [SW_2-GigabitEthernet0/0/4]port default vl…

知识改变命运 数据结构【栈和队列面试题】

1.最小栈 class MinStack {Stack <Integer>stack;Stack <Integer>minStack; public MinStack() {stacknew Stack<>();minStacknew Stack<>();}public void push(int val) {stack.push(val);if(minStack.empty()) {minStack.push(val);} else {int top…

解决旧版CMS内容管理无法登录的问题

最近遇到了输入正确的账户密码&#xff0c;旧版的CMS内容管理的平台提示登录成功却无法跳转的问题 遇到这种情况请不要慌&#xff01;&#xff01;&#xff01; 请按照下面的步骤解决问题&#xff1a; 1.点击账号管理 2.点击右上角的返回旧版控制台 3.点击cloud1环境 4.点击扩…

武林外传书生版单机安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;武林外传书生版。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xff0c;绝对是完整…