-
Notifications
You must be signed in to change notification settings - Fork 45
Tutorial para Teste de Aceitação Python Django com Selenium
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.
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
13- Para criar as suas próprias steps crie o arquivo steps.py que deve comecar da seguinte forma:
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
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
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:
6- Por fim, criar um arquivo chamado teste.feature
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
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
5- Criar a função no arquivo views do app user:
6- Alterar o arquivo urls da pasta de configuração do projeto para:
7- Editar o arquivo steps na pasta steps criada na parte 2 desse tutorial
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/
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:
EPS/MDS - FGA/UnB
Métodos de Desenvolvimento de Software
Gestão de Portfólio e Projetos de Software
RUP (Rational Unified Process)
Fase Elaboração (RUP) Planejamento(PMBOK)
Fase de Construção (RUP), Execução/Monitoramente e Controle (PMBOK)
Fase Transição (RUP), Finalização (PMBOK)
Acceptance Test Driven Development (ATDD)
Integração Contínua Deploy Contínuo
Automação de Ambiente com Docker
Orquestração de Containers com Docker Compose
Automação de Ambiente com Vagrant
Deploy Contínuo na Plataforma Heroku
Integração Contínua com Travis CI
Disponibilizando a Aplicação com o Proxy Reverso Nginx
Tutorial de Instalação do Ionic
Android Integração contínua com Circle CI
Configuração de Ambiente para React Native
Tutorial Instalação Ruby on Rails
Teste Automatizado Cucumber JS
Teste Automatizado Cucumber Rails
Testando AngularJS com Jasmine
Teste Automatizado com Selenium IDE
Configurar o SonarCloud para um projeto usando Jest
Configurar o SonarCloud para um projeto usando Pytest
Configurar o SonarCloud para um projeto usando Mocha e Istambul