Os testes contínuos e a integração contínua são as melhores maneiras de garantir que o seu produto seja executado de forma otimizada. O teste de carga com o JMeter ou outras ferramentas e testes de browser com Selenium podem ser integrados ao ciclo de CI. Este post abordará como automatizar esses testes e baseia-se na palestra de Alon Girmonsky, CEO do BlazeMeter, no Jenkins World 2016, que você pode ver neste link (em inglês).
Taurus, um framework de automação de teste de código aberto, pode ajudar a automatizar ferramentas de código aberto como JMeter, Selenium, The Grinder (http://grinder.sourceforge.net), Gatling, Locust e Siege. Isso permite executar testes automaticamente e em paralelo para uma melhor cobertura dos mesmos. Se executarmos os testes funcionais e de carga na nuvem, também será possível visualizar e analisar os resultados de teste para JMeter e Selenium através de relatórios detalhados e identificar problemas e tendências.
Algumas palavras sobre o Taurus: trata-se de uma ferramenta de linha de comando que permite definir o universo de teste usando YAML, que é uma linguagem legível e gravável, ou através do formato JSON. O Taurus constrói e executa os testes em tempo real através de um arquivo de configuração e, em seguida, analisa e comunica os resultados. O Taurus suporta vários locais de nuvens de diferentes fornecedores: Amazon AWS, Google, Azure etc.
E como tudo isso funciona? Vamos ao exemplo prático:
1. Baixe o Taurus.
2. Crie ou importe dois scripts (um para o Selenium, que automatiza o navegador, e um para os comandos JMeter) para obter escalas. Se incluir limites ao teste, eles serão exibidos na interface local do Taurus quando os resultados estiverem disponíveis.
Os scripts:
--- execution: - executor: selenium concurrency: 1 hold-for: 5m ramp-up: 10s locations: us-east-1: 1 us-west-1: 1 us-west-2: 1 eu-west-1: 1 eu-central-1: 1 scenario: Thread Group scenarios: Thread Group: requests: - label: blazedemo method: GET url: http://www.blazedemo.com/ services: - module: passfail criteria: - avg-rt of blazedemo>150ms for 30s, stop as failed --- execution: - executor: jmeter concurrency: 20 hold-for: 5m ramp-up: 60s locations: us-east-1: 1 us-west-1: 1 us-west-2: 1 eu-west-1: 1 eu-central-1: 1 scenario: Thread Group scenarios: Thread Group: requests: - label: blazedemo_jmeter method: GET url: http://blazedemo.com/ - body: fromPort: Paris toPort: Buenos Aires label: reserve method: POST url: http://blazedemo.com/reserve.php
3. Execute o teste localmente primeiro para garantir que ele seja bem executado antes de comitá-lo. Seu navegador provavelmente abrirá muitas vezes durante a execução do teste. Isso é normal.
Ambos os sistemas são operados por Taurus e executados em paralelo na máquina local. Eles podem ser visualizados em tempo real. O painel Taurus para estes dois testes é:
No canto superior direito é possível ver os dois testes rodando em paralelo (JMeter: Thread Group; Selenium: test_requests.py). O Taurus pode executar o Selenium de diferentes linguagens de programação, como Java, Python e Ruby. a linguagem padrão, contudo, é o Python.
No canto superior direito, é exibido o alerta para os critérios de aprovação/reprovação que estão prestes a serem atendidos.
No meio, podemos visualizar as estatísticas cumulativas (para Selenium e JMeter) das solicitações em diferentes KPIs, como latência, tempo de conexão, taxa de erro etc.
4. Agora, execute os testes na nuvem adicionando -cloud à linha de comando. Os testes serão abertos no CA BlazeMeter e executados em paralelo a partir de várias geolocações.
O CA BlazeMeter fornece relatórios detalhados para analisar diferentes correlações de KPI, tendências e descobrir gargalos. Leia mais a respeito aqui.
5. O Taurus pode ser adicionado ao Jenkins através da etapa de construção ‘Execute shell’. Leia mais sobre isso aqui.
Agora você está pronto para automatizar seus testes JMeter e Selenium em paralelo no Taurus e como parte do ciclo de integração contínua. Clique aqui para saber mais sobre o teste de carga com o CA BlazeMeter.
Fonte: DZone.com
Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.