Toxiproxy, framework do symulacji warunków sieciowych w środowiskach testowych

Shopify, która rozwija jedną z największych i najpopularniejszych platform e-commerce w sieci, dio ogłosiło niedawno, że wydało nową wersję serwera proxy „Toxiproxy 2.3” który jest przeznaczony do symulacji awarii i anomalii sieci i systemu w celu przetestowania kondycji aplikacji w przypadku wystąpienia takich warunków.

Program wyróżnia się dostarczaniem API do dynamicznej zmiany charakterystyk kanału komunikacyjnego, które może być wykorzystane do integracji Toxiproxy z systemami testów jednostkowych, oprócz tego, że posiada również wsparcie dla platform ciągłej integracji i środowisk programistycznych.

O Toxiproxy

Te ramy Jest specjalnie zaprojektowany do pracy w środowiskach testowych, CI i rozwój oraz obsługuje deterministyczną manipulację połączeniami, ale z obsługą losowego chaosu i dostosowywania.

Zasadniczo Toxiproxy pozycjonuje się jako narzędzie że wszyscy, którzy wymagają przeprowadzić testy demonstracyjne aplikacji, które nie mają pojedynczych punktów awarii. Toxiproxy jest z powodzeniem używane we wszystkich środowiskach programistycznych i testowych w Shopify od października 2014 r.

Stosowanie toxiproxy składa się z dwóch części. Serwer proxy TCP napisany w Go (co zawiera to repozytorium) oraz klient, który komunikuje się z serwerem proxy przez HTTP. Spowoduje to skonfigurowanie aplikacji w taki sposób, aby wszystkie połączenia testowe przechodziły przez Toxiproxy, a następnie mogły manipulować jej stanem przez HTTP.

Innymi słowy pełnomocnik jest wrzucany pomiędzy testowaną aplikację a usługę sieciową, z którą ta aplikacja współpracuje, po którym można zasymulować wystąpienie określonego opóźnienia w otrzymaniu odpowiedzi z serwera lub wysłaniu żądania, zmienić przepustowość, zasymulować odmowę przyjęcia połączenia, przerwać normalny przebieg nawiązania lub zamknięcia połączenia, zresetować nawiązane połączenia, zniekształcić zawartość pakietów.

Aby sterować działaniem serwera proxy z poziomu aplikacji, udostępniane są biblioteki klienckie dla Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust i Elixir, które umożliwiają dostosowanie warunków interakcji zmienić sieć w locie i natychmiast ocenić wynik.

Aby zmienić charakterystykę kanału komunikacyjnego bez wprowadzania jakichkolwiek zmian w kodzie, można użyć specjalnego narzędzia toxiproxy-cli (API Toxiproxy ma być używane w testach jednostkowych, a narzędzie może być przydatne do eksperymentów interaktywnych).

Co nowego w Toxiproxy 2.3?

Jeśli chodzi o zmiany zawarte w nowej wydanej wersji, wspomniano, że istnieje włączenie kontrolera punktu końcowego klienta dla HTTPS.

Oprócz rozdzielenia typowych kontrolerów testowych na osobne pliki, implementacja API client.Populate.

Oprócz tego podkreślono również obsługę platform armv7 i armv6 oraz możliwość zmiany poziomu logowania dla serwera.

Zainstaluj Toxiproxy w systemie Linux

Dla tych, którzy są zainteresowani możliwością zainstalowania tego frameworka, aby móc przeprowadzić swoje testy, mogą to zrobić wykonując kroki, które udostępniamy poniżej.

Jeśli jesteś użytkownikiem Debian, Ubuntu lub jakakolwiek inna dystrybucja oparta na nich, Możesz przeprowadzić instalację, otwierając terminal (możesz użyć skrótu klawiaturowego Ctrl + Alt + T) i wpiszesz w nim:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.deb

I przystępujemy do instalacji za pomocą:
sudo apt install ./toxiproxy_2.3.0_linux_amd64.deb

W przypadku tych, którzy są użytkownicy dystrybucji z obsługą pakietów RPM, takich jak między innymi Fedora, openSuse, RHEL, pakiet, który należy pobrać, jest następujący:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.rpm

I zainstaluj pakiet, wpisując:
sudo rpm -i toxiproxy_2.3.0_linux_amd64.rpm

Po zakończeniu instalacji możesz uruchomić usługę, wykonując następujące polecenie w terminalu:
sudo service toxiproxy start

Wreszcie, jeśli iCzy chcesz dowiedzieć się więcej na ten temat? powinieneś wiedzieć, że kod Toxiproxy jest napisany w Go i posiada licencję MIT i możesz zapoznać się z instrukcją obsługi tego frameworka w następujący link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.