Skip to content

Tutorial para Teste de Aceitação Python Django com Selenium

Gustavo Coelho edited this page Nov 17, 2016 · 12 revisions

Introdução

O teste de aceitação é uma parte fundamental para projetos ágeis. Nessa metodologia os testes são escritos em linguagem natural para alinhar as expectativas do cliente e da equipe de desenvolvimento. Os teste de aceitação eram necessariamente - e devem continuar sendo - feitos pelo cliente em um ambiente próximo do de produção, porém, a equipe de desenvolvimento pode implementar esse tipo de teste em código para ser reproduzível e capaz de medir os efeitos de mudanças solicitadas pelo cliente. Algumas ferramentas foram, portanto, desenvolvidas para automatizar a criação de suítes de teste de aceitação. O projeto Aloe permite aos desenvolvedores utilizar linguagem natural para escrever testes que depois são traduzidos em comandos para o selenium. O Aloe permite que novos comandos - chamados steps - sejam criados para se adequar a especificidades do projeto em teste. O selenium, por sua vez, permite que diferentes browser sejam utilizados para se realizar os testes.

O tutorial abaixo irá ensinar como configurar as ferramentas Aloe e selenium para desenvolver testes de aceitação para projetos django. Iremos considerar que o usuário está utilizando um ambiente virtual para projetos python e a versão do python seja superior a 3.4.

Parte 1 - Criando e Instalando Dependências

1- Criar uma pasta para o projeto

2- Iniciar o ambiente virtual

3- Instalar o django no ambiente virtual

4- Criar um projeto

  django-admin startproject example

5- Instalar o selenium, dentro do projeto criado

  pip install selenium

6- Instalar o django_nose

  pip install django_nose

7- Instalar o aloe

  pip install aloe_django

8- Instalar o aloe web driver

  pip install aloe_webdriver

9- Editar o arquivo settings.py e acrescentar o django nose e o aloe django

  INSTALLED_APPS = [
		‘django_nose’
		‘aloe_django’
	       ]

10- Na pasta onde estão as configurações do projeto, criar uma pasta chamada "steps"

  mkdir steps

11- Entrar na pasta criada

  cd steps

12- Criar um arquivo chamado browser.py com o seguinte conteúdo

12

13- Para criar as suas próprias steps crie o arquivo steps.py que deve comecar da seguinte forma:

13

Parte 2 - Desenvolvendo os Testes de Aceitação

Obs: Para o desenvolvimento do exemplo foi criado um novo app e uma página inicial personalizada para que se possa desenvolver um teste como exemplo. Em seguida será criada uma step personalizada para o usuário se familiarizar.

1- Voltar para a pasta do projeto onde se encontra o arquivo de configurações

  cd ..

2- Criar uma pasta com o nome features, e entrar nela

  mkdir features

3- Editar o arquivo init.py para importar o browser

3

Obs: o projeto usado como exemplo tem o nome example. Esse nome deve ser trocado pelo nome que você escolheu para o seu projeto.

4- Criar um arquivo views na pasta do projeto. No exemplo na pasta "example" com o seguinte conteúdo

4

Obs: como o projeto se chama example o arquivo views.py acima será criado na mesma pasta que contém o arquivo settings.

5- Alterar o arquivo urls.py da pasta do projeto. Como no exemplo a seguir:

5

6- Por fim, criar um arquivo chamado teste.feature

6

7- Criar as migrações necessárias

  python manage.py makemigrations

8- Migrar o banco de dados

  python manage.py migrate

9- Rodar os testes

  python manage.py harvest

Parte 3 - Criando seus Próprios steps

Obs: Para esse exemplo será criado um app novo e um step que insere um texto em um determinado campo.

1- Entrar na pasta onde se encontra o arquivo manage.py

2- Criar um novo app chamado user

  python manage.py startapp user

3- Criar as pastas user/templates/user

  mkdir -p user/templates/user

4- Criar o seguinte template como o nome de mystep.html

3_4

5- Criar a função no arquivo views do app user: 3_5

6- Alterar o arquivo urls da pasta de configuração do projeto para: 3_6

7- Editar o arquivo steps na pasta steps criada na parte 2 desse tutorial 3_7

8- Criar a pasta user/features/

  mkdir user/features

9- Copiar o arquivo __init__py da pasta features criada na parte 2 desse tutorial

10- Criar um teste na pastas /user/fetatures/ 3_10

11- Rodar os testes

  python manage.py harvest -v 3 user/features/mystep.feature

Obs: O comando utilizou a flag v para gerar um output mais verboso, também, foi passado o arquivo dos testes funcionais para se evitar rodar testes desnecessários.

A saída deve ser parecida com a imagem abaixo: 3_11

Clone this wiki locally