JMeter是否池HTTP连接?


问题内容

我知道在JMeter HTTP Request采样器中使用内置Java
HTTP客户端时,连接是否可以合并,取决于JVM的实现和配置。

但是,使用HttpClient3.1或HttpClient4时,JMeter池连接是否存在?

JMeter文档中有一些暗示,也许可以,但是文档中没有明确说明。

如果可以,是否可以控制连接池?例如,您可以设置池的大小吗?


问题答案:

当使用HttpClient3.1或HttpClient4时,JMeter会进行一些HTTP连接池化。

在这两种情况下,连接都是按线程池化的。连接不跨线程共享。

使用HttpClient3.1时,JMeter
在每个线程上使用SimpleHttpConnectionManager的实例。

当使用HttpClient4,JMeter的使用的子类的实例PoolingClientConnectionManager每个线程上,而且它使用PoolingClientConnectonManager的默认设置(每个路径2个连接,和20个最大连接数)。

JMeter不提供控制连接池参数的机制。

我必须转到JMeter的源代码才能找到此答案。请参阅以下链接以供参考(2.13标记的代码):

注意:此答案对于JMeter 2.13是正确的。 对于其他版本的JMeter,答案可能有所不同。