美文网首页
2019-02-20 JMeter分布式测试

2019-02-20 JMeter分布式测试

作者: 虚怀若谷13 | 来源:发表于2019-02-20 14:45 被阅读0次

    一:分布式使用场景及原理

            使用场景:由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让Jmeter工具提供更大的负载能力,这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试。

            原理:1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

                  2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。

                  3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

    二:配置执行机(slave)和调度机(master)

    1、都必须安装了jmeter,并且已经配置好环境

    2、查看slave的ip及端口,bin目录下,点击jmeter-server.bat查看,如图:

    3、调度机(master)配置

            找到Jmeter的bin目录下jmeter.properties文件,搜索remote_hosts=127.0.0.1,将slave机的IP和端口写在后面,比如:

    remote_hosts=127.0.0.1,127.0.0.2:80,127.0.0.3:80其中127.0.0.2和127.0.0.3为Agent机的IP,每个slave机之间用英文半角逗号隔开,修改保存。

    三:运行

    1、slave机启动jmeter-server.bat

    2、master机打开jmeter界面,选择运行,有运程启动、运程全部启动两个选项,如图:

    3、然后就基本配置完成了,可以在slave机器看到信息了,master也会收集到运行结果。

    四、注意事项

    1、保持master和slave机器的JDK、jmeter以及插件等配置版本一致;

    2、如果测试数据有用到CSV或者其他方式进行参数化,需要将data pools在每台slave上复制一份,且读取路径必须保持一致;

    3、确保master和slave机器在同一个子网里面;

    4、检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致slave机报错);

    5、分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;

    6、如果并发较高,建议将master机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉master机的IP;

    7、分布式测试中,如果1S启动100个模拟请求,有5个slave机,那么需要将脚本的线程数设置为20,否则模拟请求数会变成500,和预期结果相差太大。

    五:自定义端口

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

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

                        server_port=1888

                     server.rmi.localport=1888

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

    相关文章

      网友评论

          本文标题:2019-02-20 JMeter分布式测试

          本文链接:https://www.haomeiwen.com/subject/ezgcyqtx.html