Společnost Shopify, která vyvíjí jednu z největších platforem pro elektronický obchod, zveřejnila vydání proxy serveru Toxiproxy 2.3, určeného k simulaci síťových a systémových selhání a anomálií pro testování funkčnosti aplikací za podobných podmínek. Program se vyznačuje poskytnutím API pro dynamickou změnu vlastností komunikačního kanálu, které lze použít pro integraci Toxiproxy se systémy unit testování, platformami pro kontinuální integraci a vývojovými prostředími. Kód Toxiproxy je napsán v jazyce Go a je distribuován pod licencí MIT.
Proxy se spouští mezi testovanou aplikací a síťovou službou, s níž tato aplikace interaguje, a poté může simulovat určité zpoždění při přijímání odpovědi od serveru nebo odesílání požadavku, měnit propustnost, simulovat selhání při přijímání spojení, narušovat normální průběh ustanovení nebo uzavření spojení, resetovat navázaná spojení, nebo zkreslovat obsah paketů.
Pro správu práce proxy serveru z aplikací jsou k dispozici klientské knihovny pro jazyky Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust a Elixir, které umožňují za běhu měnit podmínky síťové interakce a okamžitě vyhodnocovat výsledek. Pro změnu vlastností komunikačního kanálu bez nutnosti zasahovat do kódu lze použít speciální utilitu toxiproxy-cli (předpokládá se, že API Toxiproxy se používá při unit testech a utilita může být užitečná pro provádění interaktivních experimentů).
Mezi změnami v novém vydání je zahrnutí klientského endpoint handleru pro HTTPS, rozdělení typových testovacích handlerů do samostatných souborů, implementace API client.Populate, podpora platforem armv7 a armv6, možnost změny úrovně logování pro server.
Zdroj: opennet.ru
