Shopify, which develops one of the largest e-commerce platforms, has released version 2.3 of the Toxiproxy proxy server, designed to simulate network and system failures and anomalies for testing application performance under such conditions. The program is notable for providing an API for dynamically altering communication channel characteristics, which can be used to integrate Toxiproxy with unit testing systems, continuous integration platforms, and development environments. The Toxiproxy code is written in Go and is distributed under the MIT license.
The proxy is launched between the application under test and the network service that this application interacts with, after which it can simulate a specified delay in receiving a response from server or sending a request, modify bandwidth, simulate a failure to accept connections, disrupt the normal process of establishing or closing connections, reset established connections, and alter the contents of packets.
To manage the proxy server from applications, client libraries for Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust, and Elixir are provided, allowing on-the-fly changes to network interaction conditions and immediate evaluation of results. A special utility, toxiproxy-cli, can be used to modify communication channel characteristics without changing the code (it is assumed that the Toxiproxy API is used in unit tests, while the utility can be helpful for conducting interactive experiments).
Notable changes in the new release include the addition of a client endpoint handler for HTTPS, separation of standard test handlers into separate files, implementation of the API client.Populate, support for armv7 and armv6 platforms, and the ability to change the logging level for the server.
Source: opennet.ru
