Bug 59847 - Support HTTP/2 protocol
Summary: Support HTTP/2 protocol
Status: NEW
Alias: None
Product: JMeter - Now in Github
Classification: Unclassified
Component: HTTP (show other bugs)
Version: 3.0
Hardware: All All
: P1 enhancement (vote)
Target Milestone: ---
Assignee: JMeter issues mailing list
URL:
Keywords:
: 59955 63416 (view as bug list)
Depends on: 60464
Blocks:
  Show dependency tree
 
Reported: 2016-07-13 02:26 UTC by xdxp
Modified: 2021-02-04 07:07 UTC (History)
6 users (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description xdxp 2016-07-13 02:26:07 UTC
The steps of the description:

1.My server has supported HTTP2, and I can get http/2 response header with firefox browser, chrome, curl and so on, but jmeter failed;

2.Select protocol: https
3.send http request to server who has supported http2
4.we get:
Response headers:
HTTP/1.1 200 OK
5.In fact, I want to get
Response headers:
HTTP/2 200 OK
Comment 1 Philippe Mouawad 2016-08-07 20:34:55 UTC
*** Bug 59955 has been marked as a duplicate of this bug. ***
Comment 2 Sebb 2016-08-18 21:53:05 UTC
JMeter relies on external code to implement protocols such as HTTP.

It will be possible to add HTTP2 only once there is a suitable implementation.
Comment 3 Philippe Mouawad 2016-08-18 21:56:39 UTC
See
https://github.com/http2/http2-spec/wiki/Implementations

Http2 adoption will increase this year, if we don't do anything to prepare it, it could hamper JMeter's future
Comment 4 Oleg Kalnichevski 2016-12-11 15:11:04 UTC
For what it is worth to you HttpCore (the library JMeter already makes use of albeit through HttpClient 4.x) now has a fairly feature complete HTTP/2 support. I would be more than willing to help first users of the new transport.

Oleg
Comment 5 Felix Schumacher 2016-12-11 15:23:34 UTC
Great news.

What are the prerequisites to use http/2 with httpcore? Are there any examples available on how to use it?
Comment 7 Philippe Mouawad 2016-12-11 16:00:08 UTC
Thanks Oleg for your help.

Besides the sampling, an important feature to consider is the recording of such traffic.
Do you have some guidelines on how to umplement this ?

Thanks
Comment 8 Oleg Kalnichevski 2016-12-11 20:27:39 UTC
This very much depends on what kind of information you would like to record. 

If what you want to capture are HTTP/2 frames HttpCore exposes a listener interface one can use to intercept every HTTP/2 frames transferred by a HTTP/2 connection. 

See
https://github.com/apache/httpcore/blob/trunk/httpcore5-h2/src/examples/org/apache/hc/core5/http/examples/Http2MultiStreamExecutionExample.java#L80

Oleg
Comment 9 Liu XP 2017-05-10 06:22:46 UTC
Do we have any schedule of the new feature?
I am looking forward the beta version for this feature and I will join the test when it ready.
Comment 10 Chanaka Balasooriya 2017-10-14 07:18:17 UTC
Hi, 

I am interested in working on this issue since I have some prior experience of HTTP/2 protocol. Is there anyone already working on this?
Comment 11 Philippe Mouawad 2017-10-14 07:23:16 UTC
Hello,
Thanks for proposing your services.
No work is started yet , we were discussing possible implementations tobade code on.
Mainly:
- netty
- hc5 which is still in alpha
- jetty

If you're already comfortable with http2 , your opinions are quite welcome and we'll be happy to help and merge your code.

Regards
Comment 12 Philippe Mouawad 2018-03-16 23:19:52 UTC
Apache JMeter is a load testing tools aimed at testing different protocols as per:

    https://jmeter.apache.org

HTTP/2 is being actively deployed and we need to support it.

The project will have to handle the following items:

    Trial the java libraries that provide HTTP/2 support:
        Jetty client library
        Netty client library
        HC5 client library
        Any other possible option
    The selection criterias will have to take into account:
        Possibility to record protocol
        Performance
        Maintainbility
        Community
    Once the library is chosen the implementation can start and must provide:
        Recording Feature (The component that records from browser and creates the Test Plan) as per this bugzilla
            https://bz.apache.org/bugzilla/show_bug.cgi?id=60464
        Sampling (The component that sends the requests to server)
        Listener (The component that receives the sampler results) will have to be modified to handle asynchronous samplers

Backward compatibility must be carefully analyzed and only broken if there is no other possibility.
Comment 13 Philippe Mouawad 2019-05-10 01:14:56 UTC
*** Bug 63416 has been marked as a duplicate of this bug. ***
Comment 14 Sunny Agrawal 2020-10-25 02:56:05 UTC
Hi Philippe,

Do we have any implementations to performance test HTTP/2 protocol.

Thanks
Comment 15 Liu XP 2021-02-04 07:07:33 UTC
Hi Philippe,

HTTP/2 is very pop(Google,Alibaba and so on) now.
HttpClient5 and JDK 11 is support HTTP/2 protocal.
Is it time to plan and implement completement ?

Thanks
Comment 16 The ASF infrastructure team 2022-09-24 20:38:04 UTC
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/4023