[ANN] MartianProxy: A runtime configurable HTTP proxy designed for E2E testing

168 views
Skip to first unread message

Adam Tanner

unread,
Aug 14, 2015, 5:26:44 PM8/14/15
to golang-nuts
Hiya everyone!

Martian on Github: https://github.com/google/martian

This is yet another HTTP proxy in Go, so I'll keep the overview brief. :)

Martian was designed for manipulating and/or verifying requests and responses on the fly during larger E2E tests. Think behavior such as stubbing out headers or verifying that all requests to your backends were over HTTPS. Martian can be used as a normal or transparent proxy and has built-in support for reconfiguring at runtime via a JSON API.

Note that we depend on some recent changes in crypto/tls, so the current requirement for running Martian is Go 1.5.

Martian includes a Go API for building custom proxy binaries if you want to write custom behavior.
We have built several different types of modification, verification, and filtering behavior that can be mixed and matched to create custom functionality solely by writing JSON.

Check out the cookie, header, and querystring directories if you want to see some simple examples of how to build custom behavior and hook it into the provided JSON API. An example proxy is available in examples/main.go and can be spun up with go run.

Check out the README if it seems interesting and feel free to ask questions or just tell us what you think. :)

Thanks!
Reply all
Reply to author
Forward
0 new messages