Git Product home page Git Product logo

first_project_ruby_cucumber's Introduction

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.

Instalação das Gems é necessário instalar primeiro o bundler

To install bundler type:

gem install bundler
Gems que vão ser instaladas

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'

Installing gems

Primeiro Passo entrar na pasta do projeto via cmd ou shell e instalar as gems com o comando:

bundle install

Drivers:

Baixa os drivers e colocar no c: da maquina: https://www.dropbox.com/s/midwh10jy8p7e6o/drivers.zip?dl=0

Automação de testes funcionais do site da Youse:

  • Cadastro de novo usuário;
  • Login e Logout;
  • Cotação de proposta via detalhes.

PARAMETROS NECESSÁRIOS PARA EXECUÇÃO:

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.

TAGS:

@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

Ambiente Testado Windows 10 x64 e Linux Mint x64

Versões de Browser:#

firefox versão: 51.0
chrome versão: 56.0

HTML Report###

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.

first_project_ruby_cucumber's People

Contributors

reinaldorossetti avatar reiload-master avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.