Jmeter分布式搭建(windows系统下)

简介:配置分布式前,得先知道分别有master控制机slave执行机

       a、maste控制机:作为所有执行机的控制者,一般不参与实际脚本运行,只做控制运行作用

       b、slave执行机:实际脚本运行,消耗资源

1、master控制机器生成rmi_keystore.jks(供实现分布式使用)

(1)、进入bin目录,windows环境启动create-rmi-keystore.bat;linux环境则启动reate-rmi-keystore.sh

(2)、启动后参考截图一步步操作(以下a、b、c为特别注意点

         a、到截图中的步骤b时,保证输入的为大写Y(输入小写y生成失败)

         b、到步骤c时,无需输入秘钥,直接【Enter】键回车即可

         c、最后检查,bin目录下生成rmi_keystore.jks文件 

      

然后打开配置文件 /bin/jmeter.properties 找到并取消以下这段配置的注释 server.rmi.ssl.disable=false ,false改成true。

      

2、slave执行机配置修改:

前提:先将maste生成的rmi_keystore.jks拷贝到slave执行机bin目录下

(1)、修改 bin/jmeter.properties:
修改:remote_hosts=172.X.X.X:1888 (端口号自己起,默认用1099,这里修改成1888)

       

还是修改 bin/jmeter.properties:
修改:server.rmi.localport=1888 (端口号自己起,这里修改为1888,默认用1099,该端口号是Jmeter-server运行的端口,)

       

(2)、修改 bin/jmeter.bat:
增加(33行):set rmi_host=-Djava.rmi.server.hostname=1.X.X.X(同网段可不增加,尝试过成功)
修改(107行)(二选一):第一种方法:set ARGS=%DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS%(尝试过成功)

                           

 

 

                           第二种方法:set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

(3)然后打开配置文件 /bin/jmeter.properties 找到并取消这段配置的注释 server.rmi.ssl.disable=false ,false改成true。

       

 

(4)打开system.properties,搜索rmi

        a、结果为无,则搜索sun,在其下方添加java.rmi.server.hostname=ip(执行机ip,如172.16.124.103)

        b、有结果,则检查里面对应的ip是否已修改为执行机本机ip

        

 

(5)打开jmeter.bat 检查33行处的ip是否为执行机本机ip

         

 

 

3、master控制机配置修改:

(1)、修改bin/jmeter.properties:

修改:remote_hosts=172.16.124.91:1099,172.X.X.X:1888,172.X.X.X:2888(多个slave则用分号(,)分隔)

(其中172.16.124.91表示master机器本身,为了独立开master,可以将其去掉,这样就不会在master上执行测试)
修改:server_port=1099,1888,2888
修改:server.rmi.localport=1099

 

 

 

修改:server.rmi.ssl.disable=true

(2)、修改system.properties:(某教程说要配置、导致遇到的坑)
尾行增加:java.rmi.server.hostname=172.X.X.X(slave执行机ip,与set rmi_host一致)

(其实这个不需要加,如果加了会导致运行后无法自动结束、也没有结果生成)

 

 

 (该坑着实坑了我一天)

 

4、配置完成后,关闭master、slave的防火窗,互相ping通(不关闭ping不通,导致无法执行)

    a、保证防火墙关闭

    b、maste、slave处于同一局域网

5、slave执行机开启Jmeter-server.bat(而不是开始Jmeter.bat)

6、a、启动slave执行机服务器

  方法一:双击打开  jmeter-server.bat

  方法二:管理员执行脚本:JMETER_HOME/bin/jmeter-server.bat 或 JMETER_HOME/bin/jmeter-server:

  slave控制台信息如下,表示成功:

      

 

 

     b、启动master控制机

       方法一:master控制机选择其中一个远程启动 --> 172.16.124.103:1888(单个)

       方法二:命令启动 --- :  .\jmeter.bat -n -t testplan/login.jmx -r -l testresult/login_result.jtl -e -o testresult/result

       

 (如果运行后响应数据为空,则需要修改master控制机)

   1、打开主控机的jmeter--bin目录下的jmeter.properties文件

   2、查找到mode=Standard 项

   3、 将其前边的注释去掉,然后保存重启jmeter,再次运行远程机器,就可以看到数据了

注意事项:

1、master、slave要在同一网段

2、关闭防火窗,互相ping通

其它说明:

  1、调度机即控制机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为master。

  2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

  3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

 

扩展自定义端口:

  上面其实已经实现了Jmeter的分布式测试,这部分主要介绍下如何自定义slave端口:

  1、slave:在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:

        remote_hosts=xxx.xxx.xx.xx:1888

                     server_port=1888

      server.rmi.localport=1888

        

 

 

  2、启动slave机上的jmeter-server.bat,如下图,端口已经修改为:1888

  

  3、master:修改master机器的jmeter.properties文件:

      remote_hosts=10.13.223.202:1000,10.13.225.12:1888

                     server_port=1099,1888(尝试过如果不加1888,启动失败)

       

 

 

 

  4、重启jmeter.bat,如下图,端口已经变了:

  

 

posted @ 2021-04-29 16:04  捡书Girl  阅读(8)  评论(0编辑  收藏  举报