Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)

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

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

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

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

   同时添加以下监视器:

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

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

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

    

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

  • Then hold load for:This group will start并发用户数全部启动完成后保持运行XX秒 == 所有线程运行完成后再执行XX秒
  • Finally, stop:每隔threads every的时间减少XX用户数
  • threads every:每隔XX秒减少Finally, stop的用户数

  

 

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

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

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

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

 

 

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

  该场景主要用在分段时间压测和压力测试里面,分段时间压测比如点餐系统,一天会出现用餐高峰期、平稳期和闲时区,针对该场景我们就要设计成不同时间段的压力值不同,加压方式不同等等,压力测试我们只需要使用一个场景,并将压测时间设置长即可,同样的测试报告也用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个虚拟用户  == 段耗时 570秒

本文仅供参考;如果这篇文件对你有所帮助,麻烦动动发财的小手,推荐一波支持下万分感谢 *******请大家尊重原创,如要转载,请注明出处:作者:守护@往昔;转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******

三、服务器监控

  服务器监控插件: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

百度网盘链接安装包:

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

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

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、启动服务后去检查防火墙是否关闭

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

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

  

 

 

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

  • 防火墙添加开放端口:
  • 命令:firewall-cmd --permanent -add-port=3123/tcp
    • 不用在意此条内容:再firewall-cmd --reload  (删除firewall-cmd-permanent --remove-port=3243/tep)  

安装完毕

 

5、运行脚本:

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

 

可能出现的问题:

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

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

2.可能出现网络不通

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

telnet 服务器地址.3129

 

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

先停止服务:Ctrl + C

检查3128端口:lsof -1:3128

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

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

 

2、网络不通第二种方法

  • 关闭防火墙,重新指定端口
    • systemctl stop firewalld
    • systemctl status firewalld
    • ./ startAgent.sh - -udp-port 0 --tcp-port 3129

检测端口网络是否通畅

telnet 148. 70. 249.98 3129

posted @ 2021-05-18 13:25  小菜锦啊  阅读(1071)  评论(0编辑  收藏  举报