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.