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(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)的更多相关文章

  1. Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)

    1.简介 在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低.因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果.还有就是在实际的测试工作中,会因为业务需要,有时限 ...

  2. Jmeter(五十三) - 从入门到精通高级篇 - 懒人教你在Linux系统中安装Jmeter(详解教程)

    1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多 ...

  3. Jmeter(四十一) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 下篇(详解教程)

    1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...

  4. Jmeter(四十三) - 从入门到精通高级篇 - Jmeter之IP伪装和欺骗(详解教程)

    1.简介 我们从小接受的教育就是不要撒谎,要做一个诚实的孩子,但是在现实生活中有时候说一个善意的谎言也不是可以的.这里由于服务器各种安全机制的限制和校验,因此我们不得不欺骗一下服务器,今天宏哥就给大家 ...

  5. SaltStack 入门到精通第二篇:Salt-master配置文件详解

    SaltStack 入门到精通第二篇:Salt-master配置文件详解     转自(coocla):http://blog.coocla.org/301.html 原本想要重新翻译salt-mas ...

  6. Jmeter(四十四) - 从入门到精通高级篇 - Jmeter远程启动(本地运行+远程运行)(详解教程)

    1.简介 这篇文章其实很简单,就是为下一篇文章做一个铺垫,所以宏哥给小伙伴或童鞋们提前热身一下. 2.什么是远程运行? 远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一 ...

  7. Jmeter(四十七) - 从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)

    1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了, ...

  8. Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)

    1.简介 JMeter是一款压力.接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU.内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件.JMeter正常自 ...

  9. Jmeter(四十) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 中篇(详解教程)

    1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...

随机推荐

  1. POJ 1386 欧拉路的判定

    题意:       给你n个单词,问你有没有一种排列方式可以所有单词的首部是相邻单词的尾部. 思路:       这个题目还挺基础的,就是个欧拉的判定,首先对于每一个单词,我们把他抽象成边,每个单词两 ...

  2. hdu4720 三角形的外接圆

    题意:       给你四个点,问你第四个点是否在前三个点围成的三角形的外接圆上. 思路:       水题,就是练练用魔板罢了,当该三角形是锐角三角形的时候,圆心是任意两条边中垂线的交点,半径是圆心 ...

  3. LA3415保守的老师

    题意:       有n个学生,老师要带他们出去玩,但是老师比较保守,怕他们之间萌生爱意,所以带出去的所有同学必须至少满足四个条件中的一组,问最多能带多少人出去玩. 思路:        比较简单二分 ...

  4. hdu1828 线段树扫描线求矩形面积的周长

    题意:       给你n个矩形,问你这n个矩形所围成的图形的周长是多少. 思路:       线段树的扫描线简单应用,这个题目我用的方法比较笨,就是扫描两次,上下扫描,求出多边形的上下边长和,然后同 ...

  5. POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)

    题意:       有n头猪,m个猪圈,每个猪圈都有一定的容量(就是最多能装多少只猪),然后每只猪对每个猪圈的喜好度不同(就是所有猪圈在每个猪心中都有一个排名),然后要求所有的猪都进猪圈,但是要求所有 ...

  6. 【python】Leetcode每日一题-螺旋矩阵2

    [python]Leetcode每日一题-螺旋矩阵2 [题目描述] 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . ...

  7. 一个或多个筛选器或者Listeners启动失败 的问题探索以及解决方案

    2020年10月9日更新 经过本人对SSM框架理解的加深和对IDEA工具使用的熟悉,现提出一种新的解决办法,以前的解决办法可能存在问题 1. 问题描述: 使用IDEA作为开发工具,使用Maven作为项 ...

  8. 使用花生壳、瑞友天翼远程访问金蝶K3

    金蝶版本号 WISE15.1 瑞友6.0系列 花生壳5 金蝶软件无法通过外网直接访问 因此需要使用瑞友天翼来实现远程访问 一般来说 金蝶服务器固定了IP地址以后 通过路由器开房两个外网端口即可实现瑞友 ...

  9. MySQL从库维护经验分享

    前言: MySQL 主从架构应该是最常用的一组架构了.从库会实时同步主库传输来的数据,一般从库可以作为备用节点或作查询使用.其实不只是主库需要多关注,从库有时候也要经常维护,本篇文章将会分享几点从库维 ...

  10. ES6中的Set和Map对象数据结构

    set对象数据结构 构建某一类型的对象 -对象的实例化 let arr = [1, 2, 3, 3, 4, 5] let rec = new Set(arr)//可以传参数,数组或者对象 consol ...