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

问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive(这个是什么?看后面资料),这个是连接协议,JMeter坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形。

解决:修改httpclient4.idletimeout=<time in ms> 设置成自己觉得合理的时间,一般可设置成10-60s(表示连接空闲10s后才会断开),注意这边单位是ms。修改完成后再次压测,错误不再有了。

*********************************************************

《版权归作者[email protected]所有,请勿乱转载》

*****************************************相关资料------------------------------------------------------------------------

HTTP无状态协议和Connection:Keep-Alive容易犯的误区

名词解释:

HTTP无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系

如果你要实现一个购物车,需要借助于Cookie或Session或服务器端API(如NSAPI and ISAPI)记录这些信息,请求服务器结算页面时同时将这些信息提交到服务器

当你登录到一个网站时,你的登录状态也是由Cookie或Session来“记忆”的,因为服务器并不知道你是否登录

优点:服务器不用为每个客户端连接分配内存来记忆大量状态,也不用在客户端失去连接时去清理内存,以更高效地去处理WEB业务

缺点:客户端的每次请求都需要携带相应参数,服务器需要处理这些参数

参考:http://en.wikipedia.org/wiki/Stateless_protocolhttp://www.webopedia.com/TERM/S/stateless.html

Keep-Alive:参考另外一篇文章HTTP
Keep-Alive 详解

容易犯的误区:

1、HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)

2、从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

3、Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

转自:http://liuzhigong.blog.163.com/blog/static/178272375201141344312315/

时间: 2024-10-08 19:30:00

JMeter报错the target server failed to respond--JMeter的坑的相关文章

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://w

php curl报错:417 - Expectation Failed

当我在post提交的数据增加一段内容后会报错:417 - Expectation Failed. 查资料发现在使用curl做POST时,当post的数据大于1024字节时,curl并不会直接发起post请求,而是分为两步, 1.发送一个请求,包含一个Exc:100-continue,询问Server接收数据 2.接收到Server返回100-continue应答后,才把post提交给Server RFC相关资料:https://www.w3.org/Protocols/rfc2616/rfc26

SSAS 发布报错处理方法 Login failed for user &#39;NT Service\MSSQLServerOLAPService&#39; 28000

Create login and grant access: Open up SQL Server Management Studio [login to the database engine]> Security > Login (Right click) > New Login >add user: "NT Service\MSSQLServerOLAPService">select the database being analyzed in th

Eclipse下ADB报错:Android ADB server didn&#39;t ACK,解决办法

转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9401981 ADB server didn't ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的那种,哈哈),自己没遇到也没有认真的去对待他,今天,就是在今天,我打开Eclipse连上手机,准备调试程

ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren&#39;t installed

报错内容: TASK [activemq : jvm configuration] **********************************************************fatal: [172.16.1.10]: FAILED! => {"changed": false, "checksum": "9b18306fa15628e687c3a81332f9bmsg": "Aborting, target

ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren&#39;t installed【转】

报错内容: TASK [activemq : jvm configuration] **********************************************************fatal: [172.16.1.10]: FAILED! => {"changed": false, "checksum": "9b18306fa15628e687c3a81332f9bmsg": "Aborting, target

mysql报错:MySQL server version for the right syntax to use near &#39;type=InnoDB&#39;

工作中使用sql语句建表时,mysql报了如下错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1 解决方案: 这个报错是由于某些版本的mysql不支持type写法,将type关键词改成ENGINE 即可. 版权声明:本文为博主原

安装MySQL-python报错error: command &#39;gcc&#39; failed with exit status 1

[[email protected] MySQL-python-1.2.3]# python setup.py install function) .... _mysql.c:133: error: 'ER_SYNTAX_ERROR' undeclared (first use in this function) _mysql.c:380: error: '_mysql_ConnectionObject' has no member named 'connection' _mysql.c:382

navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法

原文:navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法 navicat是通过oracle客户端连接oracle服务器的. oracle的客户端有两种,一种标准的客户端安装程序,下载地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html