|
| 1 | + |
| 2 | +<p align="center"> |
| 3 | + <a href="https://santosqa.github.io/" target="_blank" rel="noopener noreferrer"> |
| 4 | + <picture> |
| 5 | + <source media="(prefers-color-scheme: dark)" srcset="./assets/cypress-logo-dark.png"> |
| 6 | + <source media="(prefers-color-scheme: light)" srcset="./assets/cypress-logo-dark.png"> |
| 7 | + <img alt="Cypress Logo" src="./assets/cypress-logo-dark.png"> |
| 8 | + </picture> |
| 9 | + </a> |
| 10 | +</p> |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | + |
| 15 | +[](https://santosqa.github.io) [](https://about.me/santosqa) [](https://github.com/santosqa) [](https://www.linkedin.com/in/santosqa) [](https://www.instagram.com/santosqa_/) [](https://santosqa.com/) [](https://www.apartamentovistamar.com/) |
| 16 | + |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | + |
| 21 | +# 💻 Cypress WEB Start |
| 22 | + |
| 23 | + |
| 24 | +O Cypress é uma ferramenta moderna de automação para testes de aplicações web. Diferente de outras ferramentas de testes tradicionais, o Cypress é executado no mesmo ciclo de execução da aplicação, o que permite que você escreva, execute e depure seus testes diretamente no navegador. Ele é ideal para testes de integração, funcionalidade e interface de usuário, oferecendo uma experiência rápida e interativa. |
| 25 | + |
| 26 | +Com Cypress, é possível realizar testes end-to-end de forma eficiente e simples, validando o comportamento da aplicação de ponta a ponta, com foco na interação com os elementos presentes na maioria das páginas web. Além disso, a ferramenta fornece uma série de recursos como captura de telas, gravação de vídeos, depuração em tempo real e relatórios de testes, tornando o processo de automação e validação mais acessível. |
| 27 | + |
| 28 | +## Benefícios do Cypress: |
| 29 | + **Desempenho Rápido:** Execução instantânea de testes, sem a necessidade de esperar por longos tempos de execução. |
| 30 | + **Depuração Simples:** Ferramentas de depuração e exibição de comandos diretamente no navegador. |
| 31 | + **Testes em Tempo Real:** Visualização do comportamento da aplicação enquanto os testes estão sendo executados. |
| 32 | + **Facilidade de Uso:** Sintaxe simples e APIs intuitivas para escrever testes, ideal para iniciantes e especialistas. |
| 33 | + **Documentação Extensa:** A documentação oficial oferece exemplos e guias para facilitar o aprendizado. |
| 34 | + |
| 35 | +<div style="background-color: #ffd9c9; padding: 10px; border-radius: 5px;" role="alert" aria-live="assertive"> |
| 36 | + <strong>⚠️ Atenção!</strong><br> |
| 37 | + <p>As URLs e credenciais usadas neste projeto são de propriedade exclusiva do @papitodev e dos alunos da formação Cypress Skills. <em>Não utilize-as sem autorização.</em></p> |
| 38 | +</div></br> |
| 39 | + |
| 40 | +[](https://www.santosqa.com/top/) [](https://github.com/papitodev/) [](https://cyskills.com.br/) |
| 41 | + |
| 42 | + |
| 43 | +<div style="background-color: #DDA0DD; padding: 10px; border-radius: 5px;" role="note" aria-live="polite"> |
| 44 | + <p>💡 Este repositório é o seu ponto de partida para automatizar testes em páginas web com Cypress. Crie scripts poderosos, escaláveis e prontos para dominar qualquer aplicação! 🚀💻</p> |
| 45 | + <p>⚡ Comece sua jornada de automação e leve seus testes para o próximo nível. O futuro dos testes está em suas mãos. Vamos juntos nesse desafio! 💪</p> |
| 46 | +</div> |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +---------------------- |
| 51 | +## Clonar o projeto |
| 52 | + |
| 53 | + ` git clone https://github.com/santosqa/cypress-web-start.git ` |
| 54 | + ` npm install ` |
| 55 | + |
| 56 | + |
| 57 | +---------------------- |
| 58 | + |
| 59 | +## Comandos de execução |
| 60 | + - Abrir interface gráfica Cypress: ``` yarn cypress open ``` |
| 61 | + - Executar todos testes via terminal: ``` yarn cypress run ``` |
| 62 | + |
| 63 | +---------------------- |
| 64 | +## Links Úteis |
| 65 | + |
| 66 | + - yarn: https://yarnpkg.com/ |
| 67 | + - package cypress yarn: https://yarnpkg.com/package?q=cypress&name=cypress |
| 68 | + - github cypress: https://github.com/cypress-io/cypress |
| 69 | + |
| 70 | + |
| 71 | + |
| 72 | +---------------------- |
| 73 | + |
| 74 | +## instalação completa: |
| 75 | + |
| 76 | + - Node.js |
| 77 | + - $ pm install --global yarn -2 |
| 78 | + - verifique que o yarn está instalado: $ yarn --version |
| 79 | + - no mac execute o comando para garantir que esteva atualizado o arquivo: $ source ~/.zshrc |
| 80 | + |
| 81 | + - Iniciar o projeto: $ yarn init -2 |
| 82 | + - Instalar cypress: $ yarn add [email protected] -D |
| 83 | + ( o argumento -D, indica que o pacote será adicionado como uma dependência de desenvolvimento no projeto.Em resumo, adiciona o Cypress como uma dependência que será usada apenas no ambiente de desenvolvimento, sem ser incluída no ambiente de produção.) |
| 84 | + - abrir o cypress: $ yarn cypress open |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## DOC Cypress |
| 89 | + - Viewport: https://docs.cypress.io/api/commands/viewport |
| 90 | + - Hooks BeforeEach: https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests#Hooks |
| 91 | + |
| 92 | + |
| 93 | +---- |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | +## Dicas |
| 98 | + |
| 99 | +<div style="background-color: #E6E6FA; padding: 10px; border-radius: 5px;" role="alert" aria-live="assertive"> |
| 100 | + <strong>🔥 1. Uso de XPATH!</strong> |
| 101 | + <p>A * Embora o Cypress não tenha suporte nativo para uso de XPath, é possível alcançar o mesmo objetivo de maneira organizada e nativa sem precisar importar plugins como "cypress-xpath". </br> |
| 102 | + * Este exemplo demonstra como validar a mensagem de alerta para o campo obrigatório "Nome Completo". |
| 103 | + |
| 104 | + * XPath equivalente: |
| 105 | + "//label[text()='Nome Completo']/.//div[contains(@class, 'alert-msg')]" |
| 106 | + |
| 107 | + * Implementação nativa com Cypress sem o uso do XPATH: |
| 108 | + |
| 109 | + cy.contains('label', 'Nome Completo') // Localiza o rótulo com o texto "Nome Completo" |
| 110 | + .parent() // Navega para o elemento pai do rótulo |
| 111 | + .find('.alert-msg') // Busca o elemento com a classe 'alert-msg' |
| 112 | + .should('be.visible') // Garante que o alerta está visível |
| 113 | + .and('have.text', 'O campo nome é obrigatório.'); // Valida o texto do alerta. Use .have.text quando o objetivo é verificar o texto exato e completo de um elemento. |
| 114 | + |
| 115 | + </em></p> |
| 116 | +</div></br> |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | +# |
| 121 | + |
| 122 | +--- |
| 123 | + |
| 124 | + [Ricardo Santos QA](https://github.com/santosqa) 👋🏼 |
0 commit comments