Automatizando seus testes com
Robot Framework
Claudenir Freitas
claudenir.machado@sensedia.com
Walter Moscardini
walter.moscardini@sensedia.com
1
Claudenir Freitas
claudenir.machado@sensedia.com
@claudenir_cf
Walter Moscardini
walter.moscardini@sensedia.com
@walter_jpm
Where we come from
Campinas-SP São Paulo-SP Rio de Janeiro-RJ
Sensedia no mundo
4
Automatizando seus testes com Robot Framework
Contexto Conclusão
Conhecendo o Robot
Framework
Contexto
6
Por quê desenvolvemos software?
7
Contexto
8
Contexto
9
Por quê automatizar?
10
● Tirar a sobrecarga da equipe de QA
● Evitar trabalho manual
○ Economia de tempo e mão de obra
○ Minimização de erros
○ Feedback mais rápido
● Consistência nos testes de regressão
Por quê automatizar?
11
O que é uma API?
12
Application Programming Interface
“A ideia das APIs é Descomplicar, provendo um
mecanismo simples, seguro, escalável para um
desenvolvedor construir suas soluções
desacopladas no menor tempo possível.
13
API
14
Microserviços
15
Contexto
WEB
UI
EMAIL
Adapter
URA
Adapter
Pagamentos
Adapter
Clientes
Pacotes
Reservas
Avaliações
Recomendações
PagamentosNotificações
DB
Adapter
REST
API
Plataforma de
Viagem
Contexto
17
Clientes
Pacotes
Reservas
Avaliações
Recomendações
Pagamentos
Notificações
Pagamentos
Adapter
URA
Adapter
EMAIL
Adapter
API
Gateway
REST
API
REST
API
REST
API
REST
API
REST
API
REST/AMPQ
API
REST/AMQP
API
WEB
UI
Plataforma de
Viagem
O que é a Pirâmide de Testes?
18
Pirâmide de testes
19
Mike Cohn, Succeeding with Agile.
Pirâmide de testes - UI
20
Teste de unidade
Pirâmide de testes - Service
21
Teste de contrato
Teste de integração
Teste de regressão
Teste de stress
Pirâmide de testes - UI
22
Testes funcionais
Testes de aceitação
Conhecendo o Robot Framework
23
● Framework genérico para automação de testes
○ ATDD
● abordagem de teste direcionada por keywords
● testes podem ser estendidos usando Python ou Java
● open source, desenvolvido inicialmente pela Nokia Networks
Conhecendo o Robot Framework
24
A estrutura dos testes “.robot”
25
A estrutura dos testes “.robot” - Settings
26
● Test Setup
○ Executado antes de cada teste
● Test Teardown
○ Executado obrigatoriamente ao final de cada teste
○ Pode ser especificado um teardown diferente para um teste
○ Pode ser especificado um teardown vazio para um teste
A estrutura dos testes “.robot” - Variables
27
A estrutura dos testes “.robot” - Test Case
28
● Tendência a agrupar testes do mesmo contexto
● Reaproveitar keywords
● Evitar o retrabalho
● Enfatizar a padronização
A estrutura dos testes “.robot” - Keywords
29
A estrutura dos testes “.robot” - Keywords
30
A estrutura dos testes “.robot” - Exemplo if else
31
if (${INTERVAL} == SECOND) {
if (${RATE_LIMIT_HEADER} == true) { … }
if (${RATE_LIMIT_HEADER} == false) { … }
} if (${INTERVAL} != SECOND) {
if (${SOFT} == true) { … }
if (${SOFT} == false) { … }
}
Executando e analisando o teste
32
Executando o teste
33
robot -d “diretório de logs” teste.robot
robot -d “diretório de logs” */
Analisando o teste - Arquivo de log
34
Analisando o teste - Arquivo de log - USR02
35
Analisando o teste - Arquivo de log - USR20
36
Conclusão
37
● Testes de aceitação evidenciam as regras de negócios
● Automatizando esse ponto, o teste de regressão tende a ser executado mais rápido
● Possibilidade de trazer à tona inconsistências entre front-end e back-end
● Bem como revelar potenciais vulnerabilidades e gargalos
Conclusão
38
Developers vs. Testers
39
Claudenir Freitas
claudenir.machado@sensedia.com
Walter Moscardini
walter.moscardini@sensedia.com
+55 19 3705-5775
Obrigado!
40

Automatizando seus testes com robot framework

Notas do Editor

  • #9 time atuando com foco na satisfação do cliente;
  • #13 cola digital acelerar parcerias simplificar integrações de sistemas impulsionar inovação aberta criar novos negócios
  • #18 Vantagens escolha a tecnologia para cada tipo de problema testes rápidos com escopo fechado desempenho entrega contínua - apresentar o contexto do Netflix uso de boas práticas, positivo > negativo Desvantagens série de competências complexidade no time de operações
  • #20 focar no usuário
  • #21 focar no usuário
  • #22 focar no usuário
  • #23 focar no usuário
  • #25 ATDD - Desenvolvimento Orientado a Testes de Aceitação - debater | desenvolver | revisar | refinar contexto ágil - todo o time se movendo para entregar a funcionalidade de forma funcional e coesa mencionar o motivo de optar por Python