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

1.软硬件配置

本文环境(控制机、代理机都一样):

– Win7 64位

– JDK8

– 内存 8G

Apache JMeter5.0 下载地址

JDK8 下载地址

2.配置系统环境变量

安装好jdk、解压JMeter5后,分别配置环境变量JAVA_HOMEJMETER_HOME指向各自的目录(bin目录所在的那一级),并且把各自的bin目录路径都添加到系统变量Path的值里面,以;号分隔:;%JMETER_HOME%\bin;%JMETER_HOME%;%JAVA_HOME%\bin;%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


搞定~

Jmeter5 实现多机集群压测(局域网组成多机集群)的更多相关文章

  1. 支付宝LR集群压测报告

    支付宝压力测试报告 时间:2016-03-23                                             测试人员:XXX 目录 支付宝压力测试报告 1 目录 1 一   ...

  2. 生产调优2 HDFS-集群压测

    目录 2 HDFS-集群压测 2.1 测试HDFS写性能 测试1 限制网络 1 向HDFS集群写10个128M的文件 测试结果分析 测试2 不限制网络 1 向HDFS集群写10个128M的文件 2 测 ...

  3. linux集群压测部署方案

    我们今天主要分享的内容从三方面讲解. 集群压力机部署 shell脚本简介 shell脚本搞定压力机部署 集群压力机部署   linux.png 分布式压测背景介绍 在企业项目实战时,如果被压的服务器处 ...

  4. mysql集群压测

    mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通过模拟多个并发客户端访问MySQL来执行压力测试,并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别.通过mysql ...

  5. Linux服务器压测/拷机软件收集

    最近公司采购了一批服务器,于是收集了一些拷机软件来压测服务器硬件性能.硬件的稳定相对来说比较重要,7x24小时无间断运行,主要看三个硬件:CPU.内存.硬盘. 下面是收集的一些教程,可能网址已经失效了 ...

  6. 并发模式与 RPS 模式之争,性能压测领域的星球大战

    本文是<如何做好性能压测>系列专题分享的第四期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论 ...

  7. 压测2.0:云压测 + APM = 端到端压测解决方案

    从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...

  8. Jmeter(一)非GUI模式压测(NON-GUI模式)结果解析TPS

    非GUI模式压测(NON-GUI模式)结果解析TPS 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Second https://jme ...

  9. 实现理论上无tps上限的分布式压测(基于Jmeter+InfluxDB+Grafana+Spring Boot)

    JMeter自身带有Master-Slave压测框架,对于并发量不是很高的压力情况下(比如tps低于5000),该方案是可行的,并且使用起来非常方便,只要在配置文件或者命令行工具的参数做一些补充,即可 ...

随机推荐

  1. python项目实战三个小实例

    1.   让用户输入圆的半径,告诉用户圆的面积: import math while True:     # 用户输入     r = input("请输入圆的半径:")     ...

  2. Facebook的React Native之所以能打败谷歌的原因有7个(ReactNative vs Flutter)

    https://baijiahao.baidu.com/s?id=1611028483072699113&wfr=spider&for=pc 如果你喜欢用(或希望能够用)模板搭建应用, ...

  3. Windows配置Apache服务器

    下载的Apache版本:httpd-2.4.32-o102n-x64-vc14 简单粗暴式配置: 1.打开\conf\httpd.conf修改第60行和第224行,其中8081是电脑上没有被使用的端口 ...

  4. jquery.pjax 单页面, 无刷新打开页面.

    介绍: pushState+ajax=pjax 工作原理: 什么是pjax? 现在很多网站(facebook, twitter)都支持这样的一种浏览方式, 当你点击一个站内的链接的时候, 不是做页面跳 ...

  5. 分享微信h5支付源码

    类库代码 wechatH5Pay.php <?php //use Flight; /** * 微信支付服务器端下单 * 微信APP支付文档地址: https://pay.weixin.qq.co ...

  6. Maya闪退

    电脑上装的Maya2015突然就打不开了,窗口闪一下就关闭,也没有任何提示. 将15卸载装了Maya2016还是一样. 再彻底卸载16,装了15,还不行... 将系统环境变量中PYTHONHOME和P ...

  7. 【bzoj4631】踩气球 线段树

    题解: 真是很zz 我都想到线段树分治的思路了... 不过还是一道好题 首先跟线段树分治一样将区间投射到线段树上去 每次修改如果该个区间修改为0,则对他们对应的特定区间-1 这样每个区间会有一次变0, ...

  8. la 3938(未完成)

    题意:给出一个长度为n的整数序列D,你的任务是对m个询问作出回答.对于询问(a,b), 需要找到两个下标x和y,使得a≤x≤y≤b,并且Dx+Dx+1+...+Dy尽量大. 如果有多组满足条件的x和y ...

  9. 【C#】使用OWIN创建Web API

    OWIN的介绍 OWIN 的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准 ...

  10. python---列表、元祖、字典的区别和常用方法

    列表(list) 1.定义: resList=[];----->列表是一种有序的集合 resLIst=[1,2,"嘻嘻",'你好',['内嵌1','内嵌2']]; 2.访问- ...