jmeter中HTTPclient 3.1和HTTP客户端4之间响应时间的差异

时间:2014-02-08 10:00:50

标签: https httpclient jmeter apache-httpclient-4.x

我正在使用HTTPS测试我的网站。当我使用默认实现时,响应时间更长。如果我使用实现作为HTTPclient 3.1,响应时间会减少。为什么HTTPclient 4和HTTPclient 3.1之间的响应时间存在差异?要使用https测试我的网站,我是否需要使用HTTPclient 4或HTTPclient 3.1?哪个会在浏览器中为我提供准确的响应时间?

以下是我的样本测试计划,

enter image description here

2 个答案:

答案 0 :(得分:8)

根据HTTP Request documentation

  

HTTP请求 - 这有一个实现下拉框,它选择要使用的HTTP协议实现:   Java - 使用JVM提供的HTTP实现。与HttpClient实现相比,这有一些限制 - 见下文。   HTTPClient3.1 - 使用Apache Commons HttpClient 3.1。这已不再开发,并且可能会在将来的JMeter版本中删除对此的支持。   HTTPClient4 - 使用Apache HttpComponents HttpClient 4.x.   空值 - 不设置HTTP采样器的实现,因此依赖于HTTP请求默认值(如果存在)或jmeter.properties中定义的jmeter.httpsampler属性   Java HTTP实现有一些限制:   无法控制连接的重用方式。当JMeter释放连接时,它可能会也可能不会被同一个线程重用。   API最适合单线程使用 - 各种设置通过系统属性定义,因此适用于所有连接。   通过代理处理HTTPS有一个错误(CONNECT未正确处理)。请参阅Java错误6226610和6208335。   它不支持虚拟主机。

最好使用HTTPClient4实施

但是,如果您需要尽可能多的像真正的浏览器一样,则需要考虑使用以下组件:

答案 1 :(得分:2)

我在HTTPs中对本地站点提出的基准测试根本没有确认这里说的是什么。

HttpClient 4现在甚至比HttpClient 3.1更快,特别是自2.10以来修复了这个领域的一个问题:

2.11还提高了性能:

另外正如您所看到的,Dmitri提到的问题已被关闭为“不是问题”,因为报告的问题是错误的。

如果您确认自己不属于JIRA中描述的情况,那么描述您如何领导您的测试可能有所帮助。