首页 > 其他分享 >Jmeter(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)

Jmeter(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)

时间:2023-03-01 17:34:17浏览次数:75  
标签:Jmeter 宏哥 1200 如下 120 五十一 所示 jmeter

------------------------------------------------------------------- 

转载自:北京-宏哥 https://www.cnblogs.com/du-hong/p/13667219.html 

-------------------------------------------------------------------- 

Jmeter(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)

 

1.简介

运动战是一种军事作战方式,依托较大的作战空间来换取时间移动兵力包围敌方,以优势兵力速战速决,运动战的运用归为这样一段话“避敌主力,诱敌深入,集中优势兵力逐个击破”。今天宏哥也当一回将军,指挥jmeter在运动中消灭敌人。好了闲话少说,回归正题,今天主要是讲解和分享:在jmeter运行中来更改jmeter的负载。

2.运行中来更改jmeter的负载

从文字中,我们很容易看出意思就是在jmeter测试运行脚本过程中,但是在不停止运行脚本的情况下修改jmeter的负载压力,来达到我们预期的测试效果。大致步骤就是:宏哥将通过Constant Throughput Time(吞吐量计时器)、一个函数和BeanShell服务器组合完成jmeter的运动战。具体步骤如下:

2.1建立测试脚本

1、建立测试计划,添加线程组,为了后边容易观察负载变化,宏哥将线程组设置成永远。如下图所示:

2、添加取样器,取样器设置如下图所示:

3、添加Constant Throughput Time(吞吐量计时器),切记这个计数器是在度娘的下边。设置(用到的函数就是__P)如下如图所示:

4、最后分别添加监视器:View Results Tree、Graph Results和jp@gc - Bytes Throughput Over Time。如下图所示:

2.2BeanShell服务器

使用JMeter Beanshell作为服务器,以便发出Beanshell命令。我们通过调用beanshell函数来更新先前定义的“hits”参数。Beanshell是一个内置于JMeter中的Java源代码解释器。

1、在jmeter.properties上取消注释以下行(大约在908左右)你也可以打开文件Ctrl+F快速查找BeanShell定位到,如下图所示:

2、重启jmeter,docs命令窗口输入:Netstat -an | find “9000” 命令查看端口运行状态,如下图所示:

同时在jmeter的启动页面也可以看到启动的端口,如下图所示:

3、在JMeter主目录下创建文件夹bsh,并添加一个名为update_parameter.bsh的.bsh文件,其中包含以下内容:setprop("hits",args[0]);  如下图所示:

4、在jmeter的home目录下输入cmd命令,进入到docs命令窗口,如下图所示:

 5、执行 dir bash\   如下图所示:

6、文件调用setprop函数以通过第一个参数(args [0])中的值更新“hits”现在能够在测试运行时调用创建的.bsh来更新“hits”。在jmeter的home目录下通过以下命令将参数更新为每分钟“1200”个请求:

java -jar .\lib\bshclient.jar localhost 9000 .\bsh\update_parameter.bsh 1200

7、因为宏哥开始是1200,现在宏哥更新成120,如下图所示:

8、运行一段时间后,宏哥再从120更新成1200,如下图所示:

9、观察运行中的吞吐量,有明显的改变,是不是呈现出一个U字形(马蹄形)啊,因为刚开始宏哥设置的吞吐是1200运行一段时间后,通过命令动态修改成120,然后再运行一段时间后,通过命令动态修改成1200,所以才成如图U型。如果修改成120,立刻在修改成1200就会成V字形哦。如下图所示:

3.小结

 小伙伴们可能按照宏哥的步骤做完后,没有看到宏哥的效果,其实宏哥第一次运行也没有看到。排查了一圈没有问题啊,到底是哪里出问题了,没有达到预期的效果。然后宏哥将线程组里用户修改成10以后,出现了预期的效果,宏哥猜测可能是由于一个用户,吞吐量120已经够用了,所以从1200变成120,再变成1200基本是一条直线,没有什么变化。知道内在原理或者宏哥说的不对的,可以告诉宏哥或者指出来,宏哥及时纠正。

标签:Jmeter,宏哥,1200,如下,120,五十一,所示,jmeter
From: https://www.cnblogs.com/lirongyang/p/15595280.html

相关文章

  • Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)
    ------------------------------------------------------------------- 转载自:北京-宏哥https://www.cnblogs.com/du-hong/p/13667219.html -------------------------......
  • jmeter性能测试实例2解析--linux环境
    压测准备本地开发环境⽣成脚本,上传压测机器 (修改参数化文件路径、请求地址)内⽹环境,⾮GUI下压测停⽌其他⽆关资源进程压测机和被压测机器隔离(避免资源争夺:内存、CPU、......
  • jmeter性能测试实例2解析-Linux环境
    压测准备本地开发环境⽣成脚本,上传压测机器(修改参数化文件路径、请求地址)内⽹环境,⾮GUI下压测停⽌其他⽆关资源进程压测机和被压测机器隔离(避免资源争夺:内存、CPU、......
  • jmeter测试数据库死锁问题
    场景:    多人同时操作同一对病人不同业务的保存操作,例如:有人修改保存病人资料,有人修改保存病人的治疗方案,有人修改保存病人的B超信息测试步骤:不是为了压测登录操......
  • jmeter跨线程组调用变量-以token为例
    跨线程组调用变量的解决方法:在beanshell取样器中使用setProperty函数设置全局变量,其他线程组用P函数调用全局变量 跨线程组调用变量的步骤:以token为例跨线程组调用有两......
  • JMeter安装RabbitMQ测试插件
    整体流程如下:先下载AMQP插件源码,可以通过ant+ivy在本地编译成jar包,再将jar包导入JMeter目录下,重启JMeter生效。ApacheAnt是一个基于Java的构建工具。Ant可用于自动化......
  • 教育-jmeter
    一、全面了解接口、接口测试(基于jmeter的接口自动化测试)1、接口分类内部接口:开发的接口给内部系统使用。(正例)外部接口:1、被测项目调用外部项目的接口......
  • jmeter(三)、控制器简单用法
      一、if控制器  ${__groovy(${yq_id}>0,)}  二、循环控制器 ......
  • JMeter的基础认识
    1、解释下什么是JMeter? JMeter是一款Java开源工具,用于性能负载测试。它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。 2、说明JMeter的工作原理? JM......
  • 【优分享】JMeter源码解析之结果收集器
    本文作者优测性能测试专家高源。简介:本文以最新的JMeter5.5版本源代码为例详细介绍了单机模式和分布式模式下结果收集器的工作原理。通篇干货,还不快来了解一下! 一、JMete......