Would you like an open-source tool to “capture” all the activity generated by users of your web application and then reuse it for more in-depth testing?
This is roughly what GoReplay (Gor) does, which gives you the ability to select some of the production traffic and replay it in the test environment while having the ability to filter and rewrite requests in real-time.
A concrete example of using GoReplay would be shadowing, load testing, or even detailed analysis and monitoring.
As you have understood, it is therefore an accurate load testing tool that allows you to analyze and record network traffic without affecting your applications.
GoReplay can also be extended with plugins, which can be written in any language. They will then allow you to dynamically access and modify request and response data. Thanks to GoReplay, you will also be able to implement complex rewriting and monitoring logic for your applications.
You can not only store the last capture of production traffic to create repeatable test cases but also save data for auditing purposes while dynamically deleting sensitive data. You will be able to expose live application metrics and monitor the performance and health of your application.
To install and use GoReplay, you can download the latest binary version from the official website or compile it yourself. Once the software is installed, all you have to do is launch GoReplay by running commands like:
sudo ./gor --input-raw :8000 --output-stdout.
And there you go! Now you have a powerful tool to capture and replay network traffic in real time, optimize the performance and resiliency of your applications, and facilitate the monitoring and debugging of your services.
If you want to learn more about GoReplay, check out the most recent documentation on their GitHub page.