Sortie de Toxiproxy 2.3, un proxy pour tester la résilience des applications aux problèmes de réseau

Shopify, l'une des plus grandes plateformes de commerce électronique, a publié Toxiproxy 2.3, un serveur proxy conçu pour simuler les pannes et anomalies du réseau et du système afin de tester les performances des applications lorsque de telles conditions se produisent. Le programme se distingue par la fourniture d'une API permettant de modifier dynamiquement les caractéristiques des canaux de communication, qui peut être utilisée pour intégrer Toxiproxy à des systèmes de tests unitaires, des plates-formes d'intégration continue et des environnements de développement. Le code Toxiproxy est écrit en Go et distribué sous licence MIT.

Un proxy s'exécute entre l'application testée et le service réseau avec lequel cette application interagit, après quoi il peut simuler l'apparition d'un certain délai lors de la réception d'une réponse du serveur ou de l'envoi d'une requête, modifier la bande passante, simuler un refus d'accepter des connexions , perturber le déroulement normal de l'établissement ou de la fermeture des connexions, réinitialiser les connexions établies, fausser le contenu des paquets.

Pour contrôler le fonctionnement du serveur proxy à partir des applications, des bibliothèques client sont fournies pour Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust et Elixir, qui vous permettent de modifier l'interaction réseau. conditions à la volée et évaluer immédiatement le résultat. Pour modifier les caractéristiques d'un canal de communication sans apporter de modifications au code, un utilitaire spécial toxiproxy-cli peut être utilisé (on suppose que l'API Toxiproxy est utilisée dans les tests unitaires et que l'utilitaire peut être utile pour mener des expériences interactives).

Parmi les changements apportés à la nouvelle version figurent l'inclusion d'un gestionnaire de point de terminaison client pour HTTPS, la séparation des gestionnaires de test typiques en fichiers séparés, l'implémentation de l'API client.Populate, la prise en charge des plates-formes armv7 et armv6 et la possibilité de modifier le niveau de journalisation du serveur.

Source: opennet.ru

Ajouter un commentaire