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

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

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

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

2.1建立测试脚本

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

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

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

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

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

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

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

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

2.2BeanShell服务器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypwzy.html