Um projeto simples usando Serenity BDD desenvolvido para testes backend.

Overview

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 [email protected]: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


You might also like...

The MAVLink parser for the Telestion backend.

telestion-extension-template A template for creating new Telestion extensions. This template contains an initialized project structure with configured

Dec 14, 2021

the mock backend for frontend applications

mockend the "mock backend" for Single Page Applications (SPAs) / Progressive Web Applications (PWAs). mockend was used to implement the "unidirectiona

Nov 2, 2022

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

Um projeto simples usando Serenity BDD desenvolvido para testes backend.

🚧 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 documen

Aug 30, 2022

Projeto criado para teste de uso de arquitetura hexagonal. Usando testes integrados e relatório de cobertura de testes. Banco MongoDB com objetos dentro de objetos.

NotasBackEndJavaHexagonal Projeto criado para teste de uso de arquitetura hexagonal. Usando testes integrados e relatório de cobertura de testes. Banc

Jan 27, 2022

Projeto desenvolvido durante a semana Spring React , onde utilizamos Netlify e Heroku para subir o projeto na nuvem

Projeto desenvolvido durante a semana Spring React , onde utilizamos  Netlify e Heroku para subir o projeto na nuvem

projeto-sds3 BACKEND DO PROJETO - https://sds3-backend-guilhermepontes.herokuapp.com/ FRONT END DO PROJETO - https://sds3-guilhermepontes2.netlify.a

Aug 18, 2021

Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.

Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.

That feeling you get when you know you can trust your tests Serenity BDD is a library designed to make writing automated acceptance tests easier, and

Dec 28, 2022

Projeto desenvolvido para explicar os conceitos de SOLID - Palestra TDC

Projeto desenvolvido para explicar os conceitos de SOLID - Palestra TDC

SOLID Geek Projeto desenvolvido para explicar os conceitos do SOLID e Orientação a Objetos. Neste repositório temos uma aplicação desenvolvida utiliza

May 31, 2022

Este é um projeto Maven que contém vários métodos e classes criados, além de vários testes unitários. Os métodos desse projeto não contém uma implementação de fato, sendo assim você desenvolvedor(a) deverá escreve-lo.

Complete o código em Java O projeto tem como objetivo auxiliar aqueles que estão iniciando sua jornada em programação, mais precisamente, em Java. Est

Nov 3, 2022

Projeto desenvolvido durante a Semana Spring React da DevSuperior

Projeto DSVendas Projeto desenvolvido durante a Semana Spring React da DevSuperior 3, ministrado por Nélio Alves. O evento ocorreu entre 03.05.21 à 09

May 8, 2021

Java - Projeto desenvolvido na disciplina de POO - FATEC Sorocaba

Java - Projeto desenvolvido na disciplina de POO - FATEC Sorocaba

Projeto CRUD Emissor de Pedidos - Java ☕ Trabalho desenvolvido na disciplina de POO 🚀 Faculdade: FATEC Sorocaba. 4° Semestre - 06/2022 🛠 Tecnologi

Oct 10, 2022

Distributed-messenger - 👨‍👨‍👧 Sistema de chat utilizando sockets desenvolvido para a disciplina de Sistemas Paralelos e Distribuídos

Distributed Messenger 👨‍👨‍👧 Sistema de chat utilizando sockets desenvolvido para a disciplina de Sistemas Paralelos e Distribuídos Requisitos do Pr

Feb 19, 2022

Repositório referente ao código de uma classe data, com testes JUNIT, classe de exceção própria e classe aplicação para demonstrar as diversas funcionalidades da classe data

Exercicio-Data Repositório referente ao código de uma classe data, com testes JUNIT, classe de exceção própria e classe aplicação para demonstrar as d

May 4, 2021

Escrevendo Testes para o Blog Pessoal

Escrevendo Testes para o Blog Pessoal

Implementando testes com o Spring Testing no Blog Pessoal Nesta atividade iremos implementar os testes nas Camadas Model, Repository e Controller da C

Dec 12, 2022

Você poderá criar placeholders de forma bem mais simples.

Você poderá criar placeholders de forma bem mais simples.

SimplePlaceHolder Você poderá criar placeholders de forma bem mais simples. Como faço pra ultilizar? Primeiramente, instale a biblioteca. Logo em segu

May 16, 2022

Meu primeiro banco MySQL usando JPA

Árvore binária de busca Meus primeiros passos com MySQL e JPA Objetivo Autor Funcionalidades Status do projeto Como usar Objetivo Este CRUD de imóveis

Sep 27, 2021

Aula sobre segurança no kafka usando SSL

Aula sobre segurança no kafka usando SSL

Kafka4Devs - Segurança no Kafka com SSL Você sabe o que acontece por debaixo dos panos de uma aplicação segura? Sabe como empresas grandes que utiliza

Feb 28, 2022

Projeto de LAB: Conhendo o projeto Spring data JPA com Java na prática

Conhecendo o Projeto Spring Data JPA na Prática Sejam bem-vindos ao projeto de LAB Conhecendo o Projeto Spring Data JPA na Prática oferecido gratuitam

Dec 31, 2022

Projeto para consulta de filmes na API data IMDB e construção de playlists.

Projeto para consulta de filmes na API data IMDB e construção de playlists.

Projeto IDP: Filmes API ✍️ API Requirements Must to have Comunicar com uma API externa (desenvolvida pelo colaborador ou por terceiros). Persistir dad

Oct 9, 2022

Projeto de demonstração em JAVA, para administração e controle de um estacionamento

projetoEstacionamento Projeto de demonstração em JAVA, para administração e controle de um estacionamento: Este software de demonstração tem como obje

Sep 22, 2022
Owner
null
Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.

That feeling you get when you know you can trust your tests Serenity BDD is a library designed to make writing automated acceptance tests easier, and

Serenity BDD 654 Dec 28, 2022
Este é um projeto Maven que contém vários métodos e classes criados, além de vários testes unitários. Os métodos desse projeto não contém uma implementação de fato, sendo assim você desenvolvedor(a) deverá escreve-lo.

Complete o código em Java O projeto tem como objetivo auxiliar aqueles que estão iniciando sua jornada em programação, mais precisamente, em Java. Est

Felix Gilioli 44 Nov 3, 2022
Library that allows tests written in Java to follow the BDD style introduced by RSpec and Jasmine.

J8Spec J8Spec is a library that allows tests written in Java to follow the BDD style introduced by RSpec and Jasmine. More details here: j8spec.github

J8Spec 45 Feb 17, 2022
Testes unitários em Java utilizando JUnit 5

Testes unitários em Java utilizando JUnit Este curso tem como objetivo habilitar o(a) aluno(a) a testar soluções desenvolvidas na linguagem Java, torn

Camila Cavalcante 3 Jan 18, 2022
A BDD-style test runner for Java 8. Inspired by Jasmine, RSpec, and Cucumber.

Spectrum A colorful BDD-style test runner for Java Spectrum is inspired by the behavior-driven testing frameworks Jasmine and RSpec, bringing their ex

Greg Haskins 143 Nov 22, 2022
Testes unitários em Java utilizando JUnit

Testes unitários em Java utilizando JUnit Este curso tem como objetivo habilitar o(a) aluno(a) a testar soluções desenvolvidas na linguagem Java, torn

Camila Cavalcante 6 Nov 8, 2022
BDD framework for automation using Selenium Cucumber and TestNg

Selenium Framework with Cucumber BDD framework for automation using Selenium Cucumber and TestNg The framework has following features Modular Design M

null 3 Jan 20, 2022
Master Selenium Framework BDD

Automation Testing | Web | API | Atomic Tests | Cucumber | Java | OOPS | Selenium WebDriver | TestNG | Maven | Cucumber Reports | Java mail API | Design Patterns (Page Object Model, Singleton) | Jenkins

Rajat Verma 38 Dec 14, 2022
Testes unitários em Java utilizando JUnit

Testes unitários em Java utilizando JUnit Este curso tem como objetivo habilitar o(a) aluno(a) a testar soluções desenvolvidas na linguagem Java, torn

Camila Cavalcante 11 Oct 13, 2022
Framework for Mobile test automation using Appium with Java - BDD

appium-mobile-automation-framework-bdd Mobile automation framework using appium - BDD ?? Quick Start - Appium set up on Windows (Android): Install Jav

Thangaraj 18 Oct 19, 2022