This repo contains two tools for testing network clients by recording real interactions with servers, then playing back the server responses later. These record/replay proxies let you run an "integration" test that accesses a backend and record the interaction. Subsequent runs of the test can replay the server's responses without actually contacting the server, turning the integration test into a fast and inexpensive unit test.
To use a record/replay proxy:
- Write a test that interacts with an actual backend.
- Run the test using the proxy in record mode. The result will be a file of client-server interactions.
- Run the test again using the proxy in replay mode, pointing at the recorded file. The proxy accepts requests and replays the matching server responses.
The httpreplay proxy works with HTTP traffic. You can use the httpreplay
package
directly from Go code, or you can run the httpr
command at
httpreplay/cmd/httpr
and use a client written in any language.
The grpcreplay
package
works with gRPC traffic. There is no corresponding command.