Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testando aplicações web com py.test e selenium

Testando aplicações web com py.test e selenium

Palestra apresentada no RuPy Campinas 2016

Baixe os slides para conseguir clicar e acessar os links que estão no final da apresentação.

Luiz Menezes

June 18, 2016
Tweet

More Decks by Luiz Menezes

Other Decks in Programming

Transcript

  1. Oi! Eu sou o Luiz Estou aqui para falar um

    pouco sobre testes em aplicações web Podem me encontrar por aqui: @luiz_amf github.com/lamenezes
  2. “ Teste de software é um grupo de processos, definidos

    para garantir que um código faz o que ele foi desenhado para fazer, e não faz nada que não foi especificado para fazer. (Myers, Glenford, The art of software testing, 1979)
  3. ▷ Teste caixa-preta ◦ Especificação do programa ▷ Teste caixa-branca

    ◦ Implementação ▷ Teste baseado em defeito ◦ Usam informações de informações históricas sobre defeitos comuns Tipos de testes
  4. ▷ Encontrar erros o quanto antes ▷ Garantir que novas

    mudanças não quebrarão o resto do código ▷ Documentar funcionamento do sistema Benefícios
  5. ▷ Objetivo ◦ Identificar erros de lógica e de programação

    na menor unidade de programação ▷ Unidade ◦ Menor parte testável da aplicação ◦ Funções, métodos e classes Teste de unidade
  6. ▷ Verificar se o programa interage corretamente com o sistema

    para o qual foi projetado ▷ No ambiente de produção (ou similar) ▷ Pode ser feito manualmente Teste de sistema
  7. py.test ▷ Características "pythônicas" do py.test ◦ Não é necessário

    criar subclasses para testes (classes de teste são suportadas) ◦ Casos de testes são só funções ◦ Não é necessário importar o módulo pytest para testes simples ◦ Uso de assert (e não de TestCase.assertEqual etc.)
  8. py.test ▷ Markers ◦ Rodando apenas testes funcionais (lentos): $

    py.test -m "functional" ◦ Rodando todos testes menos os funcionais $ py.test -m "not functional"
  9. py.test ▷ Fixtures ◦ Permite a criação de recursos para

    serem utilizados nos testes ◦ Usados através de injeção de dependência
  10. ▷ pytest-django ◦ Markers: ▪ pytest.mark.django_db ◦ Fixtures: ▪ client

    - django.test.Client ▪ admin_user ▪ live_server py.test
  11. ▷ Exemplo menos simples ◦ Preenchendo os dados de um

    formulário e o submetendo: selenium
  12. ▷ Curso online http://napsol.icmc.usp.br/ats/? q=node/2 ▷ Exemplo de testes usado:

    https://github. com/lamenezes/django-ecom ▷ Curso de python/django abordando testes: https://github.com/opensanca/python- intro Materiais