jmeter压测常见报错分析

您所在的位置:网站首页 jmeter打开脚本报错 jmeter压测常见报错分析

jmeter压测常见报错分析

2024-01-10 19:56| 来源: 网络整理| 查看: 265

简述:

简单列出jmeter压测中常见的报错,及原因分析解决方法。

 

问题: 1、 socket closed

问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive,这个是连接协议,JMeter坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形。解决:修改jmeter.properties文件中 httpclient4.idletimeout= 设置成自己觉得合理的时间,一般可设置成10-60s(表示连接空闲10s后才会断开),注意这边单位是ms。修改完成后再次压测,错误不再有了。

 

2、address already in use:connect

运行脚本报错: java.net.BindException: Address already in use: connect

原因分析:

这个问题的原因是windows端口被耗尽了(默认1024-5000),而且操作系统要 2~4分钟才会重新释放这些端口,所以可以增加windows的可用端口来解决。windows端口最大数为65534

解决方法一:

修改操作系统注册表

1、cmd输入:regedit2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters3、新建两个 DWORD值,name:MaxUserPort,value:65534(十进制);name:TcpTimedWaitDelay,value:30(十进制)

4、重启系统

解决方法二:

设置线程组时,勾选 same user on each iteration 。

 

3、java.lang.OutOfMemoryError: Java heap space

原因:观察运行jmeter机器的内存,占用较高,超过了jmeter设置的内存上限。解决方案:修改jmeter配置文件,调整内存可用的范围

修改/bin/jmeter.bat文件:找到这2行set HEAP=-Xms256m -Xmx256mset NEW=-XX:NewSize=128m -XX:MaxNewSize=128m改为:set HEAP=-Xms1024m –Xmx2048m(最大值不能超过系统内存的1/2)set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

 

4、jmeter脚本运行的过程中,服务器性能参数没有明显变化(CPU,内存,I/O),但request的响应时间很长。

原因:观察jmeter agent机器网络使用情况,网络使用持续达到带宽的限制峰值。request 发送的过程中pending在网络中,实际并发的request并没有同一时间到达服务器,所以服务器没有明显变化。解决方案:提高jmeter agent机器网络带宽。

 

 5、JMeter结果树响应数据中文乱码解决办法

解决办法:打开apache-jmeter-2.11\bin\jmeter.properties文件,搜索“encoding”关键字,找到如下配置:

# The encoding to be used if none isprovided (default ISO-8859-1)

#sampleresult.default.encoding=ISO-8859-1

将注释删掉,并改成utf-8编码,即:

The encoding to be used if none isprovided (default utf-8)

sampleresult.default.encoding=utf-8

重启JMeter即可

 6、Response code: Non HTTP response code: java.net.SocketTimeoutException 或者Response message: Non HTTP response message: connect timed out

 查看Load time的时间要大于request设置的connect time out时间,所以抛出该异常。可能是由于服务端有较多请求正在处理(且处理时间较长),导致JMeter不能连接上服务器而产生的。     7、Jmeter服务器反馈登陆不成功问题

使用Badboy录制了公司一个项目的登录功能

导入到JMeter后,执行场景,发现登录校验成功,但后续的动作都未成功;

问题原因:在登录校验成功后,进行重定向时,Cookie被重置的;

解决办法:校验页面的HTTP请求中,有看到一个:自动重定向、跟随重定向的设置;

修改默认的“自动重定向”为“跟随重定向”

重新执行场景。

8、Jmeter进程停止不了

问题原因:设置的内存太小了。

解决办法:在JMeter的运行jmeter.bat 用记事本打开 修改个参数,

set HEAP=-Xms512m -Xmx4000m,重启。

 

9、怎么设置线程组下面指定的请求指定执行多次?

比如我想测试一个网站,用badboy录制了一个脚本,脚本包含了登录过程以及登陆进去后续的操作,但是我现在要进行压测,压测的时候只登录一次,后面的请求可以循环多次。

解决办法:给想要执行指定循环次数的请求 插入上级-》逻辑控制器 -》循环控制器,然后在循环控制器自定义循环次数。

 

 

相关连接:

https://www.cnblogs.com/jane4321/p/11013042.html .......................................jmeter常见报错

https://blog.csdn.net/zhusongziye/article/details/78796738.............................jmeter常见问题及报错

https://mp.weixin.qq.com/s/ZTKyYGh45XeF8rQdgK-PHw ...............................性能分析之常见指标

https://blog.51cto.com/ydhome/1864340 ........................................................Jmeter之响应结果乱码解决

https://blog.csdn.net/weixin_44341990/article/details/123657042 .................集合点使用

https://blog.csdn.net/glongljl/article/details/80229766 ......................................body data设置中文显示不为乱码

https://blog.csdn.net/heyp113/article/details/109737319 ..................................Charles抓包工具抓取Jmeter数据



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3