使用JMeter执行分布式测试,经常遇到各种各样的报错,本文就汇总下工作中经常遇到的几种问题
1、本文master端为windows,slave端为linux
2、不管master和slave在windows还是linux,首先要保证网络是通的,telnet ip 端口就行
3、适合平台大批量调用jmeter实现性能测试排查问题,端口占用,slave异常关闭,造成master端的僵尸进程
一、执行性能压测,执行日志提示Failed to create UDP port(UDP端口创建失败)
1. 出现该问题,就是jmeter的slave进程监听端口被占用,导致不能使用该端口,报错如下
2. 解决方法,只需要修改master机器的jmeter.property文件,该配置文件在jmeter的bin目录下,默认配置只开放了10个端口范围给监听使用,只需要修改即可:
#jmeterengine.nongui.port=4445
#
# If the initial port is busy, keep trying until this port is reached
# (to disable searching, set the value less than or equal to the .port property)
#jmeterengine.nongui.maxport=4455
3. 修改成如下即可
jmeterengine.nongui.port=4445
#
# If the initial port is busy, keep trying until this port is reached
# (to disable searching, set the value less than or equal to the .port property)
jmeterengine.nongui.maxport=4475
二、执行性能压测,master日志执行一部分就卡住不动
1. 异常界面如下,该任务执行过程,只显示了部分执行结果,不会顺利完成
2. 出现该问题,最大的可能就是slave进程被意外关闭了,比如内存不够用,导致异常关闭,master监听不到slave的消息,导致一直挂着
3. 首先在slave机通过netstat -anp|grep 1100,查看slave占用的端口是否正常,下图代表该端口未被占用,slave进程已经关闭了,所以导致master一直卡住不动,需要重新启动slave,重新压测,如果查看slave机器的jmeter-server.log日志有报内存溢出,就需要修改默认最大内存
4. 出现该问题时,master进程都不会关闭,一直会占用系统资源,windows可以直接关闭执行界面,linux页面执行就需要kill掉master进程
三、执行性能压测,master日志没有返回任何执行结果,slave有执行日志
1. 异常界面如下,该任务执行过程,只显示了部分执行结果,不会顺利完成
2. 出现该问题,首先查看slave机器的jmeter-server.log日志,在bin目录下,由日志可以看到提示连接169.254.217.204异常,查看本机ip,发现该ip是一块虚拟网卡,只需要禁用该网络连接即可
3. 再次执行分布式测试,master执行日志正常显示,报告正常生成
4. 首先要保证master机器和slave机器网络是通的,需要在master执行telnet 10.16.69.174 1100 ,ip为slave机器ip,端口为slave端设置的端口,如果能正常进入到命令界面,证明和slave端连接是通的
四、执行性能压测,执行日志提示Engine is busy - please try later
1. 报错界面如下
2. 出现该问题,就是slave被占用没有被释放,可能是master执行时没有正常关闭,导致slave一直被占用,只需要关闭slave服务,重新启动即可,操作命令如下,首先netstat -anp|grep 1100,查询出slave进程id,然后kill -9 id 即可
如果文章对你有帮助,欢迎关注本人公众号,公众号与本平台文章同步,方便大家查阅,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制
QQ技术交流群:加群请输入验证信息 博客园
微信二维码关注公众号:
关注之后,回复资源下载,即可获取本人共享的各种资源下载地址