在压测需求较大并发量时,如1000以上,但是单台客户端难以实现,因此需要多台客户端并行,并且能同步控制

jmeter的分布式控制

  • 客户端机器作为一个控制器controller,控制多台slave机器的操作
  • controller通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave
  • slave获得脚本后开始执行,slave本地不需预先存储脚本
  • 各台slave执行完成后,将结果传回给controller,controller收集整合显示

远程服务器(slave)配置

远程服务器(slave)需要安装jmeter和jdk,最好与客户端(controller)保持相同版本

在远程服务器(slave)的jmeter的bin目录下执行jmeter-server.bat 文件

执行后:

Could not find ApacheJmeter_core.jar...
...Trying JMETER_HOME=..

JMETER_HOME 添加到环境变量中,依旧有此提示

客户端(controller)配置

在客户端上要保证执行命令能发送到服务器,因此需配置客户端远程的ip地址和port

在客户端jmeter安装目录的bin目录下,修改配置文件 jmeter.properties

默认的remote_hosts 的值:

修改remote_hosts 的值:

# Remote Hosts - comma delimited
remote_hosts=127.0.0.1,172.18.152.16,172.18.152.12,172.16.43.80#remote_hosts=localhost:1099,localhost:2010

即添加172.18.152.16,172.18.152.12,172.16.43.80 三个远程服务器

若不添加端口即为默认的1029端口

完成配置后打开客户端jmeter的GUI界面,运行->远程启动即可看到配置的远程服务器IP

可选择其中一个远程服务器执行或者所有远程服务器同步执行

先选择其中一个服务器实验一下,执行后远程服务器日志:

但是执行结束后客户端并没有任何的响应,查看客户端的log

2017/01/17 21:54:23 ERROR - jmeter.samplers.RemoteTestListenerWrapper:  java.rmi.ConnectIOException: Exception creating connection to: 169.254.80.80; nested exception is: java.net.SocketException: Network is unreachable: connectat sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)at sun.rmi.server.UnicastRef.invoke(Unknown Source)at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)at com.sun.proxy.$Proxy1.testEnded(Unknown Source)at org.apache.jmeter.samplers.RemoteTestListenerWrapper.testEnded(RemoteTestListenerWrapper.java:79)at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:218)at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:437)at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Network is unreachable: connectat java.net.DualStackPlainSocketImpl.connect0(Native Method)at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)at java.net.AbstractPlainSocketImpl.connect(Unknown Source)at java.net.PlainSocketImpl.connect(Unknown Source)at java.net.SocksSocketImpl.connect(Unknown Source)at java.net.Socket.connect(Unknown Source)at java.net.Socket.connect(Unknown Source)at java.net.Socket.<init>(Unknown Source)at java.net.Socket.<init>(Unknown Source)at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)... 11 more

尝试后解决不了此问题

换一台机器做为客户端,同样的配置过程,运行后发现,OK!

刚刚执行的是试验脚本,接下来执行测试脚本,看是否OK!执行后发现并没有任何的执行结果,发现

依赖的地址是绝对路径,应将路径改为相对路径

将该.csv文件放在客户端jmeter的bin目录下,将依赖Filename改为相对路径 userInfo.cvs ,开始修改的时候,以为相对路径为 %JMETER_HOME%bin/userInfo.cvs ,并配置了JMETER_HOME 环境变量发现仍会出现问题,故使用相对路径 userInfo.cvs

配置好后,将userInfo.cvs 文件同样放在服务端肉机的Jmeter的bin目录下即可

这样发现如果每个肉鸡都要不同的userInfo.cvs 文件时,就特别麻烦,得往每台肉鸡拷不同的文件

如果在云端搭建一个服务器,每台肉鸡启动 jmeter-server 服务连接云端服务器,肉鸡向云端服务器上报本地IP和MAC地址,主机通过给云端服务器给每台肉鸡分别发送文件,这样极大提高效率

【JMeter】分布式远程启动相关推荐

  1. Jmeter --- 分布式测试

    在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分 ...

  2. Jmeter分布式部署如何操作

    添加远程服务器IP到配置文件 在JMETER_HOME / bin / jmeter.properties中,找到名为" remote_hosts " 的属性,并添加正在运行的JM ...

  3. 【Jmeter篇】Jmeter分布式调度压测部署

    Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具 ...

  4. 性能测试搭建Jmeter分布式压测与监控

    对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容性能提升大 ...

  5. Jmeter分布式测试-远程调用

    一.环境准备 1.Jmeter环境:apache-jmeter-3.1 2.JDK环境:JDK1.8 3.连接无线  facebank_test / facebank008(Jmeter远程serve ...

  6. 搭建 Apache Jmeter 分布式压测与监控

    1.前言 对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容 ...

  7. jmeter 高并发测试报告_Windows下JMeter分布式压测环境搭建

    JMeter是Apache组织开发的开源项目,设计之初用于性能测试,同时它在实现对各种接口的调用方面做得比较成熟,因此,常被用于接口功能测试和性能测试.它能够很好的支持各种常见接口,如HTTP(S). ...

  8. 性能测试平台搭建及简单使用(jmeter分布式+influxdb2.0+grafana)附性能测试报告

    目录 一.jmeter分布式配置 1.分布式介绍 2.配置JDK 3.slave机器配置(linux系统为例,windows资源杂乱不建议使用) 4.master机器配置(windows系统为例,作为 ...

  9. Jmeter分布式压测介绍、原理及实操(一台master-windows控制机,三台slaves-linux负载机)

    前言:大家在使用jmeter压测过程中,可能会度遇到内存溢出的错误,这是为什么呢? 因为jmeter是java写的应用,java应用jvm堆内存heap受负载机硬件限制,虽然我们可以调整堆内存大小,但 ...

  10. Jmeter分布式压测-windows(master控制机)多个linux(slaves负载机)监测服务器资源(cpu、内存等)

    为什么进行jmeter分布式压测? 一.干货解释原因: **原因一:**一台压力机的 Jmeter 默认最大支持 1000 左右的并发用户数(线程数),再大的话,容易造成卡顿.无响应等情况,这是受限于 ...

最新文章

  1. Apache Tomcat7+MySQL5.6配置
  2. Zookeeper (一)集群简单搭建
  3. node.js request get 请求怎么拿到返回的数据_使用JS和NodeJS爬取Web内容
  4. 电脑上的科学计算机怎么用,电脑上怎么快速打开计算器
  5. soft_argmax
  6. idea 升级到2020后 无法启动_【维修案例】2020年一汽奥迪Q5L发动机无法启动
  7. 基于Linux C的socketEthereal程序和Package分析 (一个)
  8. 《JavaScript高级程序设计》读书笔记 ---if语句
  9. Spring5参考指南:AspectJ高级编程之Configurable
  10. 关于软件版本命名的方法
  11. 洛谷P6140 [USACO07NOV]Best Cow Line S
  12. linux代替ps的软件,Photoshop的开源替代品 图像编辑器GIMP迎来25岁生日
  13. 【Python】32 个常用入门 Python 实现
  14. android edittext格式验证,EditText实现输入限制和校验功能实例代码
  15. mysql cast和convert函数
  16. LINUX下载编译tiff
  17. linux中终端进入目录太多时造成终端路径显示太长的路径影响观看的解决方法
  18. c语言中专业英文词汇的意思,c语言常见专业英语词汇
  19. 安卓商城 php后台,洛克商城APP 开源商城安卓源码 含前端和后台
  20. 2021山东上半年软考时间已定!!!

热门文章

  1. UESTC878————温泉旅店(动态规划)
  2. Telemetry 技术概述
  3. 百度地图高德地图谷歌地图腾讯地图商家数据采集
  4. 电脑重装系统需要多少钱?
  5. mysql 内连接、左连接会出现笛卡尔积?
  6. VUE3模板,JSX,JSV
  7. 蒙牛发言人香港发言措辞欠妥
  8. mac不显示安装的程序
  9. Python3 post请求上传文件
  10. 《近代名老中医经验集》出版