A empresa Shopify, desenvolvedora de uma das maiores plataformas de comércio eletrônico, publicou a versão 2.3 do proxy Toxiproxy, destinada a simular falhas e anomalias de rede e sistema para testar a funcionalidade de aplicativos em condições adversas. O programa se destaca por fornecer uma API para alterar dinamicamente as características da conexão, que pode ser utilizada para integrar o Toxiproxy com sistemas de testes unitários, plataformas de integração contínua e ambientes de desenvolvimento. O código do Toxiproxy é escrito em Go e é distribuído sob a licença MIT.
O proxy é iniciado entre o aplicativo em teste e o serviço de rede com o qual este aplicativo interage, podendo simular a ocorrência de um determinado atraso na resposta de servidor ou no envio de uma solicitação, alterar a largura de banda, simular a recusa de conexões, interromper o fluxo normal de abertura ou fechamento de conexões, redefinir conexões estabelecidas, e distorcer o conteúdo dos pacotes.
Para gerenciar o funcionamento do proxy a partir dos aplicativos, são oferecidas bibliotecas clientes para as linguagens Ruby, Go, Python, C#/ .NET, PHP, JavaScript/Node.js, Java, Haskell, Rust e Elixir, que permitem alterar as condições de interação da rede em tempo real e avaliar imediatamente o resultado. Para modificar as características da conexão sem alterar o código, pode ser utilizada a ferramenta especial toxiproxy-cli (pressupõe-se que a API Toxiproxy seja utilizada em testes unitários, e a ferramenta pode ser útil para a realização de experimentos interativos).
Entre as mudanças na nova versão, destacam-se a inclusão de um endpoint cliente para HTTPS, a separação dos manipuladores de testes padrão em arquivos distintos, a implementação da API client.Populate, suporte para as plataformas armv7 e armv6, e a possibilidade de alterar o nível de registro de logs para o servidor.
Fonte: opennet.ru
