详解Jmeter分布式测试配置以及过程中遇到的坑

60 篇文章 3 订阅
21 篇文章 1 订阅

当一台jmeter并发数达到瓶颈时,需要多台jmeter。一台控制机(主机),多台负载机(节点机)来进行分布式压测扩大并发数。jmeter分布式可以跨系统配置不论是windows还是linux都可以,这里以windows为例进行讲解。Jmeter分布式架构图如下:

节点机设置

进入节点机A(如果有多个节点机,使用同样方式配置即可),打开配置文件/bin/jmeter.properties,设置server.rmi.ssl.disable=true。很多文章说需要对remote_hosts 进行设置,亲测无须设置!

设置完成后,在cmd中运行\bin\jmeter-server.bat,启动服务等待接收主机指令。

控制机设置

进入控制机,打开配置文件/bin/jmeter.properties,设置 remote_hosts=节点机A的ip:1099

(1099是默认端口,如果有多个节点机请用“,”进行分割)

1.控制机在GUI中的启动节点机,如下图:

2.通过命令启动 jmeter -n -t test.jmx -R节点机A的ip -l test01.jtl

参数含义

n  非gui运行

t  指定测试脚本

R  指定多少个agent启动并参与测试

r  代表全部agent启动并参与测试

l  生成测试结果文件

节点机没有发送测试结果给控制机问题解析

现象:控制机发出执行命令后,无法接收到节点机的结果信息

查看节点机控制台信息,显然是没有返回数据给 主机

Starting the test on host ip:1099 @ Fri Feb18 16:00:26 CST 2022 (1645171226459)

查看节点机jmeter.log发现,错误日志:

java.net.SocketTimeoutException: connecttimed out

         atjava.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[?:1.8.0_151]

         atjava.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[?:1.8.0_151]

         atjava.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[?:1.8.0_151]

         atjava.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)~[?:1.8.0_151]

         atjava.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_151]

         atjava.net.PlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_151]

         atjava.net.SocksSocketImpl.connect(Unknown Source) ~[?:1.8.0_151]

         atjava.net.Socket.connect(Unknown Source) ~[?:1.8.0_151]

         atorg.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:542)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)~[httpclient-4.5.5.jar:4.5.5]

    atorg.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)~[httpclient-4.5.5.jar:4.5.5]

         atorg.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)~[httpclient-4.5.5.jar:4.5.5]

         atorg.jmeterplugins.repository.JARSourceHTTP.execute(JARSourceHTTP.java:499)~[jmeter-plugins-manager-1.4.jar:?]

         atorg.jmeterplugins.repository.JARSourceHTTP.execute(JARSourceHTTP.java:494)~[jmeter-plugins-manager-1.4.jar:?]

         atorg.jmeterplugins.repository.JARSourceHTTP.reportStats(JARSourceHTTP.java:451)~[jmeter-plugins-manager-1.4.jar:?]

         atorg.jmeterplugins.repository.http.StatsReporter.run(StatsReporter.java:24)[jmeter-plugins-manager-1.4.jar:?]

2022-02-18 15:51:18,114 INFO

o.a.j.s.FileServer: Default base='C:\软件\apache-jmeter-4.0\apache-jmeter-4.0\bin'

分析这是一个网络问题,在节点机ping 主机,无法ping通,协调网络工程师增加策略使得节点机能够ping通主机。主机再次发送请求,节点机顺利接收请求并返回执行结果,问题搞定!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值