[TOC]
Fine tuned http/s benchmark framework with synchronization across requests and detailed trace.
In order to reliably test invocation latency and benchmark FaaS providers, a benchmark tool with fine grained control over the request and the results. The major issue with current benchmarking tools is that they didn't allow us to synchronize between the stages of request while testing.
For example, a simple test of 3 concurrent requests with a delay of 20ms to an endpoint resulted in an unreliable invocation latency results, because it took into affect the dns resolve time, the tcp handshake and tlshandshake time, and the delay didn't have the desired effect, requests invoked the endpoint in random times.
This was due to the fact that the invocation accord AFTER the tlshandshake.
httpbench allowed us to wait for the 3 concurrent requests to finished the tls handshake, and then release each one with 20ms delay between them.
GetConn
DNSStart
DNSDone
ConnectStart
ConnectDone
TLSHandshakeStart
TLSHandshakeDone
GotConn
WroteHeaders
WroteRequest
Got100Continue
GotFirstResponseByte
Wait100Continue
Over time presets where added to enable more test types:
Should trust the included private key in order to run locally (or add your own trusted one) Integration tests cannot run parallel at the moment (TODO: add different server process for each test in order to run parallel)