如何利用Jmeter从0到1做一次完整的压测?这2个步骤很关键!
压测,在很多项目中都有应用,是测试小伙伴必备的一项基本技能,刚好最近接手了一个小游戏的压测任务,一轮压测下来,颇有收获,赶紧记录下来,与大家分享一下,希望大家能少踩坑。
一、压测的时机
压测的时机很重要,如果时间选择不对,可能会做无用功,简单总结下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的结果进行简单的文字分析总结,发送压测报告
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章:

如何利用Jmeter从0到1做一次完整的压测?这2个步骤很关键!
压测,在很多项目中都有应用,是测试小伙伴必备的一项基本技能,刚好最近接手了一个小游戏的压测任务,一轮压测下来,颇有收获,赶紧记录下来,与大家分享一下,希望大家能少踩坑。 一、压…...

基于STM32+微信小程序设计的智能门锁(4种开锁方式)_2023
一、项目介绍 1.1 项目背景 随着智能家居的普及,智能门锁作为一个非常重要的组成部分,受到了人们越来越多的关注。传统的机械锁门禁已经不能满足人们对于门锁安全、便捷性和智能化的需求,因此市场对于智能门锁的需求不断增加。而随着技术的发展,基于单片机的智能门锁已经…...

享受户外的美好时光:花园吊椅的魅力
拥有舒适的花园吊椅,就像在家中创造了一个度假天堂。这些轻松摇摆的座位为您提供了一个完美的地方,既能舒适躺卧,又能让您在家中的花园或庭院中感受到度假的氛围。度过美好时光的吊椅,将成为家庭花园的一大亮点,为您带…...

游戏中找不到d3dx9_43.dll怎么办,教你快速解决方法
在计算机的世界里,我们经常会遇到一些让人头疼的问题。比如,有一天,小明正在玩他最喜欢的游戏,突然弹出了一个错误提示:“由于找不到d3dx9_43.dll,无法继续执行代码”。小明感到非常困惑,不知道这是什么意思…...

蓝桥杯:买不到的数目
对于两个互质的正整数 n , m n,m n,m,请找出来不能被 n n n和 m m m组成的最大数 X X X 例如:对于4,7那么 X X X17,因为对于大于17的任一数都可由4和7组成。 重新翻译题目: 对于任一大于 X X X的正整数 Y Y Y满足 Y a n b m Y a \times nb \times m …...

Nginx简介,Nginx搭载负载均衡以及Nginx部署前端项目
目录 一. Nginx简介 Nginx的优点 二. Nginx搭载负载均衡 2.1 Nginx安装 2.1.1 安装依赖 2.1.2 解压nginx安装包 2.1.3 安装nginx 2.1.4 启动nginx服务 2.2 tomcat负载均衡 2.3 Nginx配置 三. Nginx前端部署 一. Nginx简介 NGINX(读作:engi…...

QT5.15.2搭建Android编译环境及使用模拟器调试(全)
一、安装QT5.15.2 地址:下载 我电脑的windows的,所以选windows 由于官方安装过程非常非常慢,一定要跟着步骤来安装,不然慢到怀疑人生 1)打开"命令提示符"(开始 -> Windows 系统 -> 命令…...

npm install报 ERESOLVE unable to resolve dependency tree
三四年前的一个项目,打开,npm install 一下,结果报 ERESOLVE unable to resolve dependency tree。 以前install都一切顺利,现在就不行,那很大的可能是npm的版本不同。 PS D:\workSpace\code\*-admin-ui-master> n…...

CentOS 7上创建Python 3虚拟环境
在CentOS 7上创建Python 3虚拟环境可以使用virtualenv包。以下是创建Python 3虚拟环境的步骤: 确保已经安装了Python 3和pip。可以通过在终端中运行以下命令来检查它们是否已安装: python3 --version pip3 --version如果未安装,请使用以下…...

B端设计必看的9个开源组件库,值得收藏!
如果你想开发一款To B Web端产品,如何选择令人眼花缭乱的开源组件库?行业团队常用的B端开源组件库是什么?今天,我们将为您带来入门级开源组件库的介绍。你可以先有一个大致的了解,希望能对你有所帮助。未来,…...

王坚院士:云计算与 GPT 的关系,就是电和电动机的关系
无论是行业,还是阿里,都身处巨变时。已经年过六十的王坚院士,重回阿里,重回大众视野,今年以来,在多个场合都能够看到他的身影。 而每一次他的分享,都值得我们细细品味。 以下为王坚院士在 202…...

Git代码合并流程规范
...

编译cef114.2 with h264
按照下面网页要求安装VS和SDK https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md#markdown-header-development Win 10 deployment, Win 10 build system w/ VS2022 17.5, Win 10.0.22621 SDK, Ninja rem 配置winsock科学上网 netsh winhttp set prox…...

A股风格因子看板 (2023.11第01期)
该因子看板跟踪A股风格因子,该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子,用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第01期,指数组合数据截止日2023-10-31,要点如下 近1年A股风格因子收益走…...

Session+Cookie实现登录认证
使用 Session 和 Cookie 实现登录认证的流程通常包括以下步骤: 1. 登录认证流程 用户登录: 用户在登录页面输入用户名和密码。 服务器验证用户的凭证(用户名和密码)是否正确。 创建会话(Session)…...

mac matplotlib显示中文
以下默认字体,在mac ventura上测试能成功显示中文: import matplotlib.pyplot as plt import matplotlib#from matplotlib import font_manager #plt.rcParams[font.sans-serif] [Heiti TC]#plt.rcParams[font.sans-serif] [Songti SC]#plt.rcParams[f…...

python自动化测试模板
1:准备html模版 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>接口自动化…...

MySQL 外连接和内连接的查询优化怎么做?
目录 1. 表连接方式的分类和需要注意的细节 2. 表连接时底层做了什么事? 3. 左外连接优化方案 4. 内连接优化方案 1. 表连接方式的分类和需要注意的细节 多表连接查询,大体上可以分为内连接与外连接。 内连接的意思就是把两个表有关联的部分都取出…...

Web自动化测试 —— cookie复用
一、cookie简介 cookie是一些数据,存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时,在链接关闭后,服务端不会记录用户信息 二、为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入若用例需要经常执行&…...

Java自学第1课:安装JDK+Eclipse
1 引言 在学习前,我想说一句,那就是为什么要学习Java。 每个人的出发点都不同,对于做信息化的工程技术人员来说,java不懂,就没法干项目。 尽管有c和matlab等基础,但java看起来与这些语言都不太一样。 做…...

zabbix6.4监控centos
1、关闭防火墙 setenforce 0 #关闭SELinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #设置永久关闭SELinux systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service …...

炫云客户端信用额度如何修改?
现在炫云新注册用户信用额度是100元,但是有人觉得信用额度太高了,想修改信用额度,不知道炫云的信用额度如何修改,今天就教大家如何修改炫云的信用额度。炫云的信用额度在炫云官网和客户端都可以修改。 我们先来看炫云官网如何修改…...

windows jar包文件默认打开方式设置
1、管理员权限打开“注册表编辑器”; 2、定位到计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts项下,找到.jar项,再选中UserChoice项,其中ProgId值为jarfile 3、定位到计算机\HKEY_CLAS…...

高并发和存储之间的关系是什么?
文章目录 🔊博主介绍🤖博主的简介📥博主的目标 🥤本文内容🍊 一、高并发对存储的压力🍊 二、存储的性能和可扩展性 📢总结 🔊博主介绍 📕我是廖志伟,一名Java…...

Antv/G2 图表坐标轴文字过长时添加省略号
// 格式化文字,超过长度添加省略号chart.axis(city, {label: {formatter: (text) > {// 字符太长添加省略号return text.length > 5 ? ${text.slice(0, 5)}... : text;}}})完整 demo: <!DOCTYPE html> <html lang"en"> &l…...

pycharm更改远程服务器地址
一、问题描述 在运行一些项目时,我们常需要在pycharm中连接远程服务器,但万一远程服务器的ip发生了变化,该如何修改呢?我们在file-settings-python interpreter中找到远程服务器,但是发现ip是灰色的,没有办…...

海康监控摄像机和录像机接入LiveMedia GB28181平台实现远程调取监控视频
海康威视各种型号监控摄像头或硬盘录像机(NVR/HVR)接入LiveMedia GB28181平台配置过程都非常简单明了,但有些细节需要注意,避免走弯路。 1、基本要求 (1) 网络要求 总体来说,只要监控设备和GB28181平台的网络是连通…...

一文全览各种 ES 查询在 Java 中的实现
2 词条查询 所谓词条查询,也就是ES不会对查询条件进行分词处理,只有当词条和查询字符串完全匹配时,才会被查询到。  2.1 等值查询-term 等值查询,即筛选出一个字段等于特定值的所有记录。  SQL&…...

Centralized Feature Pyramid for Object Detection解读
Centralized Feature Pyramid for Object Detection 问题 主流的特征金字塔集中于层间特征交互,而忽略了层内特征规则。尽管一些方法试图在注意力机制或视觉变换器的帮助下学习紧凑的层内特征表示,但它们忽略了对密集预测任务非常重要的被忽略的角点区…...

unity中meta文件GUID异常问题
错误信息: The .meta file Assets/Scripts/Editor/ConvertConfigToBinary/TxtConverter.cs.meta does not have a valid GUID and its corresponding Asset file will be ignored. If this file is not malformed, please add a GUID, or delete the .meta file and…...