Reputation: 303
Could anyone please make me understand what exactly implemantion in JMeter is. How it works if I select different fields in it such as HC4,HC3.1. Also please tell me when to use Java and when to use HC4. Do we have this same feature in HP Load Runner. Thanks in advance.
Upvotes: 2
Views: 9483
Reputation: 168197
I believe HTTP Request sampler documentation contains all the answers:
HTTP Request
this has an implementation drop-down box, which selects the HTTP protocol implementation to be used:
Java uses the HTTP implementation provided by the JVM. This has some limitations in comparison with the HttpClient implementations - see below.
HTTPClient3.1 (DEPRECATED SINCE 3.0) uses Apache Commons HttpClient 3.1. This is no longer being developed, and support for this will be dropped in a future JMeter release.
HTTPClient4 uses Apache HttpComponents HttpClient 4.x.
Blank Value does not set implementation on HTTP Samplers, so relies on HTTP Request Defaults if present or on jmeter.httpsampler property defined in jmeter.properties
The Java HTTP implementation has some limitations:
There is no control over how connections are re-used. When a connection is released by JMeter, it may or may not be re-used by the same thread.
The API is best suited to single-threaded usage - various settings are defined via system properties, and therefore apply to all connections.
There is a bug in the handling of HTTPS via a Proxy (the CONNECT is not handled correctly). See Java bugs 6226610 and 6208335.
It does not support virtual hosts.
It supports only the following methods: GET, POST, HEAD, OPTIONS, PUT, DELETE and TRACE
It does not support client based certificate testing with Keystore Config.
So the recommended option is using HTTPClient4 (you don't even have HTTPClient3.1 since JMeter 3.2).
HTTPClient4 is the default implementation so you don't even have to bother about it. If for some reason you need to switch to Java - you can do it in a single shot using HTTP Request Defaults
LoadRunner doesn't have this option as it is uses C language runtime under the hood and JMeter is based on Java.
Upvotes: 9