JMeter报错:NoHTTPResponseException
2015-06-03 14:55
661 查看
同事性能测试时遇到随机的错误,但必现,JMeter报错“NoHTTPResponseException: The target server failed to respond.”。
答案在这个链接里面:https://wiki.apache.org/jmeter/JMeterSocketClosed
文中说:
Retry or stale check can hide issues onServer configuration:
· Server failing to send the (optional) Keep-Alive header
· Overwhelmed server refusing connection, retrying would increaseload
我的理解是:低版本(2.10以下)JMeter会隐藏上述两个服务器端的问题,所以高版本JMeter取消了原来的设置,使这两种错误可以暴露出来。
经过对HTTP Header的分析可以发现,同事的测试遇到的正是第一种情况:服务器没有返回keep-alive header。
为什么服务器没返回,这个需要查资料,看下Tomcat的配置或查看代码(按理Tomcat应该是默认开启能返回的)。
为了规避JMeter报这个错误,有几种解决办法可以试一试:
1) JMeter的请求设置为不需要keep-alive;已测试;
2) JMeter的设置恢复到老版本的设置;即会重连,和stale检查;根据找到的资料,说浏览器其实都是启用了这个设置的;
3) 使用JMeter新版本的一个临时设置:httpclient4.idletimeout;(2.12)
(后两者在上面的链接里都提到了)
至于详细的分析,现在没有时间持续监控、抓包、测试和分析了。打个酱油记录一下。
答案在这个链接里面:https://wiki.apache.org/jmeter/JMeterSocketClosed
文中说:
Retry or stale check can hide issues onServer configuration:
· Server failing to send the (optional) Keep-Alive header
· Overwhelmed server refusing connection, retrying would increaseload
我的理解是:低版本(2.10以下)JMeter会隐藏上述两个服务器端的问题,所以高版本JMeter取消了原来的设置,使这两种错误可以暴露出来。
经过对HTTP Header的分析可以发现,同事的测试遇到的正是第一种情况:服务器没有返回keep-alive header。
为什么服务器没返回,这个需要查资料,看下Tomcat的配置或查看代码(按理Tomcat应该是默认开启能返回的)。
为了规避JMeter报这个错误,有几种解决办法可以试一试:
1) JMeter的请求设置为不需要keep-alive;已测试;
2) JMeter的设置恢复到老版本的设置;即会重连,和stale检查;根据找到的资料,说浏览器其实都是启用了这个设置的;
3) 使用JMeter新版本的一个临时设置:httpclient4.idletimeout;(2.12)
(后两者在上面的链接里都提到了)
至于详细的分析,现在没有时间持续监控、抓包、测试和分析了。打个酱油记录一下。
相关文章推荐
- 网络直播电视之M3U8解析篇 (下)
- 网络多线程 ---实现网络加载图片
- tcpdump 命令详解
- 网络爬虫排除协议robots.txt介绍及写法详解.
- [Guzzle] PHP HTTP 客户端和框架
- Swift中的HTTP请求
- iOS应用架构谈 网络层设计方案
- 使用java检测网络连接状况
- 常见的Http Status Code
- HttpClient上传图片,下载文件
- VMware中CentOS网络设置
- 使用charles proxy for Mac来抓取手机App的网络包
- Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address
- bzoj 2406: 矩阵 上下界网络流判定
- bzoj 2406: 矩阵 上下界网络流判定
- <meta http-equiv="X-UA-Compatible" content="IE=Edge">是神马鬼?
- 网络编程之shutdown() 与 close()函数详解
- 高性能、高并发TCP服务器(多线程调用libevent)
- Android的HttpURLConnection
- SIM(USIM)卡中的数据和2G/3G网络的鉴权