什么是JMeter中的实现选项及其实际工作原理?

时间:2017-04-26 07:58:27

标签: jmeter

有谁能让我明白JMeter的确切实施是什么。如果我在其中选择不同的字段,如HC4,HC3.1,它是如何工作的。另请告诉我何时使用Java以及何时使用HC4。我们是否在HP Load Runner中具有相同的功能。 提前谢谢。

1 个答案:

答案 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)。

JMeter HTTPClient Implementation

HTTPClient4是默认实施,因此您甚至不必为此烦恼。如果由于某种原因你需要切换到Java - 你可以使用HTTP Request Defaults

一次性完成

LoadRunner没有这个选项,因为它使用了C语言运行时,而JMeter基于Java。