Ekko Proxy aka Echo Proxy is a Web Service Proxy service virtualization tool to monitor, record, playback and mock web services and JDBC database calls.
It supports virtualization of messaging protocols like JSON and SOAP over HTTP/HTTPS protocols as well as JDBC.
Every software developer should really have an Ekko Proxy tool in their toolbox given it provides many benefits such as:
- Validate APIs / JDBC calls early in the project by recording requests and playing back recorded or mocked responses.
- Run your application on the go without requiring network access to backend systems / databases.
- Simulate a variety of responses to test hard to replicate scenarios or error conditions / network delays & faults.
- Minimize dependencies between service delivery teams allowing for a truly agile delivery model.
- Load test applications or APIs without incurring potential costs associated with rate limits.
- Increase development and testing time by reducing dependency on backend systems availability.
- Integrate your application with dependent APIs or DBs before they are fully built.
- Run various tools to compare, encode/decode, format, match, and hash data, validate / encode JWT tokens - all safely from your local machine or server without the inherent dangers of using similar online tools.
- Save time by generating mocks automatically from HTTP requests, OpenAPI, Swagger or WSDL specifications.
Many service virtualization tools have a steep learning curve and can be cumbersome to setup. Ekko Proxy is not one of them - instead, using it's intuitive and simple UI, you can get setup and running in minutes.
There are many great features in Ekko Proxy - some of which are listed below:
- Get up and running in minutes - no coding or complex setup required.
- Create mock responses for API and DB calls with the Ekko Proxy WireMock Editor.
- Record and playback requests and responses as they pass through Ekko Proxy.
- View and compare requests or responses as they flow through Ekko Proxy instances.
- Set or program delay ranges to simulate real response times for responses being played back.
- Set or program various types of faults to simulate network / connection issues.
- Configure expressions to organise recorded requests and responses in subfolders so you can easily find them.
- Configure expressions to normalize requests for better matching with recorded responses.
- Drag & drop recorded HTTP requests to a proxy to fire them at the target server.
- Easily view the contents of JWT tokens along with validating their signature or encode new ones.
- View, manage, resend existing recorded requests from the recordings drawer.
- Import / export proxy settings, recordings or mocks.
- Generate mocks straight from HTTP requests or from OpenAPI, Swagger or WSDL definitions.
Ekko Proxy example with three running proxies:
For detailed documentation, please see: Ekko Proxy Home Page
- Added per mock delay functionality allowing for various types of delays to be set.
- Added per mock fault functionality allowing for various types of faults to be set.
- Created delay and fault Handlebars template helpers allowing for programmatic control of delays and faults.
- Added additional Handlebars template helpers: truncateDate, pickRandom, randomInt, randomDecimal, range, array, parseJson, matches, contains, and math.
- Added editor language support for HTML, CSS and JavaScript.
- Added auto-complete to scenario fields enabling faster form filling.
The new delay, fault and Handlebars templating helpers are all documented here.
- When creating a proxy you can now easily set if you want CORS handled automatically.
- Fixed TLS supported version issue resulting in 500 - No Appropriate Protocol errors when connecting to target servers that do not support TLSv1.
- Fixed network proxy lib linkage error occurring on some Windows Server versions.
- Fixed potential NPE if network proxy authentication is required but none has been configured.
- Added option to generate mocks from http requests / responses.
- A new tool to generate mocks directly from OpenAPI / Swagger has been added.
- A new tool to generate mocks directly from WSDL files has been added.
- Spring boot actuator has been configured and HTTP metrics for proxies are now recorded.
- Added suggestions for headers when configuring mocks.
- Content encoding now supports deflate and br (Brotli) on some operative systems.
- Delays are now supported for JDBC mocks.
- Various minor fixes and UI updates.
- Added log file viewer in About page.
- Added charting of requests / responses.
- Added a new database proxy type for JDBC connections. This allows you to view JDBC calls and record or mock their responses.
- Added inline search in text areas with highlighting.
- See the proxy settings for a proxy in a new information tooltip.
- Fixed missing response headers when using forwarding.
- You can now install license files via the UI.
- Added command line option to specify corporate proxy settings for external connections.
- You can now upload a SSL certificate for a proxy making it easier to manage when running on a remote server.
- Added option to import / export Ekko Proxy settings, recordings and mocks via the UI.
- New tools SQL formatting option.
- When creating a Ekko proxy the ports for which existing settings already exist are displayed as a suggestion.
Prerequisites: Java 8 or later.
To install Ekko Proxy simply clone or download the ekkoproxy jar to your machine or to a server.
Ekko Proxy can be started using the command:
java -jar ekkoproxy-1.6.jar
This starts up the Ekko Proxy server and by default the Ekko Proxy UI can be accessed on http://localhost:4040 or http://<server>:4040 if installed on a server.
You can override application settings on the command line, as in the example below, that specifies which port Ekko Proxy should be accessible on:
java -jar ekkoproxy-1.6.jar -server.port=8080
Further details can be found on the Ekko Proxy Home Page
Ekko Proxy is used by placing it in-between a client application and a server. The client is configured to connect to Ekko Proxy, and Ekko Proxy forwards, records or plays back the data from the server / database, depending on mode of operation, along-with providing easy access to view and compare the requests / responses etc. in its user interface.
Please see the Ekko Proxy Home Page homepage for the full usage documentation.
Please use the github Issues tab to raise any bugs or enhancement requests.
CC BY-NC-ND 4.0 International, please see full license here: LICENSE.