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

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

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

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

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

   同时添加以下监视器:

TPS:jp@gc – Transactions per Second
响应时间:jp@gc – Response Times Over Time
活跃线程数:jp@gc – Active Threads Over Time

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

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

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的用户数的启动

  4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客  

      注:五秒钟启动十个线程,这十个线程持续运行30秒,再用五秒钟启动十个线程,这20个线程持续运行30秒

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

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

  4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

       注:每隔1秒减少5个并发用户数直到并发用户数减少为0

我们以注册接口为例,配置如下参数:

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

  配置参数的完整描述为:给定负载并发用户数为25,从0秒开始,每3秒内增加5个并发用户数,3秒时刻完成5个并发用户数的启动后开始平稳运行10秒钟,依次下去,直到25个并发用户数全部都启动完成后,平稳运行30秒,然后每隔1秒减少5个并发用户数直到并发用户数减少为0时,负载测试结束。

开始进行负载测试,等待测试完成后,可以通过添加的jpgc监视器图表查看性能测试报告结果

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

 4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

 4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

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

  该场景主要用在分段时间压测和压力测试里面,分段时间压测比如点餐系统,一天会出现用餐高峰期、平稳期和闲时区,针对该场景我们就要设计成不同时间段的压力值不同,加压方式不同等等,压力测试我们只需要使用一个场景,并将压测时间设置长即可,同样的测试报告也用jpgc的监视器获得

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

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

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

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

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秒

    。。。。。。

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

压力测试(示例):

  理解:从 0秒 开始,60秒 启动 300个 虚拟用户,运行 500秒 后,10秒 停止300个虚拟用户  == 段耗时 570秒

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

 

三、服务器监控

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

服务器资源监控线形图
用于监控机器的CPU、Memory、swap、Disks I/O、Networks I/O。CPU:cpu占用量百分比;
服务器性能监测控件,包括CPU,Memory,Network,I/O等等(此功能用到在需监听的服务器上启动startAgent)
根据需要选择CPU,Memory,Network I/O等

1、下载并安装ServerAgent

百度网盘链接安装包:

链接:https://pan.baidu.com/s/1VOQVS0LdrhMEXdFthvyuhg
提取码:0h1p

2、通过ftp/sftp方式把包上传到服务器上,解压

上传 压缩包到服务器 建议公司环境安装目录下或opt目录下
解压命令:unzpi ServerAgent-2.2.3.zip
进入解压后的文件:cd ServerAgent-2.2.3/
查看所有文件:ll

starAgent.sh 是启动文件

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

3、更改端口并启动服务:

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

在阿里云的服务器上面4444端口可能冲突后会被禁用,防止禁用后会出现各种问题

更改并启动服务执行: sh startagent.sh –udp-port 0 – -tcp-port 3231

(建议使用该方式,去掉udp、tcp改变端口, 默认4444,可能冲突或禁用)

udp和tcp都是http协议中使用的数据传输协议 其中 udp 的意思是传输的速度越快越好,不保证数据的准确定
tcp 需要先建立双方的链接,数据稳定不会出错,传输的速度没有udp快

加上&后台运行:sh startagent.sh –udp-port 0 -tcp-port 3231&

停止服务:Ctrl + C

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

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

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

1、启动防火墙:systemctl start firewalld
2、关闭防火墙:systemctl stop firewalld
3、检查防火墙状态:systemctl status firewalld 

  4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

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

防火墙添加开放端口:
命令:firewall-cmd –permanent -add-port=3123/tcp

不用在意此条内容:再firewall-cmd –reload  (删除firewall-cmd-permanent –remove-port=3243/tep)  

安装完毕

5、运行脚本:

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

 启动后会出现如下图:服务器资源监控的图表

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

可能出现的问题:

1.启动文件,并指定端口号(随意):

./ startAgent.sh –udp-port 0 –tcp-port 3128
意思是:不启用 udp 服务,只启动 tcp 服务

2.可能出现网络不通

检测到服务器 端口网络不通

telnet 服务器地址.3129

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

1、网络不通第一种解决办法

先停止服务:Ctrl + C

检查3128端口:lsof -1:3128

输入命令回车后什么都没有提示

需要查看防火墙:systemctl status fi rewalld

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

2、网络不通第二种方法

关闭防火墙,重新指定端口

systemctl stop firewalld
systemctl status firewalld
./ startAgent.sh – -udp-port 0 –tcp-port 3129

4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)-风君雪科技博客

检测端口网络是否通畅

telnet 148. 70. 249.98 3129

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******