Skip to content

Repositório dedicado ao curso "Testes contínuos em Cypress no Github Actions", disponível na Udemy. Aqui, você encontrará os códigos-fonte e exemplos práticos desenvolvidos durante o curso.

Notifications You must be signed in to change notification settings

sthefanyricardo/cypress-actions

 
 

Repository files navigation

poster

Cypress CI/CD Último commit


Automação com Cyress e GitHub Actions

Este repositório contém o projeto desenvolvido durante o curso Testes contínuos em Cypress no Github Actions, ministrado por Fernando Papito na plataforma Udemy.

O objetivo é demonstrar a integração de testes automatizados com Cypress em um pipeline de CI/CD utilizando o GitHub Actions, incluindo relatórios e métricas com Cypress Cloud, Tesults e Allure Report.

Com este setup, é possível garantir que os testes de regressão sejam executados automaticamente a cada alteração no código, proporcionando uma detecção precoce de bugs e um aumento na confiabilidade do sistema.

Clique aqui para expandir as informações sobre o Curso

🎯 Objetivo

O principal objetivo deste projeto é construir um fluxo de trabalho (workflow) de testes contínuos que:

  • 🔄 Automatize a execução dos testes de regressão do Cypress.
  • ⚙️ Utilize o GitHub Actions para orquestrar o pipeline de testes.
  • 📊 Gere relatórios, screenshots e métricas para evidenciar a execução dos testes:
    • ☁️ Integre-se ao Cypress Cloud (antigo Cypress Dashboard) para uma visualização detalhada do histórico de testes.
    • ☁️ Integre-se ao Tesults para uma visualização detalhada do histórico de testes.
    • ☁️ Integre-se ao Allure Report para uma visualização detalhada do histórico de testes.

📑 Conteúdo do Curso

Durante o curso, foram aplicados os seguintes conceitos:

  • Construção de Pipelines e Workflows de CI/CD: Criação de arquivos .yml para automatizar a execução dos testes no GitHub Actions.
  • Testes Contínuos com Cypress: Configuração e execução dos testes de regressão de forma automática, garantindo a detecção precoce de bugs.
  • Geração de Relatórios e Métricas: Configuração de integrações para gerar evidências de execução (vídeos, screenshots) e dashboards com relatórios detalhados.

📊 Relatórios e Métricas

A execução dos testes gera relatórios completos e evidências que podem ser acompanhados em diferentes plataformas, garantindo rastreabilidade, análise detalhada e colaboração da equipe.

Esses relatórios permitem:

  • Visualizar o histórico de execuções com status, tempo e desempenho.
  • Consultar evidências (screenshots, vídeos, anexos e logs).
  • Identificar falhas e tendências com métricas e gráficos em tempo real.
  • Consolidar e compartilhar resultados em dashboards interativos.
  • As ferramentas utilizadas neste projeto são:

As ferramentas de geração de relatórios e métricas utilizadas neste projeto são:


⚙️ Fluxo de Testes com GitHub Actions

Os fluxos de trabalho (workflows) estão configurados no diretório .github/workflows/. Cada arquivo YAML define um pipeline de CI/CD que pode ser ativado manualmente.

  • cypress-tests.yml: Este workflow é configurado para a integração com o Tesults.

  • cypress-cloud.yml: Este workflow é configurado para a integração com o Cypress Cloud.

Cada workflow executa a suíte de testes de ponta a ponta em múltiplos navegadores (Electron, Chrome, Edge e Firefox) e envia os resultados da execução, incluindo logs, vídeos e screenshots, para a respectiva plataforma.


📁 Estrutura do Repositório

O projeto segue a estrutura padrão do Cypress e inclui arquivos de configuração específicos para a integração contínua.

Clique aqui para expandir a estrutura de arquivos
📦 cypress-actions/
┣ 📂 .github/
┃ └── workflows/
┃     ┣ 📜 cypress-cloud.yml     # Workflow para execução de testes no Cypress Cloud
┃     ┗ 📜 cypress-tests.yml     # Workflow para execução básica de testes
┣ 📂 cypress/
┃ ┣ 📂 e2e/
┃ ┃ ┗ 📜 login.cy.js           # Exemplo de um caso de teste e2e
┃ ┗ 📂 support/
┃     ┣ 📜 commands.js           # Comandos customizados do Cypress
┃     ┗ 📜 e2e.js                # Arquivo de suporte
┣ 📜 .gitignore                    # Arquivos e pastas a serem ignorados pelo Git
┣ 📜 cypress.config.js             # Arquivo de configuração global do Cypress
┣ 📜 package-lock.json             # Controle de versões exatas das dependências
┣ 📜 package.json                  # Lista as dependências e scripts do projeto
┣ 📜 README.md                     # Documentação principal do repositório
┣ 📜 runner-chrome.js              # Script para execução com Chrome
┣ 📜 runner-edge.js                # Script para execução com Edge
┣ 📜 runner-electron.js            # Script para execução com Electron
┣ 📜 runner-firefox.js             # Script para execução com Firefox
┣ 📜 runner.js                     # Script principal de execução
┗ 📜 yarn.lock                     # Controle de versões exatas das dependências

🛠️ Tecnologias, Ferramentas e Requisitos

Este projeto foi desenvolvido com as seguintes ferramentas e tecnologias. Certifique-se de que sua máquina atende aos requisitos abaixo para executar os testes.

Linguagem e Frameworks

Clique aqui para expandir as informações
  • JavaScript → Linguagem utilizada para implementação dos testes.
  • Cypress → Framework de automação de testes end-to-end para aplicações web.
  • Node.js + npm/Yarn → Ambiente de execução e gerenciamento de dependências.
  • Java → Necessário para geração de relatórios com o cypress-allure-plugin.

Ferramentas de Desenvolvimento

Clique aqui para expandir as informações
  • Visual Studio Code → IDE utilizada para desenvolvimento e manutenção dos testes.
  • Git → Controle de versão.
  • GitHub → Repositório remoto para versionamento e compartilhamento do código.

▶️ Execução dos Testes

1️⃣ Instalação e Configuração

🔹 Pré-requisitos

Antes de executar os testes, certifique-se de que possui os seguintes itens instalados na sua máquina:

  1. Ferramentas de linha de comando (CLI) As ferramentas de terminal, também conhecidas como linha de comando (command-line interface ou CLI), é necessária para fazer as instalações, configurar o ambiente e executar os testes.

  2. Node.js:

  3. Java:

    ℹ️ Observação: É necessário para a geração de relatórios com o Cypress Allure Plugin.

  4. Git

  5. Editor de Código (IDE)

ℹ️ Observação: O instrutor do curso indicou o uso de versões específicas. No entanto, este projeto foi testado com as versões mais recentes (Node.js, Cypress, Java e Yarn) e funcionou corretamente.

🔹 Instalação das dependências

Com os pré-requisitos instalados, siga estes passos para instalar as dependências do projeto:

  1. Abra a sua ferramenta de linha de comando (CLI) e siga os passos a seguir:
  • Clonar o repositório via "HTTPS":
  git clone https://github.com/sthefanyricardo/cypress-actions.git
  • Acessar a pasta do projeto:
  cd cypress-actions
  • Instalar as dependências:
  yarn install

ℹ️ Observação: O instrutor do curso indicou o uso de versões específicas. No entanto, este projeto foi testado com as versões mais recentes (Node.js e Cypress) e funcionou corretamente.


2️⃣ Execução dos testes (modos interativo e headless)

Clique aqui para ver as instruções

Abra o terminal na pasta principal do projeto:

cd .../cypress-actions
  1. Modo Interativo (GUI)
  • Execute o comando para abrir a interface gráfica do Cypress:
    yarn cypress open
  • Na interface do Cypress:
    1. Clique em Continue
    2. Em Welcome to Cypress!, selecione E2E Testing
    3. Escolha o navegador (o padrão é Electron)
    4. Clique em Start E2E Testing in {navegador escolhido}
    5. Acesse: cypress-actions > Specs > E2E specs > cypress/e2e
    • Clique em home para executar a suíte de testes home
    • Clique em tasks para executar a suíte de testes tasks

ℹ️ Qualquer edição e salvamento no arquivos executa automaticamente a suíte selecionada na interface gráfica do Cypress.

  1. Modo Headless (CLI)
  • Executar todos os testes:
yarn cypress run

ℹ️ Executa todos os testes da pasta cypress/e2e em modo headless.

  • Executar testes em navegador específico:
yarn cypress run --browser chrome

ℹ️ Os resultados são exibidos diretamente no terminal.

  • Gerar vídeos da execução: No arquivo cypress.config.js, adicione a opção:
  module.exports = {
    e2e: {
      video: true
    },
  };

ℹ️ Após isso, os vídeos serão gravados automaticamente na pasta padrão do Cypress, nas execuções em modo headless.

  1. Modo Headless com Relatório Allure Report
yarn cypress run --env allure=true

📌 Agradecimentos

  • Ao instrutor Fernando Papito 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 da execução de testes automatizados Cypress com o Github Actions.
    • 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.

  • Este README.md foi gerado com a assistência de modelos de linguagem como o Google Gemini e o ChatGPT, para garantir clareza, formatação e um conteúdo completo.

About

Repositório dedicado ao curso "Testes contínuos em Cypress no Github Actions", disponível na Udemy. Aqui, você encontrará os códigos-fonte e exemplos práticos desenvolvidos durante o curso.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%