【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

目录:导读


前言

1、阶梯式场景(负载测试)

该场景主要应用在负载测试里面,通过设定一定的并发线程数,给定加压规则,遵循"缓起步,快结束"的原则,不断地增加并发用户来找到系统的性能瓶颈,进而有针对性的进行各方面的系统优化。

使用到的线程为:jp@gc - Stepping Thread Group (deprecated)

在测试计划上:右键--->添加--->线程(用户)--->jp@gc - Stepping Thread Group (deprecated)

同时添加以下监视器:

HPS:每秒请求数 --- jp@gc - Hits per Second

TPS:每秒事务数 --- jp@gc - Transactions per Second

TRT:事务响应时间 --- jp@gc - Response Times Over Time

活跃线程数--- jp@gc - Active Threads Over Time

复合图查看器--- jp@gc - Composite Graph

针对阶梯式场景的参数配置,说明如下:

This group will start:给定的当前负载的并发用户数

First, wait for:等待XX秒后开始启动

Then start:0秒(初始化)启动XX并发用户数 --- 在第几个虚拟用户启动

Next, add:每using ramp-up时间内启动XX的用户数

threads every:每次加压阶梯下用户完成启动后保持运行XX秒

using ramp-up:XX秒内完成Next, add的用户数的启动

Then hold load for:This group will start并发用户数全部启动完成后保持运行XX秒 == 所有线程运行完成后再执行XX秒

Finally, stop:每隔threads every的时间减少XX用户数

threads every:每隔XX秒减少Finally, stop的用户数

默认设置参数如下:

注:

红框区域是增加线程过程,5秒钟启动10个线程,这10个线程持续运行30秒,再用5秒钟启动10个线程,这20个线程持续运行30秒

绿框区域是线程释放过程,每隔1秒停止5个并发用户数直到100个并发用户数减少为0

2、波浪式场景(压力测试)

该场景主要用在分段时间压测和压力测试里面,分段时间压测比如点餐系统,一天会出现用餐高峰期、平稳期和闲时区,针对该场景我们就要设计成不同时间段的压力值不同,加压方式不同等等。

压力测试我们只需要使用一个场景,并将压测时间设置长即可,同样的测试报告也用jpgc的监视器获得

使用到的线程为:jp@gc - UItimate Thread Group

在测试计划上:右键--->添加--->线程(用户)--->jp@gc - UItimate Thread Group

针对波浪式场景的参数配置,说明如下:

Start Threads Count:给定当前时间段的并发用户数

Initial Delay, sec:初始化时间,单位:秒(s)Startup Time, sec:启动时间,单位:秒(s)

Hold Load For, sec:所有并发用户数启动完成后保持运行的时长,单位:秒(s)

Shutdown Time:结束时间,单位:秒(s)

分段时间压测参数(示例):

从0秒 开始,30秒 启动 50个 虚拟用户,运行 60秒 后,10秒 停止50个虚拟用户 == 第一阶段耗时100秒

从100秒 开始,15秒 启动 200个 虚拟用户,运行 120秒 后,10秒 停止 200个 虚拟用户 == 前两个阶段总耗时 245 秒

从 245秒 开始,30秒 启动 50个 虚拟用户,运行 60秒 后,20秒 停止 100个 虚拟用户 == 前三个阶段总耗时 385秒

压力测试(示例):

从0秒 开始,60秒 启动 300个 虚拟用户,运行 500秒 后,10秒 停止300个虚拟用户

3、服务器监控

服务器监控插件:jp@gc - PerfMon Metrics Collector,需要在服务器安装:ServerAgent

服务器资源监控线形图

用于监控机器的CPU、Memory、Disks I/O、Networks I/O 性能指标值

服务器性能监测控件,包括CPU,Memory,Network,I/O等等(此功能用到在需监听的服务器上启动startAgent)

根据需要选择CPU,Memory,Network I/O等

1)下载并安装ServerAgent

2)通过xftp方式把包上传到服务器上,解压

上传压缩包到服务器建议公司环境安装目录下或opt目录下

解压命令:unzip ServerAgent-2.2.3.zip

进入解压后的文件:cd ServerAgent-2.2.3

查看所有文件:ll

启动文件: ./starAgent.sh

注:启动ServerAgent时,需要ROOT权限

启动ServerAgent时,需要在其对应目录下启动

在监控服务器性能时,需要一直是启动状态

3)更改端口并启动服务

Linux 下启动:./startAgent.sh 回车就可以启动,默认的端口是4444

若默认端口4444被占用,则需要指派端口 (阿里云服务器4444端口是连接访问不到的)

端口可以自定义,大于1024即可

启动>>

shell 复制代码
./startAgent.sh --udp-port 0 --tcp-port 4445

4)启动服务后去检查防火墙是否关闭

服务器\防火墙是关闭状态那就没有问题

启动防火墙:systemctl start firewalld

关闭防火墙:systemctl stop firewalld

检查防火墙状态:systemctl status firewalld

如果没有关闭防火墙,那么就需要关闭或执行下面的命令把端口添加到防火墙内

防火墙添加开放端口:

shell 复制代码
firewall-cmd --permanent -add-port=4445/tcp

|-------------------------------------|
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

每一份努力,都是为了让自己变得更加出色;每一次坚持,都是为了让生活变得更加精彩。坚定信念,勇敢前行,终将收获辉煌的人生。

勇敢地面对挑战,努力奋斗,只有不断超越自我,才能书写出精彩的人生篇章。坚持不懈,终将收获辉煌。

困难并不可怕,重要的是我们要敢于面对,勇敢努力,坚定信念,永不放弃,相信每一次努力都将迎来更加辉煌的明天。

相关推荐
茶馆大橘4 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
钱钱钱端6 小时前
【压力测试】如何确定系统最大并发用户数?
自动化测试·软件测试·python·职场和发展·压力测试·postman
测试19987 小时前
外包干了2年,快要废了。。。
自动化测试·软件测试·python·面试·职场和发展·单元测试·压力测试
土小帽软件测试10 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
qq_4337169513 小时前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman
qq_4337169514 小时前
Postman断言与依赖接口测试详解!
自动化测试·软件测试·功能测试·测试工具·mysql·接口测试·postman
土小帽软件测试15 小时前
jmeter基础03_汉化jmeter界面
测试工具·jmeter·软件测试学习
紫晓宁15 小时前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible
黑色叉腰丶大魔王17 小时前
《通过 Jmeter 压测存储过程详解》
jmeter
程序员小雷1 天前
软件测试基础:单元测试与集成测试
python·功能测试·selenium·测试工具·单元测试·集成测试·压力测试