文档章节

[Jmeter]日常工作中踩的坑

覃光林
 覃光林
发布于 05/24 13:50
字数 1432
阅读 52
收藏 1
  1. [JMeter] Error in rconfigure() method java.rmi.ConnectException:Connection refused to host

问题分析:抛出的问题中,提示Java远程调用方法出现了异常,连接拒绝了master,可能是主机与奴隶机通信失去了联系

解决办法:尝试把主机的 jmeter-server 与 奴隶机的 jmeter-server给重启下


  1. [Jmeter] Non HTTP response code: java.net.NoRouteToHostException/Non HTTP response message: Cannot assign requested address (Address not available)

背景:多线程条件压测

问题分析:看文字介绍说:不能够分配请求地址,可能端口已经占用了,导致地址不可用

解决办法:经网上查资料, 是由于linux分配的客户端连接端口用尽, 无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放, 而是处于TIME_WAIT状态, 默认等待60s后才释放。 查看linux支持的客户端连接端口范围, 也就是28232个端口:

cat  /proc/sys/net/ipv4/ip_local_port_range
32768 - 61000

解决方法: 1. 调低端口释放后的等待时间, 默认为60s, 修改为15~30s echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 2. 修改tcp/ip协议配置, 通过配置/proc/sys/net/ipv4/tcp_tw_resue, 默认为0, 修改为1, 释放TIME_WAIT端口给新连接使用。 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse 3. 修改tcp/ip协议配置,快速回收socket资源, 默认为0, 修改为1. echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

通过上面3项调整, 压力测试运行正常。


3.[Jmeter] 502/Bad Gateway

背景:多线程或者高并发下压测情况下

问题分析:可能是多线程请求的情况下,达到了ng配置的最大连接数,导致出现了502/bad geteway

解决办法:降低线程数进行测试(实际需要与开发沟通,该接口与实际业务的最大处理能力)


4.[Jmeter] Test failed: text expected to contain /200/

解决办法:检查断言


5.[Jmeter] java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z

解决办法:mysql.jdbc驱动包版本过低,更新mysql驱动包即可,注意:此包在lib下,而不是lib/ext下


6.[Jmeter] com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 2 Too many authentication failures

背景:利用key进行ssh连接服务器的时候,无法连接上服务器的情况

问题分析:可能是JSchException这个插件的问题,经过测试,发现一旦用key连接数到达一定量时,就必定会报错

解决办法:重启Jmeter,重新连接下就好了(可能插件存在缺陷)


7.[Jmeter] ERROR o.a.j.e.ClientJMeterEngine: Error in rconfigure() method java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: io.github.ningyu.jmeter.plugin.dubbo.sample.DubboSample (no security manager: RMI class loader disabled)

背景:Jmeter分布式测试

问题分析:进行分布式测试的时候,主机无法启动奴隶机

解决办法:经排查,是节点机缺少dubbo插件的原因,把插件放上去,重启下奴隶机的jmeter-server即可


8.[Jmeter]CannotResolveClassException: kg.apc.jmeter.vizualizers.CorrectedResultCollector

在jenkins上用maven方式压测的时候,提示无法加载这个类

问题分析:检查jmx文件,发现新增的插件在maven环境中没有

解决办法:要么把这个插件注入到maven仓库中,要么在jmx中删除这个插件,注意:一定要删除,而不是隐藏

9.[Jmeter]Engine is busy - please try later(引擎忙,请稍候再试)

背景:运行分布式测试时报错

问题分析:可能是主机与奴隶机的信息通信出了问题

解决办法:重启奴隶机与宿主机的jmeter-server服务(重启服务后,记得重启Jmeter.bat)

10.[Jmeter]if控制器判断接口无法识别

问题分析:if控制器只接收两个结果,true or false,可能是返回的结果不为true or false

解决办法:利用Jmeter函数处理结果

比如:
${__groovy(1==1,)} -------->返回true
${__groovy(1==2,)} -------->返回false

11.[Jmeter]missing class com.thoughtworks.xstream.converters.ConversionException:

背景:在执行jmeter jmx文件的时候,报错

问题分析:可能是缺少了某个jar包

解决办法:检查下脚本所用的到jar包是否存在于jmeter lib或者lib/ext中

12.[Jmeter]java.lang.ArrayIndexOutOfBoundsException: 0

背景: 运行jmeter jmx任务的时候,直接报错

问题分析:数组索引越界异常

解决办法:贼坑,经过baidu,bing等多方面查询无果,看到日志中貌似有什么范围超限了,以为是Jmeter工具有内存缓存什么的,或者对这个jmeter脚本有缓存记录。最后只能把脚本部分内容复制并重新创建了一个脚本,运行后发现一切正常。赶紧翻看原来的脚本,发现了一个特别蛋疼的事情,不知道什么时候手误,把【测试计划】给注释了。尼玛,坑的我老泪纵横

13.[jmeter]Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/home/bjqa/apache-jmeter-3.0/bin/../project/realnameauthINFTest/RNA_INFtest.jmx', missing class com.thoughtworks.xstream.converters.ConversionException: kg.apc.jmeter.vizualizers.CorrectedResultCollector : kg.apc.jmeter.vizualizers.CorrectedResultCollector ---- Debugging information ----

问题分析:这个可能是由于当前jmeter运行环境中缺少jar包导致的

解决办法:测试计划的脚本尽量版本保持一致,或者添加对应的插件(比如:测试时用的脚本版本是5.1.1,那么在其他环境下运行的Jmeter脚本也尽量使用5.1.1)

14.[Jmeter]执行perfmon控制器监控jmx的时候,服务端代理日志(ServerAgent报错:java.lang.RuntimeException: Invalid metric specified: jmx)

解决办法:参考https://blog.csdn.net/warm77/article/details/80534625

http://bbs.51testing.com/forum.php?mod=viewthread&tid=1020124&ordertype=1

先在服务机对应的tomcat配置文件中新增JAVA -D 参数 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1099

© 著作权归作者所有

覃光林
粉丝 14
博文 134
码字总数 62578
作品 0
深圳
QA/测试工程师
私信 提问
菜鸟的性能测试之路(四)——Jmeter生成性能报告

接上次我利用了Jmeter做完压测之后,现在我就要把它自动生成一个HTML的性能报告了。 由于性能测试测的是性能,所以此处建议使用命令行,而不是图形界面。用命令行界面的优势有如下几点: 1....

六月雨June
2018/07/12
0
0
JMeter学习-003-JMeter与LoadRunner的异曲同工

本节主要对 JMeter 与 LoadRunner 的优缺点进行概要的总结,若有不足之处,敬请指正,不胜感激! 同时,我也不得不承认,在对 JMeter 和 LoadRunner 进行比较时,我个人的确偏向了 JMeter(免...

拎壶冲冲冲
2018/06/26
0
0
基于Jmeter的性能压测平台实现

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/83380879 很早就想要一套属于自己的性能压测平台,原因是使用了阿...

smooth00
2018/10/25
0
0
apache-jmeter-3.1的简单压力测试使用方法

apache-jmeter-3.1的简单压力测试使用方法 2017年02月15日 10:39:49 阅读数:13987 压力测试工具LoadRunner是收费的,而且操作复杂。作为开发人员当然是用apache提供的jmeter,免费容易上手。...

linjin200
2018/06/29
0
0
JMeter学习-002-JMeter环境配置

本节主要介绍 JMeter 本地环境配置(JMeter 版本为 apache-jmeter-2.12),详细配置如下: 一、JDK配置 默认用户本地已经安装且配置好 JDK。若未配置,进行 JDK 环境安装配置。 二、下载JMe...

拎壶冲冲冲
2018/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python登录豆瓣并爬取影评

上一篇我们讲过Cookie相关的知识,了解到Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息) 个性化设置(如...

猪哥66
20分钟前
1
0
常见排序的指针实现【C++ Code】

本来是想加上传cmp函数的,后来也懒得写了 然后基数排序虽然写的是模板类,但也只是支持整数了… #include <cstdio> #include <cstring> #include <algorithm> #include <typeinfo> using name......

shzwork
今天
3
0
OSChina 周一乱弹 —— 带这么多钱,你要泡我吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :白给?#今日歌曲推荐# 分享Lana Del Rey的单曲《Yayo》: 《Yayo》- Lana Del Rey 手机党少年们想听歌,请使劲儿戳(这里) @红薯...

小小编辑
今天
1K
14
搭建tftp服务

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 TFTP服务: TFTP:Trivial File Transfer Protocol 不重要文件传输协议 主要用来传送小文件,不支持认证和...

迷失De挣扎
今天
4
0
rest 的理解

rest:表现层状态转移。 什么是restful协议?https://en.wikipedia.org/wiki/Representational_state_transfer 使用restful的好处。 Rest是一种体系结构样式,他定义了一组用于创建web服务的...

xiaoxiao_go
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部