Skip to content

Commit

Permalink
Merge pull request #1 from AndressaKarla/melhorias
Browse files Browse the repository at this point in the history
Algumas melhorias fixtures, workflow, readme, etc
  • Loading branch information
AndressaKarla authored Apr 8, 2024
2 parents 447a21f + 5ca38cd commit 6b6b12e
Show file tree
Hide file tree
Showing 12 changed files with 83 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,26 @@ on:
workflow_dispatch:

jobs:
testes-automatizados-api-serve-rest-ruby:
ruby-api-rest:
# agente de execução/runner do tipo máquina virtual bem enxuta, sem interface gráfica
runs-on: ubuntu-latest

steps:
- name: Passo 1 - Obter cópia do código-fonte do repositório
uses: actions/checkout@v3

- name: Passo 2 - Instalar ruby e Instalar dependências
- name: Passo 2 - Redirecionar os conteúdos de "secrets.USUARIO_ENV", para os arquivos "usuario.json", etc
run: |
echo '${{ secrets.USUARIO_ENV }}' > ./spec/support/fixtures/usuario.json
- name: Passo 3 - Instalar ruby e Instalar dependências
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.2'
# executa o comando bundle install e armazena as gems instaladas automaticamente
bundler-cache: true

- name: Passo 3 - Executar testes automatizados de API REST em um ambiente de desenvolvimento e Gerar relatório html
- name: Passo 4 - Executar testes automatizados de API REST em um ambiente de desenvolvimento e Gerar relatório html
run: bundle exec rspec spec/tests/*

- name: Passo 5 - Armazenar relatório html
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
*.log
Gemfile.lock
Gemfile.lock
spec/support/fixtures/*.json
!spec/support/fixtures/*.example.json
51 changes: 23 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Esse projeto "testes-automatizados-api-serve-rest_ruby" é executado em um ambie
# :dart: Executar testes automatizados de API REST em um ambiente de desenvolvimento, Gerar e armazenar relatório html no GitHub Actions
- Nesse repositório, acessar a aba "Actions"
- Na seção "Actions", clicar em "Pipeline Testes Automatizados API ServeRest Postman"
- Em "This workflow has a workflow_dispatch event trigger.", clicar em "Run workflow" > "Run workflow" para executar testes automatizados de API REST, gerar e armazenar relatório html no GitHub Actions
- Em "This workflow has a workflow_dispatch event trigger.", clicar em "Run workflow" > "Run workflow" para executar testes automatizados de API REST, gerar e armazenar relatório html no GitHub Actions [com os conteúdos de "secrets.USUARIO_ENV", etc (baseado nos arquivos ["usuario.example.json"](https://github.com/AndressaKarla/testes-automatizados-api-serve-rest_ruby/tree/main/spec/support/fixtures/usuario.example.json), etc, e configurados na aba "Settings" desse repositório > "Secrets and variables" > "Actions" > "Secrets" > "Repository secrets") que foram redirecionados para os arquivos "usuario.json"]
- Após o término da execução, clicar na run "Pipeline Testes Automatizados API ServeRest Postman"
- Na seção "Artifacts", clicar em "relatorio-api-serve-rest-ruby"
- Na janela aberta, escolher um diretório para baixar a pasta compactada "relatorio-api-serve-rest-ruby.zip"
Expand Down Expand Up @@ -76,13 +76,6 @@ ruby -v
```
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt]
```


## :hammer_and_wrench: Rspec versão 3.12.0
- No cmder aberto anteriormente, informar o comando abaixo para instalar o rspec versão 3.12.0
```
gem install rspec -v 3.12.0
```
- Fechar esse cmder ou terminal

## :hammer_and_wrench: Baixar, instalar e configurar o git
Expand Down Expand Up @@ -117,7 +110,7 @@ git clone [email protected]:AndressaKarla/testes-automatizados-api-serve-rest_ruby.


## :hammer_and_wrench: Instalar todas as dependências necessárias
- No cmder aberto anteriormente, informar o comando abaixo para acessar o projeto “testes-automatizados-web-front-serve-rest_ruby” clonado anteriormente
- No cmder aberto anteriormente, informar o comando abaixo para acessar o projeto “testes-automatizados-api-serve-rest_ruby” clonado anteriormente
```
cd testes-automatizados-api-serve-rest_ruby
```
Expand All @@ -129,7 +122,6 @@ C:\Users\usuario\Desktop\testes-automatizados-api-serve-rest_ruby
```
bundle install
```
- Fechar esse cmder

## :hammer_and_wrench: Instalar as extensões no Visual Studio Code (VS Code)
- Caso ainda não tenha o VS Code baixado e instalado, acessar o site do [Visual Studio Code](https://code.visualstudio.com/download), baixar e instalar com a opção "System Installer"
Expand All @@ -144,17 +136,29 @@ bundle install
- Material Icon Theme
- Philipp Kief
- Clicar na opção "Material Icon Theme" apresentada para habilitar a extensão
- Ruby
- Peng Lv
- VsCode Ruby
- Stafford Brunk

- Fechar o VS Code

- Simple Ruby ERB
- Victor Ortiz Heredia

## :bookmark_tabs: Abrir o VS Code diretamente na pasta do projeto "testes-automatizados-api-serve-rest_ruby"
- No cmder aberto anteriormente, informar o comando abaixo para abrir o VS Code diretamente na pasta do projeto "testes-automatizados-api-serve-rest_ruby"
```
code .
```
- Aguardar o VS Code ser aberto
- Fechar esse cmder
- No VS Code aberto, caso seja apresentado "Do you trust the authors on the files in this folder?", marcar a opção "Trust the authors of all files in the parent folder ...."
- Clicar no botão "Yes, I trust the authors ...."

## :hammer_and_wrench: Criar arquivos "usuario.json", informando os dados com base nos arquivos "usuario.example.json", etc
- No VS Code aberto anteriormente, acessar "spec > support > fixtures"
- Criar o arquivo "usuario.json"
- Informar os dados com base no arquivo ["usuario.example.json"](https://github.com/AndressaKarla/testes-automatizados-api-serve-rest_ruby/tree/main/spec/support/fixtures/usuario.example.json)
- Salvar o arquivo "usuario.json" com os dados informados anteriormente

---
# :dart: Executar testes automatizados de API REST em um ambiente de desenvolvimento, Gerar e armazenar relatório html no computador
- Abrir uma janela do "Windows Explorer"
- Acessar o diretório onde foi clonado o projeto “testes-automatizados-web-front-serve-rest_ruby”
- Acessar o diretório onde foi clonado o projeto “testes-automatizados-api-serve-rest_ruby”
- Copiar esse diretório
- Abrir um novo cmder
- Informar o comando abaixo para acessar o projeto "testes-automatizados-api-serve-rest_ruby"
Expand All @@ -178,23 +182,14 @@ Ex. 2:
bundle exec rspec spec/tests/delete_usuario_test.rb
```

- Ou informar o comando abaixo para executar todas as features e/ou cenários do projeto (mesmo comando que é utilizado no "Passo 3" da "Pipeline Testes Automatizados API ServeRest Ruby" em ".github > workflows > [workflow-testes-automatizados-api-serve-rest-ruby.yml](https://github.com/AndressaKarla/testes-automatizados-api-serve-rest_ruby/blob/main/.github/workflows/workflow-testes-automatizados-api-serve-rest-ruby.yml)" no GitHub Actions)
- Ou informar o comando abaixo para executar todas as features e/ou cenários do projeto (mesmo comando que é utilizado no "Passo 4" do job "ruby-api-rest" da "Pipeline Testes Automatizados API ServeRest Ruby" em ".github > workflows > [workflow-testes-automatizados-api-serve-rest-ruby.yml](https://github.com/AndressaKarla/testes-automatizados-api-serve-rest_ruby/blob/main/.github/workflows/workflow-testes-automatizados-api-serve-rest-ruby.yml)" no GitHub Actions) e Gerar os resultados dos testes no computador:
```
bundle exec rspec spec/tests/*
```

---
# Verificar no navegador padrão o relatório html gerado anteriormente no computador :female_detective:

## :bookmark_tabs: Abrir o VS Code diretamente na pasta do projeto "testes-automatizados-api-serve-rest_ruby"
- No cmder aberto anteriormente, informar o comando abaixo para abrir o VS Code diretamente na pasta do projeto "testes-automatizados-api-serve-rest_ruby"
```
code .
```
- No VS Code aberto, caso seja apresentado "Do you trust the authors on the files in this folder?", marcar a opção "Trust the authors of all files in the parent folder ...."
- Clicar no botão "Yes, I trust the authors ...."


## :bookmark_tabs: Relatório html no computador
- No VS Code aberto anteriormente, acessar "relatorios > relatorio-api-serve-rest-ruby.html"
- Clicar com botão direito do mouse sob o arquivo "relatorio-api-serve-rest-ruby.html" > "Reveal in File Explorer"
Expand Down
2 changes: 1 addition & 1 deletion spec/requests/login_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ class Login
include HTTParty

def post_login(email, senha)
BaseApi.post('/login', body: { email: email, password: senha }.to_json, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' })
BaseApi.post('/login', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: { email: email, password: senha }.to_json)
end
end
2 changes: 1 addition & 1 deletion spec/requests/produto_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ def gerar_numeros_aleatorios(qtde_numeros)
end

def post_produto(nome, preco, descricao, quantidade, token)
BaseApi.post('/produtos', body: { nome: nome, preco: preco, descricao: descricao, quantidade: quantidade }.to_json, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': token })
BaseApi.post('/produtos', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': token }, body: { nome: nome, preco: preco, descricao: descricao, quantidade: quantidade }.to_json)
end
end
4 changes: 2 additions & 2 deletions spec/requests/usuario_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -223,11 +223,11 @@ def gerar_senha
end

def post_usuario_padrao(nome_sobrenome, email, senha)
BaseApi.post('/usuarios', body: { nome: nome_sobrenome, email: email, password: senha, administrador: "false" }.to_json, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' })
BaseApi.post('/usuarios', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: { nome: nome_sobrenome, email: email, password: senha, administrador: "false" }.to_json)
end

def post_usuario_admin(nome_sobrenome, email, senha)
BaseApi.post('/usuarios', body: { nome: nome_sobrenome, email: email, password: senha, administrador: "true" }.to_json, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' })
BaseApi.post('/usuarios', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: { nome: nome_sobrenome, email: email, password: senha, administrador: "true" }.to_json)
end

def delete_usuario(id)
Expand Down
12 changes: 12 additions & 0 deletions spec/support/fixtures/usuario.example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"admin_valido": {
"nome_sobrenome_valido": "informar-nome-sobrenome-usuario-admin-valido",
"email_valido": "[email protected]",
"senha_valida": "informar-senha-usuario-admin-valido"
},
"padrao_valido": {
"nome_sobrenome_valido": "informar-nome-sobrenome-usuario-padrao-valido",
"email_valido": "[email protected]",
"senha_valida": "informar-senha-usuario-padrao-valido"
}
}
12 changes: 0 additions & 12 deletions spec/support/fixtures/usuario.json

This file was deleted.

14 changes: 7 additions & 7 deletions spec/tests/delete_usuario_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
before(:all) do
@usuario_fixture = carregar_fixture('usuario')

email_usuario_padrao_valido1 = @usuario_fixture['padrao_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido1)
email_usuario_padrao_valido = @usuario_fixture['padrao_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido)

email_usuario_admin_valido1 = @usuario_fixture['admin_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido1)
email_usuario_admin_valido = @usuario_fixture['admin_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido)
end

context "DEL usuario/id (administrador)" do
before(:all) do
@nome_sobrenome = @usuario_fixture['admin_valido1']['nome_sobrenome_valido1']
@email = @usuario_fixture['admin_valido1']['email_valido1']
@senha = @usuario_fixture['admin_valido1']['senha_valida1']
@nome_sobrenome = @usuario_fixture['admin_valido']['nome_sobrenome_valido']
@email = @usuario_fixture['admin_valido']['email_valido']
@senha = @usuario_fixture['admin_valido']['senha_valida']

@json_data_post_usuario = usuario.post_usuario_admin(@nome_sobrenome, @email, @senha)
@id_obtido = @json_data_post_usuario['_id']
Expand Down
20 changes: 10 additions & 10 deletions spec/tests/post_login_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
before(:all) do
@usuario_fixture = carregar_fixture('usuario')

email_usuario_padrao_valido1 = @usuario_fixture['padrao_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido1)
email_usuario_padrao_valido = @usuario_fixture['padrao_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido)

email_usuario_admin_valido1 = @usuario_fixture['admin_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido1)
email_usuario_admin_valido = @usuario_fixture['admin_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido)
end

context "POST login (administrador)" do
before(:all) do
@nome_sobrenome = @usuario_fixture['admin_valido1']['nome_sobrenome_valido1']
@email = @usuario_fixture['admin_valido1']['email_valido1']
@senha = @usuario_fixture['admin_valido1']['senha_valida1']
@nome_sobrenome = @usuario_fixture['admin_valido']['nome_sobrenome_valido']
@email = @usuario_fixture['admin_valido']['email_valido']
@senha = @usuario_fixture['admin_valido']['senha_valida']

@json_data_post_usuario = usuario.post_usuario_admin(@nome_sobrenome, @email, @senha)
@json_data_post_login = login.post_login(@email, @senha)
Expand All @@ -32,9 +32,9 @@

context "POST login (padrão 1)" do
before(:all) do
@nome_sobrenome = @usuario_fixture['padrao_valido1']['nome_sobrenome_valido1']
@email = @usuario_fixture['padrao_valido1']['email_valido1']
@senha = @usuario_fixture['padrao_valido1']['senha_valida1']
@nome_sobrenome = @usuario_fixture['padrao_valido']['nome_sobrenome_valido']
@email = @usuario_fixture['padrao_valido']['email_valido']
@senha = @usuario_fixture['padrao_valido']['senha_valida']

@json_data_post_usuario = usuario.post_usuario_padrao(@nome_sobrenome, @email, @senha)
@json_data_post_login = login.post_login(@email, @senha)
Expand Down
14 changes: 7 additions & 7 deletions spec/tests/post_produto_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
before(:all) do
@usuario_fixture = carregar_fixture('usuario')

email_usuario_padrao_valido1 = @usuario_fixture['padrao_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido1)
email_usuario_padrao_valido = @usuario_fixture['padrao_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido)

email_usuario_admin_valido1 = @usuario_fixture['admin_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido1)
email_usuario_admin_valido = @usuario_fixture['admin_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido)
end

context "POST produto 1" do
before(:all) do
@nome_sobrenome = @usuario_fixture['admin_valido1']['nome_sobrenome_valido1']
@email = @usuario_fixture['admin_valido1']['email_valido1']
@senha = @usuario_fixture['admin_valido1']['senha_valida1']
@nome_sobrenome = @usuario_fixture['admin_valido']['nome_sobrenome_valido']
@email = @usuario_fixture['admin_valido']['email_valido']
@senha = @usuario_fixture['admin_valido']['senha_valida']

@json_data_post_usuario = usuario.post_usuario_admin(@nome_sobrenome, @email, @senha)
@json_data_post_login = login.post_login(@email, @senha)
Expand Down
20 changes: 10 additions & 10 deletions spec/tests/post_usuario_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
before(:all) do
@usuario_fixture = carregar_fixture('usuario')

email_usuario_padrao_valido1 = @usuario_fixture['padrao_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido1)
email_usuario_padrao_valido = @usuario_fixture['padrao_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_padrao_valido)

email_usuario_admin_valido1 = @usuario_fixture['admin_valido1']['email_valido1']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido1)
email_usuario_admin_valido = @usuario_fixture['admin_valido']['email_valido']
obter_por_email_e_excluir_usuario_por_id(email_usuario_admin_valido)
end

context "POST usuario (administrador)" do
before(:all) do
@nome_sobrenome = @usuario_fixture['admin_valido1']['nome_sobrenome_valido1']
@email = @usuario_fixture['admin_valido1']['email_valido1']
@senha = @usuario_fixture['admin_valido1']['senha_valida1']
@nome_sobrenome = @usuario_fixture['admin_valido']['nome_sobrenome_valido']
@email = @usuario_fixture['admin_valido']['email_valido']
@senha = @usuario_fixture['admin_valido']['senha_valida']

@json_data_post_usuario = usuario.post_usuario_admin(@nome_sobrenome, @email, @senha)
@message_obtida = @json_data_post_usuario['message'];
Expand All @@ -31,9 +31,9 @@

context "POST usuario (padrão 1)" do
before(:all) do
@nome_sobrenome = @usuario_fixture['padrao_valido1']['nome_sobrenome_valido1']
@email = @usuario_fixture['padrao_valido1']['email_valido1']
@senha = @usuario_fixture['padrao_valido1']['senha_valida1']
@nome_sobrenome = @usuario_fixture['padrao_valido']['nome_sobrenome_valido']
@email = @usuario_fixture['padrao_valido']['email_valido']
@senha = @usuario_fixture['padrao_valido']['senha_valida']

@json_data_post_usuario = usuario.post_usuario_padrao(@nome_sobrenome, @email, @senha)
@message_obtida = @json_data_post_usuario['message'];
Expand Down

0 comments on commit 6b6b12e

Please sign in to comment.