Resumo dos Webinars de 28/04: Testes de Performance com Taurus e Mobile CI

Na última terça-feira (28/04), ocorreram dois webinars:

  • How to Scale Test Automation with Jenkins and JMeter
  • Best Practices in Mobile CI

Vou descrever abaixo um resumo de ambos, juntamente do link para o vídeo/slides. :)


How to Scale Test Automation with Jenkins and JMeter

Nesse Webinar, o Ophir Prusak (BlazeMeter) mostrou o novo framework Taurus, desenvolvido pela equipe do BlazeMeter.

PS: O nome Taurus significa "Test automation running smoothly".

O que é o Taurus?

O Taurus:

  • Simplifica a automação de testes de performance
  • Utiliza JMeter, Gatling e Grinder como engines
  • É open source :)

Exemplo:

Taurus JMeter Website
Test Scenarios/Criteria/Reporting/Analysis HTTP Requests / Raw Responses Backend (Website/Mobile app/API)
Como funciona?

Testes com o Taurus são descritos em arquivos YAML, formato que possui uma sintaxe muito simples, e que é usado por ferramentas conhecidas como o Travis CI, CircleCI, Ansible, entre outras.

Um exemplo de teste com o Taurus seria:

test_example

Você pode definir um teste usando a sintaxe do Taurus ou pode passar um script do JMeter (.jmx) para que ele execute. Caso use apenas o arquivo .yml, o interessante é que ele gera um arquivo .jmx automaticamente.

Outra coisa MUITO bacana é que você pode conferir a execução e os relatórios dos seus testes em tempo real através da interface do BlazeMeter, sem precisar ter uma conta. Assim que a execução de um teste começa, é gerado no console um link para visualizar em tempo real pelo BlazeMeter.

A documentação do Taurus é bem completa, vale a pena conferir. Acho que também é uma ótima opção para quem estiver começando a mexer com JMeter. :)

Confira o link para a apresentação AQUI


Best Practices in Mobile CI

Esse Webinar foi apresentado pelo Kevin Rohling (Emberlight) e pelo Kristian Meier (SauceLabs), e consistiu em uma discussão sobre desafios de Integração Contínua para apps Mobile, além de uma demonstração do framework Appium para testes mobile multiplataforma.

Alguns pontos abordados na apresentação:

Por que Integração Contínua?
  • Reduzir a necessidade de testes manuais
  • Feedback mais rápido
  • Automatizar TUDO
Mobile é mais difícil...
  • Infraestrutura
  • Compilação/code signing (assinatura)
  • Testes
  • Deploy
Simuladores/Emuladores x Devices

Simuladores

  • Usados pelo iOS, incluídos no Xcode
  • Executam instruções i386 em vez de ARM
  • Muito rápidos, em comparação com Emuladores
  • Não possuem acesso a certas funções de hardware (GPS, Bluetooth, Acelerômetro, etc.)

Emuladores

  • Usados pelo Android, incluídos no Android SDK
  • Executam ARM (ou instruções do device nativo)
  • Muito lentos, em comparação com Simuladores
  • Não possuem acesso a certas funções de hardware (GPS, Bluetooth, Acelerômetro, etc.)

Devices

  • Reproduzem a performance atual que os usuários estão tendo
  • É a única forma de identificar bugs da fabricante
  • Muito caro de se configurar e manter, em comparação com Emuladores/Simuladores
  • Acesso total às funcionalidades de hardware
Quando usar Devices ou Simuladores/Emuladores?

Simuladores/Emuladores:

  • São uma excelente solução para rodar testes automatizados durante o desenvolvimento
  • São baratos e certamente vão identificar vários problemas

Devices:

  • Podem ser usados em uma frequência mais baixa (i.e. pre-release, semanalmente, diariamente, etc.)
  • São a única forma de identificar problemas de performance, de testar determinadas funções de hardware e de descobrir problemas da fabricante
  • No mínimo, devices devem ser usados antes de cada release
Testes

De acordo com um estudo recente:

  • 77% dos devs disseram que a qualidade do app é "muito importante ou crítica"
  • 80% dos devs mobile testam suas apps manualmente
  • 13% dos devs mobile utilizam testes automatizados
Integração Contínua para Mobile

Jenkins

  • Bom: Open source, MUITOS plugins
  • Ruim: self-hosted, solução muito DIY (do it yourself)

Travis CI

  • Bom: hosted, suporte a OS X, diversos plugins
  • Ruim: Processo de setup muito tedioso

Ship.io

  • Bom: hosted, feito especialmente para mobile, setup simples
  • Ruim: menos flexível do que outras soluções

Xcode CI

  • Bom: integrado com Xcode, suporte da Apple
  • Ruim: self-hosted, somente iOS

PS: O Circle CI não foi citado, mas acho que vale a pena mencioná-lo. É uma solução excelente para CI em geral, mas falando de Mobile, ele é ótimo para apps Android (para iOS ainda não tive experiência). ;)

Appium

Foi mostrada uma demo com o Appium. Um link bem útil é o Sauce Platform Configurator, para ajudar a setar as capabilities desejadas nos seus testes (browser, browserVersion, os, osVersion, etc.)

Confira o link para a apresentação/slides AQUI.


Abraços e 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