Confira como foram os últimos Webinars do SauceLabs/BlazeMeter

Desde o mês passado, recebi e-mails divulgando alguns webinars gratuitos, com conteúdos interessantes, oferecidos pelo SauceLabs e pelo BlazeMeter, e decidi assistí-los. Para quem não conhece, o SauceLabs é um serviço para execução de testes na nuvem, bastante usado para rodar testes com Selenium WebDriver, já que o SauceLabs oferece mais de 500 combinações de browsers/sistemas operacionais. Já o BlazeMeter disponibiliza um serviço de testes de performance/carga na nuvem, utilizando o JMeter.

Durante o último mês, ocorreram três webinars: dois oferecidos pelo SauceLabs e um pelo BlazeMeter:

  • Performance Testing with Real Browsers
  • Decreasing False Positives in Automated Testing
  • Practical Tips & Tricks for Selenium Test Automation

Enquanto assistia os dois primeiros, fiz um resumo dos tópicos abordados, que vou compartilhar com vocês neste post. No terceiro, infelizmente houve uma falha no WebEx, e o webinar teve que ser cancelado. Entretanto, no dia seguinte divulgaram os slides e uma gravação, o que ajudou bastante, já que foi um excelente webinar.

Fique de olho no Twitter do SauceLabs e do BlazeMeter para saber quando irão ocorrer os próximos webinars. No meu Twitter, também costumo divulgar pro pessoal. :)


Performance Testing with Real Browsers

Esse Webinar foi apresentado pelo Ophir Prusak, do BlazeMeter. Nele, foi mostrado como criar testes de performance com o JMeter, mas usando browsers reais, através do plugin do WebDriver. O Ophir mostrou na prática vários exemplos bem bacanas, e ainda ensinou como rodar os testes do JMeter na nuvem, com o BlazeMeter.

Confira o vídeo aqui. Abaixo, vou colocar alguns pontos da apresentação:

JMeter x Browsers

JMeter

  • Atividades definidas por ações HTTP (GET, POST, etc.)
  • Não executa a maior parte da lógica client-side (JavaScript, formulários, etc.)

Browsers

  • Atividades definidas através de ações do usuário
  • Executa ações adicionais, como rodar JavaScript, fazer parse de HTML, saber a lógica de formulários, etc.
Recursos

JMeter

  • 300 a 2000 usuários virtuais por servidor
  • Ex: máquina com 8GB de RAM e 4 cores -> 1000 usuários

Browsers

  • 1 a 3 usuários por core de CPU
  • Ex: máquina com 8GB de RAM e 4 cores -> 4 a 12 usuários
JMeter WebDriver Plugin
Script simples
  • Adicione um Thread Group
  • Adicione o elemento Firefox Driver Config
  • Adicione o WebDriver Sampler
  • Insira seu código com WebDriver
  • Adicione Listeners para debug (View Results Tree, View Results Table, Constant Timer)

Exemplo de script:

var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui)  
var wait = new pkg.WebDriverWait(WDS.browser, 10000)

WDS.sampleResult.sampleStart()  
WDS.browser.get("http://blazedemo.com")  
WDS.sampleResult.sampleEnd()  
Scripts com múltiplos passos
  • Adicione mais WebDriver Samplers -> 1 sampler por página a ser testada
  • Cada sampler continua na mesma sessão
  • Cada iteração da thread inicia uma nova sessão
Tutoriais

Confira os tutoriais:

BlazeMeter
  • Crie seu script com JMeter e faça o debug localmente
  • Faça upload do script para o BlazeMeter e configure os parâmetros da execução
    • Atualmente, o BlazeMeter usa o WebDriver 1.1.2
    • No momento, somente o Firefox é suportado
    • Suporte para Chrome e PhantomJS está em andamento, e deve ser lançado em breve
  • Execute os testes
  • Confira os arquivos de log para verificar possíveis erros

Decreasing False Positives in Automated Testing

Nesse Webinar, o Anand Ramakrishnan, da QASource, falou sobre falsos positivos em testes automatizados. Foi apresentado um estudo de caso da própria QASource com problemas que enfrentaram e algumas abordagens para resolvê-los.

Confira os slides aqui. Abaixo, alguns pontos da apresentação:

Causas potenciais para falsos positivos
  • Confiar na UI no desenvolvimento dos testes
  • Mudança em propriedades dos elementos da UI
  • Ambiente compartilhado
  • Mudança nos dados do teste (ex: um teste que alterou um dado usado por outro teste)
  • Performance lenta
  • Intervenção manual
  • Confiando na sequência de execução dos testes (ordenação)
Impactos na automação
  • Time frustrado
  • Ignorar falhas
  • Risco de não identificar possíveis bugs
  • Perda de tempo em investigar falhas
  • Redução de produtividade
  • Incerteza da estabilidade da aplicação
Estudo de Caso
  • Aplicação complexa, com UI bastante interativa
  • Mais de 2500 test cases
  • Abordagem usando padrão PageObject
  • Vários sistemas operacionais, browsers e ambientes

Desafios

  • Mudanças frequentes na UI
  • Problemas de sincronização
  • Problema de vazamento de memória

Causas raiz

  • Elementos identificados via XPath -> prefira usar id, name ou CSS selector
  • Waits hardcoded -> use abordagem de wait explícito
  • Problema no tearDown dos testes
8 passos para eliminar falsos positivos
  1. Faça deploy das aplicações em configurações ótimas
  2. Use ambientes controlados para automação
    • Não compartilhe dados de teste entre ambientes
    • Use dados controlados para cada ambiente
  3. Mantenha os testes pequenos
    • Quanto maiores os testes, mais frágeis eles se tornam
  4. Mantenha os testes independentes
  5. Prefira usar locators como id, name ou CSS selector
  6. Defina uma abordagem de tear-down
  7. Sincronização dinâmica de objetos
    • NUNCA use Thread.sleep
    • Use waits explícitos
  8. Implemente um recurso de re-execução dos testes
    • Ex: Maven surefire-plugin oferece esse recurso
Benefícios em eliminar falsos positivos
  • Não deixar de identificar possíveis bugs
  • Maior certeza da estabilidade da aplicação
  • Aumento de produtividade
  • Ganho de tempo em não precisar investigar falsos positivos
  • Redução do custo da automação

Practical Tips & Tricks for Selenium Test Automation

Esse Webinar foi apresentado pelo Dave Haeffner (criador do Elemental Selenium, uma newsletter semanal com dicas sobre automação com Selenium). Nele, o Dave mostra as melhores dicas que já estiveram no Elemental Selenium, como:

  • Executando testes de forma headless
  • Testando códigos de status HTTP
  • Testes de carga
  • Checando imagens com links quebrados
  • Testando funcionalidades de "Esqueci minha senha"
  • Trabalhando com Testes A/B
  • Testando download de arquivos
  • Outputs adicionais para debug
  • Testes visuais e cross-browser

Confira o vídeo e os slides da apresentação aqui.


Próximos Webinars

No próximo dia 28/04, terão dois webinars:


E é isso! Até o próximo post :)


Sobre o autor: Stefan Teixeira trabalha como QA Engineer e, desde o final de 2014, tem se aventurado no mundo DevOps. É Bacharel em Ciência da Computação pela UFRJ e MBA em Garantia de Qualidade de Software pela Escola Politécnica da UFRJ. Entusiasta de Testes Automatizados (e de tudo que possa ser automatizado!), Agile Testing e da cultura DevOps.

Contatos: stefanfk@gmail.com | Twitter | LinkedIn


comments powered by Disqus