Skip to content
/ SerenityBDD Public template

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

Notifications You must be signed in to change notification settings

dvduardo/SerenityBDD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub language count Repository size Stargazers Feito pela David

SerenityBDD

🚧 EM CONSTRUÇÂO 🚧

Um pouco sobre Serenity e o projeto desenvolvido

Serenity_BDD é uma biblioteca de código aberto que visa tornar a ideia de documentação viva uma realidade, ajudando você a escrever testes automatizados de aceitação e regressão mais limpos e mais fáceis de manter com mais rapidez. O Serenity também usa os resultados do teste para produzir relatórios narrativos ilustrados que documentam e descrevem o que seu aplicativo faz e como funciona. Ele informa não apenas quais testes foram executados, mas, o que é mais importante, quais requisitos foram testados.

Esse projeto foi desenvolvido para ajudar outros QA's e DEV a entender um pouco mais de como funciona o Serenity BDD juntamente com o ScreenPlay Partner para o desenvolvimento de testes automatizados para backend.


⚙️ Funcionalidades

Basicamente os testes desenvolvidos são bem simples apenas para mostrar a funcionalidade da ferramenta batendo em endpoints publicos disponibilizados pela jsonplaceholder. Temos os seguintes cenarios de teste, que podem ser facilmente encontrados na pasta features:

Atualização 1.0 ↠ Foram adicionados novos cenarios para recuperar e modificar um arquivo json.

  Cenario:Executar uma requisicao POST
    Quando eu criar uma requisicao "post" com sucesso
      | title  | titulo |
      | body   | body   |
      | userId | 1      |
    E retorna "created"
    E validar o campo "id" contem o valor inteiro "101"
    Entao validar os campos
      | title | titulo |
      | body  | body   |


  Esquema do Cenario: Executar uma requisicao GET
    Quando eu criar uma requisicao "get" com sucesso
      | id | <value> |
    E retorna "sucesso"
    Entao validar o campo "id" contem o valor inteiro "<value>"

    Exemplos:
      | value |
      | 1     |
      | 2     |
      | 3     |
      | 4     |

  Cenario: Executar uma requisicao GET com body incorreto
    Quando eu criar uma requisicao "get" com sucesso
      | id | erro |
    Entao retorna "not_found"

  Cenario:Executar uma requisicao PATCH
    Quando eu criar uma requisicao "patch" com sucesso
      | id    | 1     |
      | title | teste |
    E retorna "sucesso"
    Entao validar os campos
      | body | recusandae |

  Cenario:Executar uma requisicao DELETE
    Quando eu criar uma requisicao "delete" com sucesso
      | id | ERRO |
    E retorna "sucesso"

  Cenario:Recuperar json file e utilizando em uma requisicao
    Quando eu recuperar o arquivo e enviar a requisicao
    E retorna "created"
    Entao validar os campos
      | title     | Happy Potter |
      | duration  | 120          |
      | cast.girl | Hermione     |

  Cenario:Recuperar arquivo json e modificar valores dos campos existentes
    Quando eu recuperar o arquivo
    E modificar o campo
      | title    | Novo Filme                  |
      | body     | Nova descricao para o filme |
      | duration | 57                          |
      | userId   | 2                           |
    E eu modificar o campo "cast"."girl" para o valor "Garota da capa vermelha"
    E eu modificar o campo "cast"."scar_boy" para o valor "Jorge"
    E eu enviar a requisicao
    E retorna "created"
    Entao validar os campos
      | title         | Novo Filme                  |
      | body          | Nova descricao para o filme |
      | duration      | 57                          |
      | userId        | 2                           |
      | cast.girl     | Garota da capa vermelha     |
      | cast.scar_boy | Jorge                       |

  Cenario:Recuper arquivo json e remover campos existentes
    Quando eu recuperar o arquivo
    E remover o campo
      | body     |
      | duration |
    E remover o campo cascateado
      | cast | girl        |
      | cast | redhead_boy |
    E eu enviar a requisicao
    E retorna "created"

  Cenario:Recuperar arquivo json e adicionar campos na requisicao
    Quando eu recuperar o arquivo
    E eu adicionar o campo
      | release_year | 2000 |
      | has_sequel   | yes  |
    E eu criar o campo "teste"."subteste" com o valor "1"
    E eu enviar a requisicao
    E retorna "created"
    Entao validar os campos
      | release_year   | 2000 |
      | has_sequel     | yes  |
      | teste.subteste | 1    |

🚀 Como executar o projeto

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Java, Maven,Git. Além disto é bom ter um editor para trabalhar com o código como IntelliJ

AGORA VAMOS EXECUTAR DE VERDADE 😀

# Clone este repositório
$ git clone git@github.com:dvduardo/SerenityBDDBasic.git

# Acesse a pasta do projeto no terminal/cmd
$ cd SerenityBDDBasic

# Instale as dependências e execute os testes
$ mvn clean verify

# Apos a execução com sucesso, acesse a pasta do report do serenity
$ cd target\site\serenity

# Abra o arquivo index.html
$ index.html

💪 Como contribuir para o projeto

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit: git commit -m "feature: mensagem"
  4. Envie as suas alterações: git push origin my-feature

🦸 Autor


David Silva


Twitter Badge Linkedin Badge Gmail Badge


📝 Licença

Template do README feito pelo Thiago Marinho, disponibilizado pela equipe maravilhosa da Rocketseat