Skip to content

Commit fbea95a

Browse files
author
Sthefany Albuquerque
authored
Merge pull request #2 from sthefanyricardo/dev to sthefanyricardo/main
Finalização do curso de Robot Framework com Playwright e GitHub Actions e ajuste das informações no README.md
2 parents 2fff018 + c8b8bdd commit fbea95a

23 files changed

+1941
-896
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: GitHub Actions Demo
2+
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
Explore-GitHub-Actions-1:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
16+
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
17+
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
18+
- name: Check out repository code
19+
uses: actions/checkout@v4
20+
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
21+
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
22+
- name: List files in the repository
23+
run: |
24+
ls ${{ github.workspace }}
25+
- run: echo "🍏 This job's status is ${{ job.status }}."
26+
27+
Explore-GitHub-Actions-2:
28+
runs-on: ubuntu-latest
29+
steps:
30+
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
31+
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
32+
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
33+
- name: Check out repository code
34+
uses: actions/checkout@v4
35+
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
36+
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
37+
- name: List files in the repository
38+
run: |
39+
echo "Listando os arquivos do meu diretorio"
40+
ls ${{ github.workspace }}
41+
- run: echo "🍏 This job's status is ${{ job.status }}."
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Manual CI - Execução de Testes Automatizados
2+
run-name: Testes de CI com Robot Framework
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
tag:
7+
type: string
8+
description: Qual é a TAG do caso de teste a ser executado?
9+
required: true
10+
browser:
11+
type: choice
12+
description: Em qual navegador executar os testes?
13+
required: true
14+
options:
15+
- "chromium"
16+
- "firefox"
17+
- "webkit"
18+
19+
jobs:
20+
testing:
21+
runs-on: ubuntu-latest
22+
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Install Python 3.12.0
28+
uses: actions/setup-python@v4
29+
with:
30+
python-version: '3.12.0'
31+
32+
- name: Install Node.js 19.1
33+
uses: actions/setup-node@v3
34+
with:
35+
node-version: '19.1'
36+
37+
- name: Install dependencies
38+
run: |
39+
python -m pip install --upgrade pip
40+
pip install -U -r requirements.txt
41+
sudo npm install @playwright/test
42+
sudo npx playwright install-deps
43+
rfbrowser init
44+
45+
- name: Run tests
46+
run: |
47+
robot -d ./resultados-testes-CI -v HEADLESS:true \
48+
-v BROWSER:${{ inputs.browser }} -i ${{ inputs.tag }} tests_web/tests
49+
50+
- name: Upload test results
51+
if: always()
52+
uses: actions/upload-artifact@v4
53+
with:
54+
name: ${{ inputs.browser }}_results
55+
path: ./resultados-testes-CI
56+
if-no-files-found: ignore
57+
retention-days: 2
58+
59+
- name: Download results
60+
if: always()
61+
uses: actions/download-artifact@v4
62+
with:
63+
name: ${{ inputs.browser }}_results
64+
path: ./resultados/${{ inputs.browser }}
65+
66+
- name: Debug - Verificar arquivos baixados
67+
if: always()
68+
run: ls -R ./resultados/${{ inputs.browser }} || echo "Nenhum arquivo baixado!"
69+
70+
- name: Publicar Sumário no GitHub Actions
71+
if: always()
72+
run: |
73+
echo "## 📊 Resultados dos Testes Automatizados 🚀" >> $GITHUB_STEP_SUMMARY
74+
echo "- Navegador da execução do teste web: **${{ inputs.browser }}**" >> $GITHUB_STEP_SUMMARY
75+
echo "- Status da execução: **${{ job.status == 'success' && '✅ Sucesso' || '❌ Falha' }}**" >> $GITHUB_STEP_SUMMARY
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: CI - Execução de Testes Automatizados
2+
run-name: Testes de CI com Robot Framework
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
testing:
13+
runs-on: ubuntu-latest
14+
strategy:
15+
matrix:
16+
browser: [chromium, firefox, webkit]
17+
fail-fast: false
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Install Python 3.12.0
24+
uses: actions/setup-python@v4
25+
with:
26+
python-version: '3.12.0'
27+
28+
- name: Install Node.js 19.1
29+
uses: actions/setup-node@v3
30+
with:
31+
node-version: '19.1'
32+
33+
- name: Install dependencies
34+
run: |
35+
python -m pip install --upgrade pip
36+
pip install -U -r requirements.txt
37+
sudo npm install @playwright/test
38+
sudo npx playwright install-deps
39+
rfbrowser init
40+
41+
- name: Run tests
42+
run: |
43+
robot -d ./resultados-testes-CI -v HEADLESS:true \
44+
-v BROWSER:${{ matrix.browser }} tests_web/tests
45+
46+
- name: Upload test results
47+
if: always()
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: ${{ matrix.browser }}_results
51+
path: ./resultados-testes-CI
52+
if-no-files-found: ignore
53+
retention-days: 2
54+
55+
- name: Download results
56+
if: always()
57+
uses: actions/download-artifact@v4
58+
with:
59+
name: ${{ matrix.browser }}_results
60+
path: ./resultados/${{ matrix.browser }}
61+
62+
- name: Debug - Verificar arquivos baixados
63+
if: always()
64+
run: ls -R ./resultados/${{ matrix.browser }} || echo "Nenhum arquivo baixado!"
65+
66+
- name: Publicar Sumário no GitHub Actions
67+
if: always()
68+
run: |
69+
echo "## 📊 Resultados dos Testes Automatizados 🚀" >> $GITHUB_STEP_SUMMARY
70+
echo "- Navegador da execução do teste web: **${{ matrix.browser }}**" >> $GITHUB_STEP_SUMMARY
71+
echo "- Status da execução: **${{ job.status == 'success' && '✅ Sucesso' || '❌ Falha' }}**" >> $GITHUB_STEP_SUMMARY

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
results/
33
arquivos_curso
44
__pycache__/
5-
.github/workflows/
65

76
# Ignorar arquivos específicos
87
*.log

README.md

Lines changed: 100 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,111 @@
1-
# Automação de Testes Web com Robot Framework + Playwright (Library Browser) + Execução no GitHub Actions - ![Status](https://img.shields.io/badge/Status-Em%20Andamento-yellow)
1+
# Automação de Testes Web com Robot Framework + Playwright (Library Browser) + Execução no GitHub Actions
22

3-
Este repositório contém os arquivos de exemplos e desafio de exercícios, desenvolvidos durante o curso de [Robot Framework com Playwright e GitHub Actions](https://www.udemy.com/course/robot-framework-com-playwright-e-github-actions), ministrado por Mayara "May" Fernandes.
3+
Este repositório contém os arquivos de exemplos e desafios de exercícios desenvolvidos durante o curso de [Robot Framework com Playwright e GitHub Actions](https://www.udemy.com/course/robot-framework-com-playwright-e-github-actions), ministrado por Mayara "May" Fernandes.
44

55
## 📚 Sobre o Curso
66

77
Este curso é voltado para profissionais que já possuem conhecimentos básicos em **Robot Framework** e desejam aprimorar suas habilidades na automação de testes web utilizando a **Browser Library**, baseada no **Playwright**.
88

9-
Durante as aulas, são abordadas técnicas avançadas para automação de testes web, comparações entre as bibliotecas **BrowserLibrary** e **SeleniumLibrary**, além da implementação de **integração contínua (CI/CD) com GitHub Actions**.
9+
Durante as aulas, são abordadas técnicas avançadas para automação de testes web, comparações entre as bibliotecas **Browser Library** e **SeleniumLibrary**, além da implementação de **integração contínua (CI/CD) com GitHub Actions**.
1010

11-
### Conteúdo do Curso
12-
- **Configuração do ambiente** para automação de testes.
13-
- **Diferenças entre BrowserLibrary e SeleniumLibrary**.
14-
- **Utilização da Library Browser** para automação de testes web.
15-
- **Exploração dos principais recursos da Library Browser** na prática.
16-
- **Criação de uma pipeline CI/CD** no **GitHub Actions** para execução automatizada dos testes.
11+
---
12+
13+
## 🛠️ Tecnologias Utilizadas
14+
15+
- **Python** → Linguagem de programação base para o Robot Framework.
16+
- **Git e GitHub** → Controle de versão e compartilhamento de código.
17+
- **Visual Studio Code** → IDE utilizada para desenvolvimento.
18+
- **Robot Framework** → Framework de automação de testes.
19+
- **Node.js** → Ambiente de execução necessário para o Playwright.
20+
- **Browser Library** → Biblioteca para automação de testes web baseada no Playwright.
21+
- **GitHub Actions CI/CD** → Integração contínua para automação de testes em pipelines.
22+
23+
---
24+
25+
## 📁 Conteúdo do Repositório
26+
1. **Estrutura do Repositório e Descrição das Pastas:**
27+
28+
- **tests_web/** → Contém os scripts de automação para testes de interface web utilizando **Robot Framework** com **BrowserLibrary**.
29+
- **resources/** → Arquivos auxiliares, como **variáveis, keywords reutilizáveis e configurações de ambiente**, evitando duplicação de código.
30+
- **tests/** → Casos de teste automatizados escritos em **Robot Framework** (.robot), organizados conforme os cenários de teste web.
31+
- **resultados/** → Logs, relatórios e evidências gerados após a execução dos testes.
32+
33+
- **Outros Arquivos Importantes:**
34+
- **requirements.txt** → Lista de dependências do projeto para instalação rápida.
35+
- **.gitignore** → Lista de arquivos e diretórios que devem ser ignorados pelo Git.
36+
- **README.md** → Documentação do projeto, incluindo instruções de instalação e execução dos testes.
37+
38+
2. **GitHub Actions Workflow:**
39+
40+
- **testing_ci_workflow.yml** → Este arquivo define o fluxo de trabalho de integração contínua (CI) utilizando o GitHub Actions para executar testes automatizados com Robot Framework. Este workflow é acionado automaticamente em cada push ou pull request para a branch main.
41+
42+
- **manual_testing_ci_workflow.yml** → Este arquivo configura o fluxo de trabalho de Integração Contínua (CI) no GitHub Actions, permitindo a execução manual dos testes diretamente pela interface do GitHub Actions. Ideal para quando se deseja controlar a execução dos testes de forma personalizada.
43+
44+
- ***Descrição:***
45+
- O workflow é responsável por rodar os testes automatizados tanto para testes web quanto para testes de API.
46+
- Inclui etapas como checkout do código, instalação de dependências, execução de testes, upload e download de resultados, e publicação do sumário dos testes no GitHub.
47+
- Ele é configurado para rodar de forma automática sempre que houver um push para o repositório, garantindo que os testes sejam executados de forma contínua.
48+
49+
---
50+
51+
## 🤖 Como Executar os Testes
52+
53+
### 🔧 Pré-requisitos
54+
55+
1. **Instalar o Python (versão 3.7 ou superior)**[Download do Python](https://www.python.org/downloads/)
56+
2. **Instalar o Node.js**[Download do Node.js](https://nodejs.org/en/download/)
57+
3. **Instalar as dependências do projeto**
58+
```bash
59+
pip install -r requirements.txt
60+
```
61+
4. **Instalar dependências do Playwright**
62+
```bash
63+
npm install @playwright/test
64+
npx playwright install-deps
65+
```
66+
5. **Seguir instruções adicionais para a instalação da [Browser Library](https://robotframework-browser.org/)**
67+
68+
### 📊 Executando os Testes
69+
70+
1. **Clone o repositório**
71+
```bash
72+
git clone https://github.com/sthefanyricardo/curso-robot-framework-com-playwright-may.git
73+
```
74+
2. **Navegue até a pasta do projeto**
75+
```bash
76+
cd curso-robot-framework-com-playwright-may/tests_web
77+
```
78+
3. **Execute os testes com os comandos abaixo**
79+
- **Executar todos os testes**:
80+
```bash
81+
robot -d resultados tests/
82+
```
83+
- **Executar testes específicos**:
84+
```bash
85+
robot -d resultados -i CT01ORCT04 tests/
86+
```
87+
- **Executar os testes em modo headless** (sem interface gráfica):
88+
```bash
89+
robot -d resultados -v HEADLESS:true tests/
90+
```
91+
- **Executar os testes a partir de um outro navegador**:
92+
```bash
93+
robot -d resultados -v BROWSER:firefox tests/
94+
```
95+
4. **Verifique os resultados da execução**
96+
- Os relatórios e logs serão gerados na pasta `resultados/`.
97+
98+
---
99+
100+
## 📌 Agradecimentos
101+
102+
- À instrutora **May Fernandes** pelo curso e compartilhamento de conhecimento.
103+
- À comunidade de automação de testes por todo o suporte e inspiração.
104+
- **Observações:**
105+
- Este repositório é destinado a fins educacionais para demonstrar conceitos de automação de testes com Robot Framework.
106+
- Sinta-se à vontade para clonar, modificar e utilizar este código como base para seus próprios projetos.
17107

18108
## 🙋‍♀️ Autora
19-
Feito com ❤️ por **Sthefany A. Ricardo**.
20109

110+
Feito com ❤️ por **Sthefany A. Ricardo**.
21111
📅 Última atualização: **Abril de 2025**.

0 commit comments

Comments
 (0)