Skip to content

Latest commit

 

History

History
73 lines (53 loc) · 3.79 KB

QQE-377.md

File metadata and controls

73 lines (53 loc) · 3.79 KB

QQE-377- HTTP/2 test use cases for Rest endpoints

JIRA: http://issues.redhat.com/browse/QQE-376 PR: quarkus-qe/quarkus-test-suite#1655

Scope of the testing

The scope of this test plan encompasses the development and execution of HTTP/2 test cases for REST endpoints using the Quarkus REST extension. and Vert.x HttpClient within the Quarkus Test Suite.

Test scenarios

  1. HttpClient Vertx Compatibility HTTP/1.1 Test:

    • Verify that the HttpClient functions correctly with HTTP/1.1.
    • Ensure that the response status code is OK and the version is HTTP/1.1.
    • Confirm the presence of the expected response body containing the text expected.
  2. HttpClient Vertx HTTP/2 Protocol Test with SSL, ALPN:

    • Verify the HttpClient's compatibility with HTTP/2 protocol.
    • Ensure that the HttpClient is configured with SSL, ALPN, TrustAll set to true, and VerifyHost set to false.
    • Confirm that the response status code is OK and the version is HTTP/2.
    • Assert the presence of the expected response body containing the greeting.
  3. HTTP/2 Protocol Test:

    • Verify the HttpClient's compatibility with HTTP/2 protocol.
    • Confirm that the response status code is OK and the version is HTTP/2.
    • Assert the presence of the expected response body containing the text expected.
  4. Test Max Header Size Exceeded:

    • Verify the appropriate error message is returned when the maximum header size is exceeded using HTTP/2.
    • Generate headers to exceed the configured limit.
    • Ensure that the error message indicates header size exceeded the maximum allowed size.
  5. Verify X-Content-Type-Options Header:

    • Verify that the X-Content-Type-Options header is correctly set to "nosniff" in the HTTP/2 response headers.
    • Confirm that the response status code is OK and the version is HTTP/2.
    • Assert the presence of the X-Content-Type-Options header with the expected value.
  6. Test Sending and Receiving Custom Frames over HTTP/2:

    • Verify the capability to send and receive custom frames over HTTP/2.
    • Confirm that the response contains the expected custom frame data.
    • Assert the correctness of the received custom frame data.

Impact on testsuites and testing automation:

New tests will be added inside http/http-advance-reactive module.

Impact on resources:

After the new test classes introduced in http/http-advanced-reactive module the execution in JVM was only increased by seconds:

[INFO] Quarkus QE TS: HTTP: advanced-reactive ............. SUCCESS [03:07 min]

(result from https://github.com/quarkus-qe/quarkus-test-suite/actions/runs/7673741087/job/20917606017?pr=1599).

Getting familiar with the feature

To ensure familiarity with the feature, the following actions were taken:

  • Thorough research on HTTP/2 specifications of Quarkus REST guides.
  • Analysis of existing test suites and use cases for REST clients in Quarkus.

References

Considerations

OpenShift Serverless supports only insecure or edge-terminated routes.

Insecure or edge-terminated routes do not support HTTP2 on the OpenShift Container Platform. These routes also do not support gRPC because gRPC is transported by HTTP2

https://docs.openshift.com/serverless/1.31/knative-serving/external-ingress-routing/using-http2-gRPC.html

Contact