2016-02-22 23 views
12

Mi chiedo se il pacchetto this (httptest) può essere utilizzato per verificare le funzionalità specifiche di HTTP/2.
Qualcuno può indicarmi qualche esempio?È possibile utilizzare httptest per testare HTTP/2?

Sono a conoscenza dello strumento h2i, ma è uno strumento interattivo.
Sto cercando qualcosa che sia programmabile.

EDIT:
Quello che sto veramente cercando è uno strumento, dove per esempio posso avviare un server push e testarlo sul lato client.
Quindi, utilizzando questo pacchetto, come posso accedere alle informazioni HTTP/2 sottostanti utilizzate per impostazione predefinita?

EDIT 2:
Trovato alcuni esempi nella fonte nghttp2: https://github.com/tatsuhiro-t/nghttp2/tree/master/integration-tests

EDIT 3: Per me sembra che il pacchetto net/HTTP2 non è pensato per essere utilizzato direttamente da chiunque. Sperimenterò con lo this.

+1

Se sei on go 1.6, il supporto per HTTP/2 a viene aggiunto in modo trasparente a 'net/http' per HTTPS (e, suppongo, di conseguenza anche a' net/http/httptest'). – muru

+0

Che cosa esattamente vuoi fare? Cosa stai testando? Come detto muru, httptest usa il pacchetto http. – JimB

+1

In seguito potrebbe aiutarti. [Come verificare le chiamate http in go httptest] (http://stackoverflow.com/questions/16154999/how-to-test-http-calls-in-go-using-httptest) – Johnson

risposta

0

https://github.com/summerwind/h2spec è un programma go che verifica se un implementazione del server è conforme a RFC 7540. Esso permette alle imbarcazioni individuale HTTP/2 fotogrammi come ad esempio:

settings := http2.Setting{http2.SettingInitialWindowSize, 0} 
    http2Conn.fr.WriteSettings(settings) 

o

var hp http2.HeadersFrameParam 
    hp.StreamID = 1 
    hp.EndStream = false 
    hp.EndHeaders = true 
    hp.BlockFragment = http2Conn.EncodeHeader(hdrs) 
    http2Conn.fr.WriteHeaders(hp)