Skip to content

Commit

Permalink
Realizando algumas melhorias, inclusive opção testes serem executados…
Browse files Browse the repository at this point in the history
… também com firefox e headless (geckodriver), etc
  • Loading branch information
AndressaKarla committed Mar 28, 2024
1 parent f8e1722 commit 1b8fac1
Show file tree
Hide file tree
Showing 7 changed files with 106 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,42 @@ jobs:
path: ./relatorios/screenshots
retention-days: 30

testes-automatizados-web-front-serve-rest-ruby-firefox:
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 - Redirecionar os conteúdos de "secrets.LOGIN_ENV", "secrets.USUARIO_ENV", para os arquivos "login.json", "usuario.json", etc
run: |
echo '${{ secrets.LOGIN_ENV }}' > ./features/support/fixtures/login.json
echo '${{ secrets.USUARIO_ENV }}' > ./features/support/fixtures/usuario.json
- name: Passo 3 - Instalar ruby e Instalar dependências
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.2'
bundler-cache: true

- name: Passo 4 - Executar testes no navegador firefox em modo headless (2º plano) em um ambiente de desenvolvimento e Gerar os resultados dos testes
run: bundle exec cucumber -p ci_ff

- name: Passo 5 - Armazenar os resultados dos testes em relatório html
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: relatorio_html_firefox
path: ./relatorios/relatorio-web-front-serve-rest-ruby.html
retention-days: 30

- name: Passo 6 - Armazenar os resultados dos testes em screenshots
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: screenshots_firefox
path: ./relatorios/screenshots
retention-days: 30



70 changes: 59 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,29 @@ Esse projeto "testes-automatizados-web-front-serve-rest_ruby" é executado em um
- Na seção "Actions", clicar em "Pipeline Testes Automatizados Web Front ServeRest Ruby"
- Em "This workflow has a workflow_dispatch event trigger.", clicar em "Run workflow" > "Run workflow" para executar os testes automatizados web no navegador chrome em modo headless (2° plano) no GitHub Actions [com os conteúdos de "secrets.LOGIN_ENV", "secrets.USUARIO_ENV", etc (baseado nos arquivos ["login.example.json"](https://github.com/AndressaKarla/testes-automatizados-web-front-serve-rest_ruby/blob/main/features/support/fixtures/login.example.json), ["usuario.example.json"](https://github.com/AndressaKarla/testes-automatizados-web-front-serve-rest_ruby/blob/main/features/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 "login.json", "usuario.json"]
- Após o término da execução, clicar na run "Pipeline Testes Automatizados Web Front ServeRest Ruby"
- Na seção "Artifacts", clicar em "relatorio_html_chrome"
- Na janela aberta, escolher um diretório para baixar a pasta compactada "relatorio_html_chrome.zip"
- Na seção "Artifacts", clicar em "screenshots_chrome"
- Na janela aberta, escolher um diretório para baixar a pasta compactada "screenshots_chrome.zip"
- Na seção "Artifacts", clicar em "relatorio_html_chrome", "relatorio_html_firefox", etc
- Na janela aberta, escolher um diretório para baixar a pasta compactada "relatorio_html_chrome.zip", "relatorio_html_firefox.zip", etc
- Na seção "Artifacts", clicar em "screenshots_chrome", "screenshots_firefox", etc
- Na janela aberta, escolher um diretório para baixar a pasta compactada "screenshots_chrome.zip", "screenshots_firefox.zip", etc


# Verificar no navegador padrão o relatório html gerado e armazenado anteriormente no GitHub Actions e descompactado no computador :female_detective:
- Abrir uma janela do "Windows Explorer"
- Acessar o diretório onde foi baixada a pasta compactada "relatorio_html_chrome.zip" anteriormente
- Acessar o diretório onde foi baixada a pasta compactada "relatorio_html_chrome.zip", "relatorio_html_firefox.zip" anteriormente
- Descompactar a pasta
- Acessar a pasta descompactada "relatorio_html_chrome"
- Acessar a pasta descompactada "relatorio_html_chrome", "relatorio_html_firefox.zip", etc
- Clicar 2 vezes sob o relatório "relatorio-web-front-serve-rest-ruby.html" gerado e armazenado anteriormente no GitHub Actions e descompactado para ser aberto e verificado no navegador padrão no computador


# Verificar os screenshots gerados e armazenados anteriormente no GitHub Actions e descompactados no computador :female_detective:
- Abrir uma outra janela do "Windows Explorer"
- Acessar o diretório onde foi baixada a pasta compactada "screenshots_chrome.zip" anteriormente
- Acessar o diretório onde foi baixada a pasta compactada "screenshots_chrome.zip", "screenshots_firefox.zip" anteriormente
- Descompactar a pasta
- Acessar a pasta descompactada "screenshots_chrome"
- Acessar a pasta descompactada "screenshots_chrome", "screenshots_firefox", etc


## :heavy_check_mark: Em caso de sucesso dos testes, verificar os screenshots da pasta "testes_passaram"
- Na pasta descompactada "screenshots_chrome" acessada anteriormente, acessar "testes_passaram > dd_mm_aaaa"
- Na pasta descompactada "screenshots_chrome", "screenshots_firefox" acessada anteriormente, acessar "testes_passaram > dd_mm_aaaa"
```
- nome_cenario1-dd_mm_aaaa-hh1_mm1_ss1.png
. . .
Expand All @@ -49,7 +49,7 @@ Ex.: testes_passaram > 10_11_2023
```

## :x: Em caso de falha dos testes, verificar os screenshots da pasta "testes_falharam"
- Na pasta descompactada "screenshots_chrome" acessada anteriormente, acessar "testes_falharam > dd_mm_aaaa"
- Na pasta descompactada "screenshots_chrome", "screenshots_firefox" acessada anteriormente, acessar "testes_falharam > dd_mm_aaaa"
```
- nome_cenario1-dd_mm_aaaa-hh1_mm1_ss1.png
. . .
Expand Down Expand Up @@ -116,6 +116,29 @@ chromedriver -v
```
- Fechar esse cmder ou terminal

## :hammer_and_wrench: Excluir geckodriver que já foi baixado em algum outro momento
- Na janela do "Windows Explorer" acessar o diretório "C:\Ruby\bin", procurar e excluir "geckodriver.exe"
- Acessar o diretório "C:\Windows", procurar e excluir "geckodriver.exe"
- Acessar o diretório "C:\Windows\System32", procurar e excluir "geckodriver.exe"


## :hammer_and_wrench: Instalar novo geckodriver
- Verificar versão do navegador Firefox (Ex.: 124.0.1 (64-bits))
- Menu > Ajuda > Sobre o Firefox
- Acessar o site com a versão "Latest" do [geckodriver](https://github.com/mozilla/geckodriver/releases/latest) (Ex.: v0.34.0) compatível com a versão do Firefox verificada anteriormente
- Em "Assets", clicar em "geckodriver...win64.zip"
- Ex.: https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-win64.zip
- Baixar o arquivo "geckodriver...win64.zip"
- Descompactar o arquivo
- NÃO executar o executável "geckodriver.exe"
- Mover o executável "geckodriver.exe" para o diretório "C:\Windows\System32"

- Abrir um novo cmder ou outro terminal de preferência, informar o comando abaixo para confirmar se o novo geckodriver realmente foi instalado, e verificar se a versão apresentada é a mesma no qual foi baixada no site com a versão "Latest" anteriormente (Ex.: v0.34.0)
```
geckodriver --version
```
- Fechar esse cmder ou terminal


## :hammer_and_wrench: Desinstalar Ruby e/ou Rails que já foram instalados em algum outro momento
- Na ferramenta de pesquisa do Windows, informar "Adicionar ou remover programas"
Expand Down Expand Up @@ -273,11 +296,36 @@ bundle exec cucumber
```

## :triangular_flag_on_post: Ou executar os testes automatizados web no navegador chrome em modo headless (2° plano) e Gerar os resultados dos testes no computador
- No cmder aberto anteriormente, informar o comando abaixo para executar todas as features e/ou cenários do projeto em modo headless (2° plano - mesmo modo e comando que é utilizado no "Passo 4" da "Pipeline Testes Automatizados Web Front ServeRest Ruby" em ".github > workflows > [workflow-testes-automatizados-web-front-serve-rest-ruby.yml](https://github.com/AndressaKarla/testes-automatizados-web-front-serve-rest_ruby/blob/main/.github/workflows/workflow-testes-automatizados-web-front-serve-rest-ruby.yml)" no GitHub Actions) e Gerar os resultados dos testes no computador:
- No cmder aberto anteriormente, informar o comando abaixo para executar todas as features e/ou cenários do projeto em modo headless (2° plano - mesmo modo e comando que é utilizado no "Passo 4" do job "testes-automatizados-web-front-serve-rest-ruby-chrome" da "Pipeline Testes Automatizados Web Front ServeRest Ruby" em ".github > workflows > [workflow-testes-automatizados-web-front-serve-rest-ruby.yml](https://github.com/AndressaKarla/testes-automatizados-web-front-serve-rest_ruby/blob/main/.github/workflows/workflow-testes-automatizados-web-front-serve-rest-ruby.yml)" no GitHub Actions) e Gerar os resultados dos testes no computador:
```
bundle exec cucumber -p ci
```

## :triangular_flag_on_post: Executar os testes automatizados web no navegador firefox na interface gráfica e Gerar os resultados dos testes no computador
- No cmder aberto anteriormente, informar o comando abaixo para executar cada feature e/ou cada cenário individualmente do projeto:
```
bundle exec cucumber -p ff -t @nome_tag
```
Ex. 1:
```
bundle exec cucumber -p ff -t @login_entrar
```
Ex. 2:
```
bundle exec cucumber -p ff -t @pesquisar_produto_nao_cadastrado
```

- Ou informar o comando abaixo para executar todas as features e/ou cenários do projeto:
```
bundle exec cucumber -p ff
```

## :triangular_flag_on_post: Ou executar os testes automatizados web no navegador firefox em modo headless (2° plano) e Gerar os resultados dos testes no computador
- No cmder aberto anteriormente, informar o comando abaixo para executar todas as features e/ou cenários do projeto em modo headless (2° plano - mesmo modo e comando que é utilizado no "Passo 4" do job "testes-automatizados-web-front-serve-rest-ruby-firefox" da "Pipeline Testes Automatizados Web Front ServeRest Ruby" em ".github > workflows > [workflow-testes-automatizados-web-front-serve-rest-ruby.yml](https://github.com/AndressaKarla/testes-automatizados-web-front-serve-rest_ruby/blob/main/.github/workflows/workflow-testes-automatizados-web-front-serve-rest-ruby.yml)" no GitHub Actions) e Gerar os resultados dos testes no computador:
```
bundle exec cucumber -p ci_ff
```

---
# Verificar os resultados das execuções dos testes automatizados web no computador :female_detective:

Expand Down
2 changes: 2 additions & 0 deletions cucumber.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ default: -p pretty --publish-quiet -p html -p dev -p chrome
pretty: --format pretty
dev: ENVIRONMENT=dev
local: ENVIRONMENT=local
ff: -p pretty --publish-quiet -p html -p dev -p firefox
ci: -p pretty --publish-quiet -p html -p dev -p chrome_headless
ci_ff: -p pretty --publish-quiet -p html -p dev -p firefox_headless

chrome: BROWSER=chrome
chrome_headless: BROWSER=chrome_headless
Expand Down
9 changes: 4 additions & 5 deletions features/specs/login_cadastre_se_spec.feature
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ Esquema do Cenario: Validar Cadastro Administrador
E eu esteja na tela Cadastro
Quando eu informar os campos "<nome>", "<email>", "<senha>" e opcão Cadastrar como administrador
Então na tela de Cadastro deverá apresentar a mensagem "<mensagem>"

Exemplos:
| nome | email | senha | mensagem |
| nome_valido1 | email_valido1 | senha_valida1 | "Cadastro realizado com sucesso" |
| nome_invalido_vazio1 | email_invalido_vazio1 | senha_invalida_vazia1 | "×\nNome não pode ficar em branco\n×\nEmail é obrigatório\n×\nPassword não pode ficar em branco\n" |
| nome_valido2 | email_invalido_dominio_sem_ponto1 | senha_valida2 | "Email deve ser um email válido" |
| nome | email | senha | mensagem |
| nome_valido1 | email_valido1 | senha_valida1 | "Cadastro realizado com sucesso" |
| nome_valido1 | email_invalido_vazio1 | senha_valida1 | "Email é obrigatório" |
| nome_valido2 | email_invalido_dominio_sem_ponto1 | senha_valida2 | "Email deve ser um email válido" |
8 changes: 4 additions & 4 deletions features/specs/login_entrar_spec.feature
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ Esquema do Cenario: Validar Login usuários inválidos
Quando eu informar os campos de "<email>", "<senha>" incorretamente
Então na tela Login deverá apresentar a mensagem "<mensagem>"
Exemplos:
| email | senha | mensagem |
| email_invalido_vazio1 | senha_invalida_vazia1 | "\n×\nEmail é obrigatório\n×\nPassword não pode ficar em branco\n" |
| email_invalido_dominio_sem_ponto1 | senha_valida2 | "Email deve ser um email válido" |
| email_invalido_nao_cadastrado1 | senha_invalida_nao_cadastrada1 | "Email e/ou senha inválidos" |
| email | senha | mensagem |
| email_invalido_vazio1 | senha_valida2 | "Email é obrigatório" |
| email_invalido_dominio_sem_ponto1 | senha_valida2 | "Email deve ser um email válido" |
| email_invalido_nao_cadastrado1 | senha_invalida_nao_cadastrada1 | "Email e/ou senha inválidos" |

1 change: 0 additions & 1 deletion features/support/fixtures/login.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
},
"invalido1": {
"email_invalido_vazio1": "deixar-apenas-as-aspas-duplas",
"senha_invalida_vazia1": "deixar-apenas-as-aspas-duplas",
"email_invalido_dominio_sem_ponto1": "informar-email-usuario-invalido-dominio-sem-ponto@outlook",
"senha_valida2": "informar-senha-usuario-valido",
"email_invalido_nao_cadastrado1": "[email protected]",
Expand Down
2 changes: 0 additions & 2 deletions features/support/fixtures/usuario.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
"nome_valido1": "informar-outro-nome-usuario-admin-valido",
"email_valido1": "[email protected]",
"senha_valida1": "informar-outra-senha-usuario-admin-valido",
"nome_invalido_vazio1": "deixar-apenas-as-aspas-duplas",
"email_invalido_vazio1": "deixar-apenas-as-aspas-duplas",
"senha_invalida_vazia1": "deixar-apenas-as-aspas-duplas",
"nome_valido2": "informar-outro-nome-usuario-admin-valido",
"email_invalido_dominio_sem_ponto1": "informar-email-usuario-admin-invalido-dominio-sem-ponto@yahoo",
"senha_valida2": "informar-outra-senha-usuario-admin-valido"
Expand Down

0 comments on commit 1b8fac1

Please sign in to comment.