h2spec v2.6.0 releases: A conformance testing tool for HTTP/2 implementation

h2spec

h2spec

h2spec is a conformance testing tool for HTTP/2 implementation.
This tool is compliant with RFC 7540 (HTTP/2) and RFC 7541 (HPACK).

h2spec

Changelog v2.6.0

  • Build with Go 1.14
  • Validate only the length of the DATA frame in 6.9.2/1 #117
  • Add source address used in test in failure report #114

Install

Usage

Conformance testing tool for HTTP/2 implementation.


Usage:
h2spec [spec...] [flags]

Flags:
--dryrun Display only the title of test cases
--help Display this help and exit
-h, --host string Target host (default "127.0.0.1")
-k, --insecure Don't verify server's certificate
-j, --junit-report string Path for JUnit test report
--max-header-length int Maximum length of HTTP header (default 4000)
-P, --path string Target path (default "/")
-p, --port int Target port
-S, --strict Run all test cases including strict test cases
-o, --timeout int Time seconds to test timeout (default 2)
-t, --tls Connect over TLS
-v, --verbose Output verbose log
--version Display version information and exit

 

You can choose a test case to run by specifying the Spec ID as the command argument. For example, if you want to run test cases for HTTP/2, run h2spec as following:

$ h2spec http2

If you add a section number after the Spec ID, test cases related to a specific section will be run. For example, if you want to run test cases related to 6.3 of HTTP/2, run h2spec as following:

$ h2spec http2/6.3

If you add a test number after the section number, you can run the specific test case individually. For example, to run only the first test case related to 6.3 of HTTP/2 6.3, run h2spec as following:

$ h2spec http2/6.3/1

The Spec ID can be specified multiple times.

$ h2spec http2/6.3 generic

Currently supported Spec IDs are as follows. generic is the original spec of h2spec, includes generic test cases for HTTP/2 servers.

Spec ID Description
http2 Test cases for RFC 7540 (HTTP/2)
hpack Test cases for RFC 7541 (HPACK)
generic Generic test cases for HTTP/2 servers

Dryrun Mode

To display the list of test cases to be run, use Dryrun Mode as follows:

$ h2spec --dryrun

Strict Mode

When Strict Mode is enabled, h2spec will run the test cases related to the contents requested with the SHOULD notation in each specification. It is useful for more rigorous verification of HTTP/2 implementation.

$ h2spec --strict

Copyright (c) 2014 Moto Ishizawa

Source: https://github.com/summerwind/