做性能测试的时候分布式是经常会使用的一种压测方案,但是很多同学在部署分布式压测环境的时候会出现各种问题,今天我们这篇文章就给大家把一些分布式搭建过程中的常见问题以及对应的解决方案进行汇总。

常见错误和解决方案

错误1:在主控机器下面远程启动助攻机的时候报错:

在这里插入图片描述

解决方案:这个链接超时,原因可能有2个:

1)你的主控机和助攻机的网络不通,检查一下网络的连通性:master端和slave端要ping通

2)ping通后,telnet ip port (Linux端),看一下1099端口是否被占用 【如果你修改了端口,就测试你修改后的端口】

3)你的助攻机服务没有启动:使用./jmeter-server -D java.rmi.server.hostname=助攻机IP地址 启动你的助攻机

错误2:启动助攻机的时候报错Engine is busy-please try later.

在这里插入图片描述

解决方案:这是因为助攻机上之前执行过脚本,可能处于繁忙状态。解决方案:

1)在停止jmeter测试的同时,使用master中的’ Remote Stop all '选项,这会杀死远程机进程上正在运行的线程。或者直接在助攻机上 使用kill -9 进程号杀掉进程;

2)助攻机上的服务重启一下,也就是重新启动助攻机的服务器:./jmeter-server -D java.rmi.server.hostname=助攻机IP地址

3)远程机的jmeter重新启动“jmeter-server.bat”,并重新开始测试。

错误3:脚本运行的过程中不报错,但是就是卡住无法收集到结果。

启动remote测试后,Agent机器收到任务,且控制台显示:”Starting the test on host 192.168.1.132:1099@***“,说明控制机分派上agent机上的测试成功,但是 一直卡在这里不动了,控制机一直没有显示任务执行状况以及收到测试结果(任务一直不结束,卡住了)。

在这里插入图片描述

解决方案:这个问题的原因我们可以通过助攻机上的 查apache-jmeter-5.2.1\bin 中 jmeter-server.log日志文件,发现有错误:

在这里插入图片描述

推断原因是 agent 连不了控制机,被拒绝,连接超时。

这个原因可能是因为本地主控机有多个网卡,启动Jmeter的时候没有用跟助攻机连通的网卡,所以会链接超时:

1)修改一下Jmeter启动时使用IP地址就可以:在主控机的Jmeter.bat文件中查找set ARGS这一句,然后在其上面一行添加:

set rmi_host=-Djava.rmi.server.hostname=你跟主动即连通的IP地址【比如192.168.61.2】

2)然后在set ARGS这行最后加上空格 %rmi_host%

在这里插入图片描述

3)在打开主控机的jmeter-server文件时,检查一下启动IP地址:

在这里插入图片描述

如果修改完后还是不行,那么就是你的主控机的电脑的防火墙没有关闭。一定要关闭主控机所有的防火墙:

在这里插入图片描述

错误4:阶梯压测助攻机执行失败

在这里插入图片描述

解决方案:这是因为助攻机下的Jmeter里没有阶梯压测的插件:把windows电脑安装了插件的Jmeter工具压缩一下上传到助攻机上解压使用,就可以了。

错误5:分布式执行的图显示不正确,不是随着时间的线形图:

在这里插入图片描述

解决方案:助攻机的时间跟主控机的时间保持一致。date看下时间,如果不一致,ntp同步一下时间。

总结

把常见的错误以及对应解决方案都列出来,大家如果遇到对应的问题,按照这个去解决就可以了。

最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐