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.

Avatar for Luiz Menezes

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