如何处理Jmeter分布式连接成功后,结果树和聚合报告无反应?(几种常见的问题,异常处理方案)
昨天研究了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。修改完成后再次压测,错误不再有了。
更多推荐
所有评论(0)