Компания Shopify, развивающая одну из крупнейших платформ электронной коммерции, опубликовала выпуск прокси-сервера Toxiproxy 2.3, предназначенного для симуляции сетевых и системных сбоев и аномалий для тестирования работоспособности приложений при возникновении подобных условий. Программа примечательна предоставлением API для динамического изменения характеристик канала связи, который можно использовать для интеграции Toxiproxy с системами unit-тестировния, платформами непрерывной интеграции и окружениями для разработки. Код Toxiproxy написан на языке Go и распространяется под лицензией MIT.
Прокси запускается между проверяемым приложением и сетевым сервисом, с которым взаимодействует данное приложение, после чего может симулировать возникновение определённой задержки при получении ответа от сервера или отправке запроса, изменять пропускную способность, симулировать отказ принимать соединения, нарушать нормальный ход установки или закрытия соединений, сбрасывать установленные соединения, искажать содержимое пакетов.
Для управления работой прокси-сервера из приложений предоставляются клиентские библиотеки для языков Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust и Elixir, которые позволяют на лету изменять условия сетевого взаимодействия и сразу оценивать результат. Для изменения характеристик канала связи без внесения изменений в код может применяться специальная утилита toxiproxy-cli (подразумевается, что API Toxiproxy используется в unit-тестах, а утилита может быть полезна для проведения интерактивных экспериментов).
Из изменений в новом выпуске отмечается включение клиентского endpoint-обработчика для HTTPS, разделение типовых тестовых обработчиков по отдельным файлам, реализация API client.Populate, поддержка платформ armv7 и armv6, возможность изменения уровня ведения логов для сервера.