Go Tools for Recording and Replaying RPCs
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.
httpreplay
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.
grpcreplay
The grpcreplay
package
works with gRPC traffic. There is no corresponding command.