2016-11-08 727 views
0

我使用jmeter HTTP Sampler来测试一系列HTTP请求并选择“使用KeepAlive”。但是有几条线程在所有的 请求发送前都与TCP FIN关闭连接。 enter image description hereJmeter在我的测试完成之前关闭连接

如图所示,172.19.0.101是Jmeter,172.19.0.111是服务器。剩下的请求只能通过一个新的连接发送,并且它们不在会话中。

+0

让我们知道您正在使用的服务器,以及为持续连接发送的保持活动超时,connectionTimeout和最大请求​​数配置了什么值 –

+0

感谢您的帮助。我检查了配置,既没有超时也没有'max'参数集。 Jmeter客户端断开计划,而不是Apache服务器。所以我认为可能是Jmeter或客户机上的问题。 – Monochrome

回答

0

它可以是两方面的原因:

第一个原因 - 超时超时

是否达到(默认值是60秒,配置,如果不配置,它采用了ConnectionTimeout参数在tomcat服务器中的值)。

的Apache的默认连接超时的httpd 1.3和2.0是 短至15秒,仅5秒钟apache httpd的2.2和 以上

我观察到请求10后得到的回应秒(15 - > 29秒),然后再发送FIN信号以终止连接。

参考文献:

  1. https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-timeout
  2. https://en.wikipedia.org/wiki/HTTP_persistent_connection
  3. https://tomcat.apache.org/tomcat-7.0-doc/config/http.html

第二个原因 - '最大' 参数

可能是其达到reques数量可以通过单个持久连接发送。

  1. https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-max

集实现在HTTP取样到HTTPClient4和尝试。

从JMeter HTTP采样器文档。

JMeter设置Connection:keep-alive头。这对于默认的HTTP实现无法正常工作,因为连接重用不在用户控制之下。它可以与Apache HttpComponents HttpClient实现一起工作。

+1

检查在JMeter.properties文件中为Keepalive超时配置的值“#httpclient4.idletimeout = 0”。还有connectionTimeout值“#httpclient.timeout = 0”。编辑答案 –

+1

感谢您的帮助。该参数似乎很有用,可以保持一些连接。但是并不是所有的连接都可以,Jmeter客户端在测试结束之前仍然会主动断开连接。我会尽力获得更多信息。 – Monochrome

+0

专注于服务器端和客户端“Keep-Alive”头文件,并分析两者都同意保持持久连接。 –

相关问题