如何处理Jmeter分布式连接成功后,结果树和聚合报告无反应?(几种常见的问题,异常处理方案)

文章目录

  • jmeter分布式步骤:
    • 主机与代理机器
    • 运行方式
  • jmeter分布式常与问题以及处理方式:
    • 分布式连接成功后,运行代理机无返回值处理办法
    • 端口被占用的处理办法
    • 并发量大时,端口受限制处理办法
    • socket closed异常处理办法


前言

           昨天研究了Jmeter分布式压测的时候,遇到了一些问题,因为这些问题困扰了我一天。上网查了很久,但是结果不是很理想。回去之后查看了资料,然后在慢慢尝试终于发现了一些处理方案,话不多说现在分享出来吧。


一、jmeter分布式步骤

 注意:下载jmeter的办法这里就不在解释说明,本篇文章主要处理jmetrer分布式常见异常。若有需要查看安装步骤,请移步去看之前发过的帖子吧   ~   安装和下载jmeter详细步骤

 

分布式原理:

1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通              过命令行模式来执行的。

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

 

代理机配置:

(1)打开Jmeter---bin---jmeter.properties,找到”remote_hosts=127.0.0.1 把这个ip修改为代理机本身的IP地址。可以点击win+R键,输入ipconfig查看ip地址。

定义端口号,注意代理机器的端口号要和主机(控制机)端口号设置一样的,不然无法测试。

 

 

(2)另外搜索并且设置server.rmi.ssl.disable = true ,并且把前面的注释打开

主机(控制机器)配置:这里是把两台代理的ip+端口号加进去。注意当有多台的时候,中间用逗号隔开即可,这里的设置和代理机差不多的,只不过控制机需要集合所有的代理机而已

 

2)同样的,另外搜索并且设置server.rmi.ssl.disable = true ,并且把前面的注释打开

控制机运行:

点击Jmeter------bin--------jmeter.bat,打开之后,点击运行,远程启动,出现两个地址这就说明已经正式加入了主机了,然后就选择其中一台运行,查看代理机界面

 

代理机运行:

点击Jmeter------bin------jmeter-server.bat  这是代理机打开的界面,注意下面,两行代码这是运行连接成功的时候出现的

案例:这里我们要运行是1000个用户登陆。

以上只是连接成功,但是运行的话并没有返回数据,那么现在就来看看以下出现的问题以及处理方法吧~

二、分布式连接成功后,运行代理机无返回值处理办法

   以上的步骤就是连接成功,但是代理机并没有返回的数据。也就是说主机(控制机)发送数据之后,但是代理机器没有返回数据,导致结果树和聚合报告没有数据

 处理办法:运行是1000个用户登陆。

那么首先代理机器,需要把这个txt文件(也可以是cvs文件,这里我用的是txt文本文件)放在代理机器相同的盘里.         

可以看到我这里路径是D:/ ...  不然jmeter代理机器在执行的时候,只看到主机路径是这样,它找不到自己的盘里有相同的东西,就会报错。

三、并发量大时,端口受限制处理办法

解决方法一:
修改操作系统注册表
1、cmd输入:regedit
2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters
3、新建 DWORD值,name:MaxUserPort,value:65534(十进制)
4、重启系统

解决方法二:
将HTTP请求:改成短链接(去掉 使用 keepAlive 的勾)

 两种解决方法均设置后,请求的错误百分比可以大大降低

四、socket closed异常处理办法

问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive,这个是连接协议,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形。
 

解决办法:修改httpclient4.idletimeout=<time in ms> 设置成自己觉得合理的时间,一般可设置成10-60s(表示连接空闲10s后才会断开),注意这边单位是ms。修改完成后再次压测,错误不再有了。

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值