我正在使用HTTPS测试我的网站。当我使用默认实现时,响应时间更长。如果我使用实现作为HTTPclient 3.1,响应时间会减少。为什么HTTPclient 4和HTTPclient 3.1之间的响应时间存在差异?要使用https测试我的网站,我是否需要使用HTTPclient 4或HTTPclient 3.1?哪个会在浏览器中为我提供准确的响应时间?
以下是我的样本测试计划,
答案 0 :(得分:8)
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中描述的情况,那么描述您如何领导您的测试可能有所帮助。