Shopify, dat een van de grootste e-commerceplatforms ter wereld ontwikkelt, heeft versie 2.3 van de Toxiproxy proxyserver gepubliceerd. Deze is ontworpen om netwerk- en systeemstoringen en anomalieƫn te simuleren voor het testen van de functionaliteit van toepassingen onder dergelijke omstandigheden. Het programma is opmerkelijk vanwege de API die dynamische aanpassingen van de kanaalkenmerken mogelijk maakt, en kan worden gebruikt voor integratie met unit-testsystemen, platformen voor continue integratie en ontwikkelomgevingen. De Toxiproxy-code is geschreven in de programmeertaal Go en wordt verspreid onder de MIT-licentie.
De proxy wordt gestart tussen de te testen toepassing en de netservice waarmee deze toepassing interactie heeft, waardoor de proxy bepaalde vertragingen kan simuleren bij het ontvangen van antwoorden van de server of het verzenden van verzoeken, de bandbreedte kan aanpassen, kan simuleren dat verbindingen worden geweigerd, de normale voortgang van het opzetten of sluiten van verbindingen kan verstoren, gevestigde verbindingen kan resetten en de inhoud van pakketten kan vervormen.
Om de werking van de proxyserver vanuit toepassingen te beheren, zijn er clientbibliotheken beschikbaar voor de talen Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust en Elixir. Deze stellen gebruikers in staat om netwerksituaties on-the-fly aan te passen en onmiddellijk de resultaten te evalueren. Voor het wijzigen van de kenmerken van het communicatiekanaal zonder codewijzigingen kan de speciale utiliteit toxiproxy-cli worden gebruikt (ervan uitgaande dat de Toxiproxy API wordt gebruikt in unit-tests, en de utility nuttig kan zijn voor interactieve experimenten).
De wijzigingen in de nieuwe versie omvatten de toevoeging van een client endpoint-handler voor HTTPS, het scheiden van standaard testhandlers in afzonderlijke bestanden, de implementatie van API client.Populate, ondersteuning voor armv7 en armv6 platformen, en de mogelijkheid om het logniveau voor de server aan te passen.
Bron: opennet.ru
