有谁能让我明白JMeter的确切实施是什么。如果我在其中选择不同的字段,如HC4,HC3.1,它是如何工作的。另请告诉我何时使用Java以及何时使用HC4。我们是否在HP Load Runner中具有相同的功能。 提前谢谢。
答案 0 :(得分:2)
我相信HTTP Request sampler documentation包含所有答案:
HTTP请求
这有一个实现下拉框,它选择要使用的HTTP协议实现:
<强>爪哇强> 使用JVM提供的HTTP实现。与HttpClient实现相比,这有一些限制 - 见下文。
<强> HTTPClient3.1 强> (已废弃,自3.0起)使用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。
它不支持虚拟主机。
它仅支持以下方法:GET,POST,HEAD,OPTIONS,PUT,DELETE和TRACE
它不支持使用Keystore Config进行基于客户端的证书测试。
所以建议的选项是使用 HTTPClient4 (自JMeter 3.2以来你甚至没有HTTPClient3.1)。
HTTPClient4是默认实施,因此您甚至不必为此烦恼。如果由于某种原因你需要切换到Java - 你可以使用HTTP Request Defaults
一次性完成LoadRunner没有这个选项,因为它使用了C语言运行时,而JMeter基于Java。