Toxiproxy — фреймворк для имитации сетевых условий в тестовых средах.

Shopify, которая разрабатывает одну из крупнейших и самых популярных платформ электронной коммерции в Интернете, dio недавно объявила о запуске новой версии прокси-сервера «Toxiproxy 2.3» который предназначен для моделирования сбоев и аномалий в сети и системы для проверки состояния приложений при возникновении таких условий.

Программа выделяется тем, что предоставляет API для динамического изменения характеристик канала связи, который можно использовать для интеграции Toxiproxy с системами модульного тестирования, а также поддерживает платформы непрерывной интеграции и среды разработки.

О Токсипрокси

Эта структура специально разработан для работы в тестовых средах, CI и разработка, а также поддерживает детерминированное манипулирование соединениями, но с поддержкой случайного хаоса и настройки.

в основном, Toxiproxy позиционируется как инструмент что все те, кто требует выполнять демонстрационные тесты приложений, не имеющих единых точек отказа. Toxiproxy успешно используется во всех средах разработки и тестирования на Shopify с октября 2014 года.

Применение токсипрокси состоит из двух частей. TCP-прокси, написанный на Go (то, что содержится в этом репозитории) и клиент, который общается с прокси по HTTP. Это настраивает приложение таким образом, что все тестовые соединения проходят через Toxiproxy, а затем могут управлять своим статусом через HTTP.

Другими словами, прокси запускается между тестируемым приложением и сетевым сервисом, с которым это приложение взаимодействует, после чего можно имитировать возникновение определенной задержки при получении ответа от сервера или отправке запроса, изменять пропускную способность, имитировать отказ от приема соединений, прерывать нормальный ход установления или закрытия соединений, переустанавливать установленные соединения, искажать содержимое пакетов.

Для управления работой прокси-сервера из приложений предусмотрены клиентские библиотеки для Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust и Elixir, которые позволяют изменять условия взаимодействия сети на лету и сразу оценивать результат.

Для изменения характеристик канала связи без внесения изменений в код может использоваться специальная утилита toxiproxy-cli (предполагается использование Toxiproxy API в юнит-тестах, утилита может быть полезна для интерактивных экспериментов).

Что нового в Toxiproxy 2.3?

Что касается изменений, включенных в новую выпущенную версию, упоминается включение контроллера конечной точки клиента для HTTPS.

А также выделение типовых тестовых драйверов в отдельные файлы, реализация client.Populate API.

Помимо этого, также выделяется поддержка платформ armv7 и armv6 и возможность смены уровня регистрации на сервере.

Установите Toxiproxy в Linux

Для тех, кто заинтересован в возможности установить эту структуру, чтобы иметь возможность проводить свои тесты, они могут сделать это следуя шагам, которые мы разделяем ниже.

Если вы являетесь пользователем Debian, Ubuntu или любой другой дистрибутив на их основе, Установку можно выполнить, открыв терминал (можно использовать сочетание клавиш Ctrl+Alt+T) и в нем набрать:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.deb

И приступаем к выполнению установки с помощью:
sudo apt install ./toxiproxy_2.3.0_linux_amd64.deb

В случае тех, кто пользователи дистрибутивов с поддержкой пакетов RPM, такие как Fedora, openSuse, RHEL и другие, пакет для загрузки выглядит следующим образом:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.rpm

И вы устанавливаете пакет, набрав:
sudo rpm -i toxiproxy_2.3.0_linux_amd64.rpm

После завершения установки вы можете запустить службу, выполнив в терминале следующую команду:
sudo service toxiproxy start

Наконец, если еВы заинтересованы в том, чтобы узнать больше об этом, Вы должны знать, что код Toxiproxy написан на Go и имеет лицензию MIT, и вы можете ознакомиться с руководством по использованию этого фреймворка в по следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.