Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EQS] EngageSphere Automated Tests #9

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

EduQuaresimin
Copy link

@EduQuaresimin EduQuaresimin commented Oct 12, 2024

EngageSphere Automated Tests

Sample project to test EngageSphere web application.

What has been done so far

  • All basic and intermediate level tests
  • Pipeline running on GitHub Actions
  • Static code analysis with ESLint
  • Test suites organized by functionality

To Do

  • Advanced level tests
  • Component testing
  • Increase test coverage
  • Find the bug and the easter egg

Copy link
Owner

@wlsf82 wlsf82 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excelente trabalho @EduQuaresimin! 👏🏻 👏🏻

Deixei comentários ao longo do seu código, os quais creio que lhe ajudarão a melhorar o design do mesmo.

Fique a vontade para implementar as mudanças sugeridas, no entanto, só faça o git push após o próximo encontro, que é quando farei o próximo review.

.github/workflows/ci.yml Outdated Show resolved Hide resolved
.github/workflows/ci.yml Outdated Show resolved Hide resolved
.github/workflows/ci.yml Outdated Show resolved Hide resolved
cypress.config.js Outdated Show resolved Hide resolved
cypress/e2e/api.cy.js Outdated Show resolved Hide resolved
cypress/e2e/gui/basic.cy.js Outdated Show resolved Hide resolved
cypress/e2e/gui/basic.cy.js Outdated Show resolved Hide resolved
cypress/e2e/gui/basic.cy.js Outdated Show resolved Hide resolved
cypress/e2e/gui/basic.cy.js Outdated Show resolved Hide resolved
cypress/fixtures/example.json Outdated Show resolved Hide resolved
@EduQuaresimin
Copy link
Author

Fala @wlsf82 , boa tarde! Fiz as correções conforme você solicitou, acredito que deve estar tudo certo, com exceção da pipeline.

No arquivo ci.yml fiz as alterações como você sugeriu, porém, dois comportamentos estranhos aconteceram:

  1. O job api-tests estava falhando pois o Cypress não conseguiu verificar se o server estava rodando na baseUrl.
  • Para corrigir esse problema pesquisei um pouco e cheguei a conclusão de alterar a configuração no comando que executa os testes de API, desta forma cypress run --spec 'cypress/e2e/api.cy.js' --config baseUrl=http://localhost:3001
  • Porém não sei ser seria o mais indicado, pois esse valor não será utilizado para nada, apenas para corrigir o problema da pipeline.
    image
  1. O job gui-tests consegue executar, porém alguns testes falham porque não consegue encontrar alguns elementos dos testes.
  • Primeiro achei que fosse alguma informação dinâmica, que por conta de ter reiniciado o servidor, acabou quebrando os testes, mas não é o caso.
  • Rodei os testes em headless mode localmente e todos passaram, garanti que as informações dinâmicas não iriam atrapalhar mais, porém da mesma forma os testes não passaram na pipeline.
    image

image

Minhas dúvidas são as seguintes:

  1. Existe alguma outra forma de tratar o problema da baseUrl no job api-tests, como setar como null, ou da forma que fiz ja seria o ideal?
  2. O que pode estar causando os testes falharem no job gui-tests? Pensei em rodar no Cypress Cloud para ver a hora que falha e porque falha também.

Copy link
Owner

@wlsf82 wlsf82 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excelente trabalho @EduQuaresimin! 👏🏻 👏🏻 👏🏻

Deixei mais alguns comentários, os quais recomendo considerar também.

Sobre as falhas dos testes de GUI no CI, recomendo (no mínimo) salvar as screenshots e vídeos da execução como artefatos, mas se puder integrar com o Cypress Cloud para analisar o Test Replay, melhor ainda.

Por fim, lembre-se de pedir para algum colega revisar seu código também.

.github/workflows/ci.yml Show resolved Hide resolved
cypress/e2e/api.cy.js Outdated Show resolved Hide resolved
cypress/e2e/api.cy.js Show resolved Hide resolved
cypress/e2e/gui/basic.cy.js Outdated Show resolved Hide resolved
cypress/e2e/gui/basic.cy.js Outdated Show resolved Hide resolved
@wlsf82
Copy link
Owner

wlsf82 commented Oct 15, 2024

Sobre as falhas dos testes de GUI no CI, recomendo (no mínimo) salvar as screenshots e vídeos da execução como artefatos, mas se puder integrar com o Cypress Cloud para analisar o Test Replay, melhor ainda.

Pensando melhor, creio que o problama é que o backend não está "de pé" e a maioria dos teus testes depende não só do frontend, mas também do backend.

Cc. @EduQuaresimin. ☝🏻

@EduQuaresimin EduQuaresimin requested a review from wlsf82 October 16, 2024 07:33
@EduQuaresimin EduQuaresimin changed the title [EQS] Cypress Config and Basic Tests [EQS] EngageSphere Automated Tests Oct 16, 2024
Copy link
Owner

@wlsf82 wlsf82 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mais uma vez bom trabalho @EduQuaresimin! 👍🏻

Deixei novos comentários os quais creio que lhe ajudarão a melhorar ainda mais o design dos testes.

Lembre-se de só aplicar as mudanças após o próximo encontro da Test Design Masterclass (19/10/2024).

cypress/e2e/api.cy.js Show resolved Hide resolved
cypress/e2e/api.cy.js Show resolved Hide resolved
cypress/e2e/api.cy.js Show resolved Hide resolved
cypress/e2e/gui/a11y.cy.js Show resolved Hide resolved
cypress/e2e/gui/a11y.cy.js Show resolved Hide resolved
cypress/e2e/gui/a11y.cy.js Show resolved Hide resolved
cypress/e2e/gui/messenger.cy.js Show resolved Hide resolved
cypress/e2e/gui/messenger.cy.js Show resolved Hide resolved
cypress/support/commands.d.ts Show resolved Hide resolved
package.json Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants