https://github.com/dvduardo/serenitybdd
Um projeto simples usando Serenity BDD desenvolvido para testes backend.
https://github.com/dvduardo/serenitybdd
automacaodeteste automated-testing cucumber cucumber-java file java json json-file maven readme selenium serenity serenity-aggregate serenity-bdd serenity-cucumber teste tester
Last synced: about 1 month ago
JSON representation
Um projeto simples usando Serenity BDD desenvolvido para testes backend.
- Host: GitHub
- URL: https://github.com/dvduardo/serenitybdd
- Owner: dvduardo
- Created: 2021-09-21T00:13:46.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-12-03T05:39:04.000Z (over 3 years ago)
- Last Synced: 2024-06-13T04:27:06.620Z (11 months ago)
- Topics: automacaodeteste, automated-testing, cucumber, cucumber-java, file, java, json, json-file, maven, readme, selenium, serenity, serenity-aggregate, serenity-bdd, serenity-cucumber, teste, tester
- Language: Java
- Homepage:
- Size: 44.9 KB
- Stars: 10
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
🚧 EM CONSTRUÇÂO 🚧## Um pouco sobre Serenity e o projeto desenvolvido
[Serenity_BDD](https://serenity-bdd.github.io/theserenitybook/latest/index.html#) é 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](https://blog.onedaytesting.com.br/screenplay-pattern/) 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](https://jsonplaceholder.typicode.com/guide/). Temos os
seguintes cenarios de teste, que podem ser facilmente encontrados na
pasta [features](https://github.com/dvduardo/SerenityBDDBasic/blob/master/src/test/resources/features/Test.feature):
Atualização 1.0 ↠ Foram adicionados novos cenarios para recuperar e modificar um arquivo json.```bash
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 | |
E retorna "sucesso"
Entao validar o campo "id" contem o valor inteiro ""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](https://www.java.com/pt-BR/), [Maven](https://maven.apache.org),[Git](https://gitforwindows.org). Além disto é
bom ter um editor para trabalhar com o código como [IntelliJ](https://www.jetbrains.com/pt-br/idea/)#### AGORA VAMOS EXECUTAR DE VERDADE 😀
```bash
# 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```
---
[comment]: <> (## 👨💻 Contribuidores)
[comment]: <> ()
[comment]: <> ( )
[comment]: <> (
David Silva
)[comment]: <> ( )
[comment]: <> ()
## 💪 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
[](https://twitter.com/dvd_uardo) [](https://www.linkedin.com/in/dvduardo/)
[](mailto:[email protected])---
## 📝 Licença
Template do README feito pelo [Thiago Marinho](https://www.linkedin.com/in/tgmarinho/), disponibilizado pela equipe
maravilhosa da [Rocketseat](https://blog.rocketseat.com.br/como-fazer-um-bom-readme/)---