• Jmeter分布式执行报错解决方法汇总


    使用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技术交流群:加群请输入验证信息 博客园
                  在这里插入图片描述


    微信二维码关注公众号:

    在这里插入图片描述


    关注之后,回复资源下载,即可获取本人共享的各种资源下载地址

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dkyHNY2D-1569554485737)(https://s1.51cto.com/images/blog/201908/06/2e62f8806e1dc1c391c4332ac7fd70b1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

  • 相关阅读:
    spring的bean的属性注入
    spring中bean的常用属性
    spring Code(spring 核心)
    mybatis的缓存
    mybatis 调用存储过程
    mybatis的动态sql
    mybatis的关系映射
    mybatis添加信息自动生成主键
    mybatis传递参数的方法
    如何编写跨平台的Java代码
  • 原文地址:https://www.cnblogs.com/Jmeter-Automation/p/12730687.html
Copyright © 2020-2023  润新知