Meu Primeiro projeto de Automação usando Ruby, Capybara, SitePrism, usando o conceito de Pages Object. Não temos nenhum Sleep fixo no projeto, tudo é feito de forma dinâmica, alguns parâmetros são passado via o comando do cucumber no cmd ou shell e os outros estão na tabela na feature, não utilizamos xpath nesse projeto somente ID e CSS Selector, como boa prática procurei deixar o projeto relativamente simples.
Apesar de o projeto não ter nenhum sleep fixo e somente ID, Class e CSS, não gostei muito do projeto, tenho que passar um monte de paramêtro via cucumber, parece coisa de amador. Por isso criei uma tag 1.0, e vou trabalhar na tag 2.0 que vai passar os dados todos pelo banco e se quiser sobrescrever os dados manda via paramêtro.
To install bundler type:
gem install bundler
Gems necessário para rodar os testes: source 'https://rubygems.org'
gem 'capybara' gem 'cucumber' gem 'rake' gem 'selenium-webdriver' gem 'site_prism' gem 'rspec' gem 'rspec-retry'
Primeiro Passo entrar na pasta do projeto via cmd ou shell e instalar as gems com o comando:
bundle install
Baixa os drivers e colocar no c: da maquina: https://www.dropbox.com/s/midwh10jy8p7e6o/drivers.zip?dl=0
- Cadastro de novo usuário;
- Login e Logout;
- Cotação de proposta via detalhes.
USER => Nome Completo do Usuario.
EMAIL => Email do Usuário.
PASS => Senha para efetuar o login.
CPF => CPF para confirmação da cotação.
NASC => Data de Nacismento do Usuário.
@cadastro -> Executa o teste da feature Realizar Cadastro de Novos Usuários.
@login_logout -> Executa o teste da feature Realizar Testes de Login e Logout do Usuário.
@cotacao -> Executa o teste de feature Solicitação de Proposta de Seguros.
EXEMPLO DE COMANDO LOGIN:
cucumber -t @login_logout BROWSER=chrome --format html --out=reports/features_report.html
EXEMPLO DE COMANDO CADASTRO:
cucumber -t @cadastro BROWSER=chrome USER="Nome do Usuário" [email protected] PASS=senha8caracteres --format html --out=reports/features_report.html
EXEMPLO DE COMANDO SOLICITAÇÃO DE PROPOSTA:
cucumber -t @cotacao BROWSER=chrome NASC=03101980 CPF=18530249100 --format html --out=reports/features_report.html
EXEMPLO DE COMANDO TESTAR TUDO:
cucumber USER="Nome do Usuário" [email protected] PASS=senha8caracteres NASC=03101980 CPF=18530249100 --format html --out=reports/features_report.html
firefox versão: 51.0
chrome versão: 56.0
Para adicionar o report adicione o comando abaixo no final dos comandos, esse é o report HTML:
--format html --out=features_report.html
- Se passar os dados invalidos vai dar erro pois ele confere o CPF, NOME, NASCIMENTO.
DataBase com dados secretos, como ele vai cadastrar multiplos valores vai criar um array. Somente usei Banco de Dados, pra mostrar que os dados não precisam ficar fixo na feature, é muito melhor trabalhar com o banco ao invés de criar aquele tabelão no BDD.
CREATE TABLE `user` (
`iduser` int(11) NOT NULL,
`nome` varchar(145) NOT NULL,
`sobrenome` varchar(145) DEFAULT NULL,
`login` varchar(45) NOT NULL,
`password` varchar(45) NOT NULL,
`perfil` varchar(45) DEFAULT NULL,
`email` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Exemplo de uma Feature usando boas práticas no caso do step "selecionar a opcao cadastra-se e preencher os dados.", existe vários steps tenho de um, somente pra ficar fácil de ler o BDD.
# language: pt
@cadastro
Funcionalidade: Cadastro de Usuario.
Como usuario novo
Desejo criar um cadastro na Youse
Para poder contratar um seguro
Cenario: Novo Cadastro
Dado que eu esteja no site da Youse.
E clicar em Minha Conta.
E selecionar a opcao cadastra-se e preencher os dados.
E enviar o cadastro realizado.
Então validar o acessar do usuario.