Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/github-actions-demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
Explore-GitHub-Actions-1:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."

Explore-GitHub-Actions-2:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
echo "Listando os arquivos do meu diretorio"
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
75 changes: 75 additions & 0 deletions .github/workflows/manual_testing_ci_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Manual CI - Execução de Testes Automatizados
run-name: Testes de CI com Robot Framework
on:
workflow_dispatch:
inputs:
tag:
type: string
description: Qual é a TAG do caso de teste a ser executado?
required: true
browser:
type: choice
description: Em qual navegador executar os testes?
required: true
options:
- "chromium"
- "firefox"
- "webkit"

jobs:
testing:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Python 3.12.0
uses: actions/setup-python@v4
with:
python-version: '3.12.0'

- name: Install Node.js 19.1
uses: actions/setup-node@v3
with:
node-version: '19.1'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U -r requirements.txt
sudo npm install @playwright/test
sudo npx playwright install-deps
rfbrowser init

- name: Run tests
run: |
robot -d ./resultados-testes-CI -v HEADLESS:true \
-v BROWSER:${{ inputs.browser }} -i ${{ inputs.tag }} tests_web/tests

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.browser }}_results
path: ./resultados-testes-CI
if-no-files-found: ignore
retention-days: 2

- name: Download results
if: always()
uses: actions/download-artifact@v4
with:
name: ${{ inputs.browser }}_results
path: ./resultados/${{ inputs.browser }}

- name: Debug - Verificar arquivos baixados
if: always()
run: ls -R ./resultados/${{ inputs.browser }} || echo "Nenhum arquivo baixado!"

- name: Publicar Sumário no GitHub Actions
if: always()
run: |
echo "## 📊 Resultados dos Testes Automatizados 🚀" >> $GITHUB_STEP_SUMMARY
echo "- Navegador da execução do teste web: **${{ inputs.browser }}**" >> $GITHUB_STEP_SUMMARY
echo "- Status da execução: **${{ job.status == 'success' && '✅ Sucesso' || '❌ Falha' }}**" >> $GITHUB_STEP_SUMMARY
71 changes: 71 additions & 0 deletions .github/workflows/testing_ci_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: CI - Execução de Testes Automatizados
run-name: Testes de CI com Robot Framework
on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
testing:
runs-on: ubuntu-latest
strategy:
matrix:
browser: [chromium, firefox, webkit]
fail-fast: false

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Python 3.12.0
uses: actions/setup-python@v4
with:
python-version: '3.12.0'

- name: Install Node.js 19.1
uses: actions/setup-node@v3
with:
node-version: '19.1'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U -r requirements.txt
sudo npm install @playwright/test
sudo npx playwright install-deps
rfbrowser init

- name: Run tests
run: |
robot -d ./resultados-testes-CI -v HEADLESS:true \
-v BROWSER:${{ matrix.browser }} tests_web/tests

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.browser }}_results
path: ./resultados-testes-CI
if-no-files-found: ignore
retention-days: 2

- name: Download results
if: always()
uses: actions/download-artifact@v4
with:
name: ${{ matrix.browser }}_results
path: ./resultados/${{ matrix.browser }}

- name: Debug - Verificar arquivos baixados
if: always()
run: ls -R ./resultados/${{ matrix.browser }} || echo "Nenhum arquivo baixado!"

- name: Publicar Sumário no GitHub Actions
if: always()
run: |
echo "## 📊 Resultados dos Testes Automatizados 🚀" >> $GITHUB_STEP_SUMMARY
echo "- Navegador da execução do teste web: **${{ matrix.browser }}**" >> $GITHUB_STEP_SUMMARY
echo "- Status da execução: **${{ job.status == 'success' && '✅ Sucesso' || '❌ Falha' }}**" >> $GITHUB_STEP_SUMMARY
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
results/
arquivos_curso
__pycache__/
.github/workflows/

# Ignorar arquivos específicos
*.log
Expand Down
110 changes: 100 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,111 @@
# 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)
# Automação de Testes Web com Robot Framework + Playwright (Library Browser) + Execução no GitHub Actions

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.
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.

## 📚 Sobre o Curso

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**.

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**.
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**.

### Conteúdo do Curso
- **Configuração do ambiente** para automação de testes.
- **Diferenças entre BrowserLibrary e SeleniumLibrary**.
- **Utilização da Library Browser** para automação de testes web.
- **Exploração dos principais recursos da Library Browser** na prática.
- **Criação de uma pipeline CI/CD** no **GitHub Actions** para execução automatizada dos testes.
---

## 🛠️ Tecnologias Utilizadas

- **Python** → Linguagem de programação base para o Robot Framework.
- **Git e GitHub** → Controle de versão e compartilhamento de código.
- **Visual Studio Code** → IDE utilizada para desenvolvimento.
- **Robot Framework** → Framework de automação de testes.
- **Node.js** → Ambiente de execução necessário para o Playwright.
- **Browser Library** → Biblioteca para automação de testes web baseada no Playwright.
- **GitHub Actions CI/CD** → Integração contínua para automação de testes em pipelines.

---

## 📁 Conteúdo do Repositório
1. **Estrutura do Repositório e Descrição das Pastas:**

- **tests_web/** → Contém os scripts de automação para testes de interface web utilizando **Robot Framework** com **BrowserLibrary**.
- **resources/** → Arquivos auxiliares, como **variáveis, keywords reutilizáveis e configurações de ambiente**, evitando duplicação de código.
- **tests/** → Casos de teste automatizados escritos em **Robot Framework** (.robot), organizados conforme os cenários de teste web.
- **resultados/** → Logs, relatórios e evidências gerados após a execução dos testes.

- **Outros Arquivos Importantes:**
- **requirements.txt** → Lista de dependências do projeto para instalação rápida.
- **.gitignore** → Lista de arquivos e diretórios que devem ser ignorados pelo Git.
- **README.md** → Documentação do projeto, incluindo instruções de instalação e execução dos testes.

2. **GitHub Actions Workflow:**

- **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.

- **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.

- ***Descrição:***
- O workflow é responsável por rodar os testes automatizados tanto para testes web quanto para testes de API.
- 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.
- 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.

---

## 🤖 Como Executar os Testes

### 🔧 Pré-requisitos

1. **Instalar o Python (versão 3.7 ou superior)** → [Download do Python](https://www.python.org/downloads/)
2. **Instalar o Node.js** → [Download do Node.js](https://nodejs.org/en/download/)
3. **Instalar as dependências do projeto**
```bash
pip install -r requirements.txt
```
4. **Instalar dependências do Playwright**
```bash
npm install @playwright/test
npx playwright install-deps
```
5. **Seguir instruções adicionais para a instalação da [Browser Library](https://robotframework-browser.org/)**

### 📊 Executando os Testes

1. **Clone o repositório**
```bash
git clone https://github.com/sthefanyricardo/curso-robot-framework-com-playwright-may.git
```
2. **Navegue até a pasta do projeto**
```bash
cd curso-robot-framework-com-playwright-may/tests_web
```
3. **Execute os testes com os comandos abaixo**
- **Executar todos os testes**:
```bash
robot -d resultados tests/
```
- **Executar testes específicos**:
```bash
robot -d resultados -i CT01ORCT04 tests/
```
- **Executar os testes em modo headless** (sem interface gráfica):
```bash
robot -d resultados -v HEADLESS:true tests/
```
- **Executar os testes a partir de um outro navegador**:
```bash
robot -d resultados -v BROWSER:firefox tests/
```
4. **Verifique os resultados da execução**
- Os relatórios e logs serão gerados na pasta `resultados/`.

---

## 📌 Agradecimentos

- À instrutora **May Fernandes** pelo curso e compartilhamento de conhecimento.
- À comunidade de automação de testes por todo o suporte e inspiração.
- **Observações:**
- Este repositório é destinado a fins educacionais para demonstrar conceitos de automação de testes com Robot Framework.
- Sinta-se à vontade para clonar, modificar e utilizar este código como base para seus próprios projetos.

## 🙋‍♀️ Autora
Feito com ❤️ por **Sthefany A. Ricardo**.

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