JMeter一个错误the target server failed to respond--JMeter坑
问题:1、在测试一个http景象,特别是集波动TPS时刻,出现了一个错误。它现在是一个必须错误(压力顺利时却零星的错误,甚至很少见);
每次必现错误(開始一直怀疑是网络或程序的问题)
2、失败事务报错信息例如以下,我遇到的是以下的那种
- Socket closed
-
Non HTTP response code: org.apache.http.NoHttpResponseException (the target server failed to respond)
资料查询:https://wiki.apache.org/jmeter/JMeterSocketClosed
解决:改动httpclient4.idletimeout=<time in ms> 设置成自己认为合理的时间,一般可设置成10-60s(表示连接空暇10s后才会断开),注意这边单位是ms。
改动完毕后再次压測,错误不再有了。
*********************************************************
《版权归作者lzqinfen@126.com全部。请勿乱转载》
*****************************************相关资料------------------------------------------------------------------------
HTTP无状态协议和Connection:Keep-Aliveeasy犯的误区
名词解释:
HTTP无状态:无状态是指协议对于事务处理没有记忆能力,server不知道client是什么状态。从还有一方面讲,打开一个server上的网页和你之前打开这个server上的网页之间没有不论什么联系
当你登录到一个站点时,你的登录状态也是由Cookie或Session来“记忆”的,由于server并不知道你是否登录
长处:server不用为每一个client连接分配内存来记忆大量状态,也不用在client失去连接时去清理内存。以更高效地去处理WEB业务
缺点:client的每次请求都须要携带对应參数。server须要处理这些參数
Keep-Alive:參考另外一篇文章HTTP
Keep-Alive 具体解释
easy犯的误区:
1、HTTP是一个无状态的面向连接的协议。无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)
2、从HTTP/1.1起。默认都开启了Keep-Alive。保持连接特性,简单地说。当一个网页打开完毕后,client和server之间用于传输HTTP数据的TCP连接不会关闭,假设client再次訪问这个server上的网页,会继续使用这一条已经建立的连接
3、Keep-Alive不会永久保持连接,它有一个保持时间。能够在不同的server软件(如Apache)中设定这个时间
版权声明:本文博主原创文章,博客,未经同意不得转载。