Toxiproxy, фреймворк для моделювання умов мережі в тестових середовищах

Shopify, яка розробляє одну з найбільших і найпопулярніших платформ електронної комерції в Інтернеті, dio нещодавно оголосила про запуск нової версії проксі-сервера «Toxiproxy 2.3» який призначений для імітації збоїв і аномалій у мережі та системі для перевірки стану програм, коли виникають такі умови.

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

Про Toxiproxy

Цей каркас спеціально розроблений для роботи в тестових середовищах, CI та розробка, а також підтримує детерміновані маніпуляції з'єднаннями, але з підтримкою випадкового хаосу та налаштування.

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

Застосування токсикопроксі складається з двох частин. Проксі-сервер TCP, написаний на Go (що містить цей репозиторій), і клієнт, який спілкується з проксі-сервером через HTTP. Це налаштовує програму так, щоб усі тестові з’єднання проходили через Toxiproxy, а потім могли маніпулювати їхнім статусом через HTTP.

Іншими словами, проксі запускається між програмою, що тестується, і мережевою службою, з якою ця програма взаємодіє, після чого можна змоделювати настання певної затримки при отриманні відповіді від сервера або відправленні запиту, змінити пропускну здатність, змоделювати відмову приймати з'єднання, перервати нормальний хід встановлення або закриття з'єднань, відновити встановлені з'єднання, спотворити вміст пакетів.

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

Для зміни характеристик каналу зв’язку без внесення змін до коду можна використовувати спеціальну утиліту toxiproxy-cli (Підбачається, що API Toxiproxy буде використовуватися в модульних тестах, а утиліта може бути корисною для інтерактивних експериментів).

Що нового в Toxiproxy 2.3?

Що стосується змін, які включені в нову випущену версію, згадується, що є включення контролера кінцевої точки клієнта для HTTPS.

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

На додаток до цього також виділяється підтримка платформ 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

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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.