apache / jmeter

Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services
https://jmeter.apache.org/
Apache License 2.0
8.25k stars 2.09k forks source link

Support HTTP/2 protocol #4023

Open asfimport opened 8 years ago

asfimport commented 8 years ago

xdxp (Bug 59847): 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

OS: All

Duplicates:

Depends on:

asfimport commented 8 years ago

Sebb (migrated from Bugzilla): 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.

asfimport commented 8 years ago

@pmouawad (migrated from Bugzilla): 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

asfimport commented 7 years ago

Oleg Kalnichevski (migrated from Bugzilla): 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

asfimport commented 7 years ago

@FSchumacher (migrated from Bugzilla): Great news.

What are the prerequisites to use http/2 with httpcore? Are there any examples available on how to use it?

asfimport commented 7 years ago

Oleg Kalnichevski (migrated from Bugzilla): HttpCore has no dependencies besides JRE 1.7

Examples can be found here

HTTP/1.1: https://github.com/apache/httpcore/tree/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples

HTTP/2: https://github.com/apache/httpcore/tree/trunk/httpcore5-h2/src/examples/org/apache/hc/core5/http/examples

Oleg

asfimport commented 7 years ago

@pmouawad (migrated from Bugzilla): 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

asfimport commented 7 years ago

Oleg Kalnichevski (migrated from Bugzilla): 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

asfimport commented 7 years ago

Liu XP (migrated from Bugzilla): 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.

asfimport commented 6 years ago

Chanaka Balasooriya (migrated from Bugzilla): 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?

asfimport commented 6 years ago

@pmouawad (migrated from Bugzilla): Hello, Thanks for proposing your services. No work is started yet , we were discussing possible implementations tobade code on. Mainly:

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

Regards

asfimport commented 6 years ago

@pmouawad (migrated from Bugzilla): 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://github.com/apache/jmeter/issues/4189
    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.

asfimport commented 3 years ago

Sunny Agrawal (migrated from Bugzilla): Hi Philippe,

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

Thanks

asfimport commented 3 years ago

Liu XP (migrated from Bugzilla): 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

dgetzlaf commented 1 year ago

Hi @asfimport @vlsi , is it still planned to support the http/2 protocol?

Sincere regards, David