Gor is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
Gor enabled us to put the Router "into production" a long time before we were entirely comfortable that it was "production ready" and without any risk. We could tell that it was doing the right thing from the access logs/stats of the Gor and the Router's own error logs.
Traffic from our production load balancers stream a small slice of traffic to Gor which then streams it to multiple QA environments. We soak test our new and old versions of our web service and the compare their metrics to discover bugs. Great stuff!
| OSS | PRO | ENTERPRISE | |
|---|---|---|---|
| AUDIENCE | Developers | Small Business | Med–Large Companies |
| Support for HTTP traffic | |||
| Replaying to multiple targets | |||
| Rate limiting | |||
| Basic filtering and rewriting | |||
| Middleware | |||
| Replaying from file | |||
| Load testing | |||
| ElasticSearch export | |||
| Saving and replying from S3 | |||
| Support for binary protocols (Thrift, ProtocolBuffers) | |||
| Priority Bug Fixes | |||
| Support for TLS encrypted traffic | |||
| Features Requests | |||
| Phone/Skype Support | |||
| DEDICATED SUPPORT | None | Email 4 hours included |
Email, Onboarding Session 20 hours included |
| LICENSE | LGPL | Commercial No Custom Terms |
Commercial With Custom Terms |
| PRICING | Free | $950 / year Unlimited Usage |
$2950 / year Unlimited Usage |
| PURCHASING | n/a | Credit Card | Credit Card, Bank transfer |
| Get started | Buy | Get a quote |
All sales come with a two week, 100% money back guarantee.
Looking to embed Gor in your virtual server or appliance?
Read the Commercial FAQ.
No matter how many tests and fixtures you have, they just can’t cover all cases. Humans, browsers, and robots all do strange things to affect the frequency of requests, URL weighting, size of headers, etc. There is a whole layer of errors that just can’t found via automated and manual testing: concurrency, server environment specific bugs, some bugs can occur from requests called in a particular order, and way more. You need to be sure that your app isn't tripped up by an edge-case that only presented itself after we'd gone live.
Gor is not a proxy: placing another component in the critical path of production traffic is too risky. Instead, Gor analyze traffic coming to your service, not affecting its functionality, and the price is few percents of CPU.
The most basic setup is:
# Assuming that your service running on port 80 gor --input-raw :80 --output-http "http://staging.com"
You can modify and filter captured requested before replaying them. You can even replay them at higher speed for load testing. See full documentation.