E2E tests for RedHat Console.
Tools:
- Typescript: close to the UI developers ecosystem
- NPM: build tool
- Node: runtime
- Playwright: framework for UI testing
- GH Action: infrastructure
Local requirements:
npm
:8.X
node
:16.X
Before running the tests you would need to provide a valid username and password to be used in the form of environment variables.
export ENV_TYPE=... # stage or production - depends on environment
export USE_BETA=... # true/false to enable test run on Beta
export TEST_USERNAME=...
export TEST_PASSWORD=...
export TEST_ADMIN_USERNAME=...
export TEST_ADMIN_PASSWORD=...
export TEST_2_USERNAME=...
export TEST_2_PASSWORD=...
export STARTING_PAGE=...
or drop a .env
file in the root folder with a similar content:
USE_BETA=... # true/false to enable test run on Beta
ENV_TYPE=... # stage or production - depends on environment
TEST_USERNAME=...
TEST_PASSWORD=...
TEST_ADMIN_USERNAME=...
TEST_ADMIN_PASSWORD=...
TEST_2_USERNAME=...
TEST_2_PASSWORD=...
STARTING_PAGE=...
Now you can run the tests:
npm install # Install all the needed Node dependencies
npx playwright install # Install all the Playwright dependencies and needed browsers
npx playwright test --project chromium # Executes the tests on a selected browser (`chromium` in this case)
npm test-chrome # package.json has prepared scripts so you don't need to call whole npx command
npm test-firefox
if you need to debug you can use the Playwright console and have a Playwright helper available in console by executing:
PWDEBUG=1 npx playwright test --project chromium --debug
For enabling slow mode 1s for debugging use
SLOW_MODE=1000 npx playwright test
For enabling error logging use
ENABLE_ERR_LOGGING=1 npx playwright test
This repository uses GitHub Actions as infrastructure to run the tests against publicly accessible services.
The CI only runs on the main
branch to avoid sharing secrets on branches and forks.
The only sensitive data in this project is the username and password used to login. Those are stored in GitHub Encrypted Secrets.