• Jmeter5 实现多机集群压测(局域网组成多机集群)


    想要模拟高并发用户访问的场景,用Jmeter5实现的话,单靠一台PC机,资源是不够的,包括单机的内存、使用端口数量等,所以最好是通过多台PC机组成几个集群来对服务器进行压测。

    1.软硬件配置

    本文环境(控制机、代理机都一样):
    – Win7 64位
    – JDK8
    – 内存 8G
    Apache JMeter5.0 下载地址
    JDK8 下载地址

    2.配置系统环境变量

    安装好jdk、解压JMeter5后,分别配置环境变量JAVA_HOMEJMETER_HOME指向各自的目录(bin目录所在的那一级),并且把各自的bin目录路径都添加到系统变量Path的值里面,以;号分隔:;%JMETER_HOME%in;%JMETER_HOME%;%JAVA_HOME%in;%JAVA_HOME%lib;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.修改JMeter配置,开启代理机(Agent)功能

    修改JMeter的bin目录下面的jmeter.properties文件:

    • 找到server.rmi.ssl.disable 这行,去掉前的#,并且把它的值由默认的False改为true
    • 找到remote_hosts 这行,去掉前面的#,并且把它的值由默认的127.0.0.1改为192.168.1.203:1099,这里的IP必须是本机的局域网IP,当然这个端口1099你可以修改为其它的,只要这个端口没有被本机其它进程占用就行。
    • 还要配置服务端的端口:
      在这里插入图片描述
    • 双击bin目录的jmeter-server.bat启动代理机,正常应该显示如下图内容才正常:
      在这里插入图片描述

    这样就OK了,等待主控机发指令就高高兴兴的干活了~

    4.搭建控制机(Controller)环境

    控制机就相当于集群压测的大脑,由它发指令给所有的代理机执行脚本任务,最后代理机把测试结果回传给控制机

    跟代理机一样安装好、配置好JDK、JMeter的环境变量后,修改主控机JMeter的bin目录下jmeter.properties文件

    • 找到server.rmi.ssl.disable 这行,去掉前的#,并且把它的值由默认的False改为true
    • 找到remote_hosts 这行,去掉前面的#,并且把它的值由默认的127.0.0.1改为我本机的IP加端口:192.168.1.212:1099,这里的IP必须是本机的局域网IP,当然这个端口1099你可以修改为其它的,只要这个端口没有被本机其它进程占用就行,这里统一配置为1099
    • 此外还要配置服务端的端口,把局域网其它要组成集群的机器信息添加到remote_hosts里面来(包括本机):
      在这里插入图片描述

    下面这个很重要,很重要,不启动主控机的jmeter-server.bat,无法从菜单远程启动本机的无界面客户端进行测试

    • 打开bin目录的jmeter-server.bat,这样就启动了本机作为JMeter服务器了

    5.开启压测

    接下来开启多机集群测试:

    • 执行bin目录的jmeter.bat启动本机的JMeter应用程序

    • 添加一个线程组,配置要启动测试的线程数、时间等信息
      在这里插入图片描述

    • 配置要测试的http地址、端口、线程数、时间等信息
      在这里插入图片描述

    • 添加结果查看、聚合报告
      在这里插入图片描述

    • 然后从菜单:运行 - 远程启动所有或者远程启动单个代理机执行测试任务:
      在这里插入图片描述


    这里有个说明:
    在这里插入图片描述

    其实我们只要把所有的机器都当做代理机,通过主控机的启动的图形界面的操作客户端,只是用来发命令的,就好理解了。

    我们通过菜单【运行 - 远程启动所有】调用当前主控机的NONE-GUI客户端以及192.168.1.203机器的NONE-GUI客户端进行测试任务,最后看聚合报告:
    在这里插入图片描述

    这里为啥取样数是300呢?因为我们这个集群有2台机器啊(当前主控机+那台代理机),我们这里的脚本配置的是5s 时间内完成150个线程的启动,每个线程执行一次请求。所以总共采样数就是 (150*1)*2 = 300


    搞定~

  • 相关阅读:
    记录JavaScript的util.js类库
    Shiro登录中遇到了问题
    【转载】JavaScript导出Excel
    react-router
    react 表单
    html5定位getLocation()
    html5存储方式localstorage和sessionStorage
    position导致Safari工具栏不自动隐藏
    input type="datetime-local" 时placeholder不显示
    vuex(1.0版本写法)
  • 原文地址:https://www.cnblogs.com/xiaocy66/p/10589265.html
Copyright © 2020-2023  润新知