Https HTTPclient 3.1和HTTP client 4在jmeter中的响应时间差异

Https HTTPclient 3.1和HTTP client 4在jmeter中的响应时间差异,https,httpclient,jmeter,apache-httpclient-4.x,Https,Httpclient,Jmeter,Apache Httpclient 4.x,我正在使用HTTPS测试我的网站。使用默认实现时,响应时间更高。如果将实现用作HTTPclient 3.1,则响应时间会缩短。为什么HTTPclient 4和HTTPclient 3.1之间的响应时间存在差异?要使用https测试我的网站,我需要使用HTTPclient 4还是HTTPclient 3.1?哪一个会像在浏览器中一样为我提供准确的响应时间 下面是我的样本测试计划 根据 HTTP请求-这有一个实现下拉框,用于选择要使用的HTTP协议实现: Java—使用JVM提供的HTTP实现。与H

我正在使用HTTPS测试我的网站。使用默认实现时,响应时间更高。如果将实现用作HTTPclient 3.1,则响应时间会缩短。为什么HTTPclient 4和HTTPclient 3.1之间的响应时间存在差异?要使用https测试我的网站,我需要使用HTTPclient 4还是HTTPclient 3.1?哪一个会像在浏览器中一样为我提供准确的响应时间

下面是我的样本测试计划

根据

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

最好使用
HTTPClient4
implementation

但是,如果你需要你的请求尽可能强,就像一个真正的浏览器>,你需要考虑使用以下组件:

  • 在s中,告诉JMeter检索所有嵌入的资源,并使用2-5个请求的线程池(就像真正的浏览器一样)
  • 使用-模拟浏览器cookie并处理基于cookie的身份验证
  • 使用-设置用户代理字符串、内容类型、接受语言等标题
  • 使用-模拟浏览器缓存

我在HTTPs中针对本地网站所做的基准测试根本无法证实这里所说的内容

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

更重要的是,2.11提高了性能:

正如您所看到的,Dmitri所指的问题被关闭为“非问题”,因为报告的问题是错误的


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

Hi dmitri。。我已经在使用你提到的所有元素来充当浏览器。我的用例是在http和https之间比较我的站点。但我真正关心的是,当我使用HTTPclient 3.1时,响应时间更接近http的响应时间。当我使用HTTPclient 4时,响应时间是http响应的五倍。正如您所提到的,将来将不支持HTTPclient 3.1。为什么HTTPclient 3.1和HTTPclient 4之间的响应时间存在巨大差异?看起来您遇到了跟踪到的问题。我已经针对支持SSL的Apache服务器在本地测试了HttpClient 3和4的实现,响应时间几乎相同。我建议从RealBrowser中测量时间,并选择最接近的实现。就我个人而言,我会选择HttpClient 4,但您可以使用HttpClient 3.1-没有人会从下载区删除以前的JMeter版本,HttpClient 3.1仍然存在于最新的JMeter 2.11中。感谢您dmitri的宝贵解释。嗨,ubik,我在2.9中遇到了问题,所以我尝试了2.11。我仍然面临着同样的问题。我的测试计划包含很少的请求(HTTPS),我包括CookieManager,并发池大小为4。使用httpclient4am,响应时间比httpclient3.1高得多。我无法更改jmeter.property或system.property中的任何SSL配置。我的服务器也有更高的规格。你能给我建议一个解决方案来获得准确的响应时间吗?我是否需要更改属性文件中的任何ssl配置?在我的问题HI ubik中添加了测试计划,是否有任何评论?我还提供了测试计划样本。你没有设置你访问的abc.com网站是假的,对吗?是内部网站还是外部网站?是内部网站