End-to-end test automation framework for Helly Hansen Sportwear applications using:
- Playwright
- Cucumber (BDD)
- TypeScript
- Allure Reporting
This framework supports multi-environment, multi-locale, and multi-device (desktop/mobile) execution.
- Node.js (recommended version: 18+)
- npm (comes with Node.js)
- Git
- (Optional) Visual Studio Code
npm installnpx playwright installHH-QE-Sportwear-TestAutomation
├── tests
│ ├── features
│ │ ├── desktop
│ │ └── mobile
│ ├── step-definitions
│ └── support
│ ├── world.ts
│ ├── hooks.ts
│ └── helpers
├── page-objects
├── config
│ ├── env
│ │ ├── stg.json
│ │ └── stg3.json
│ └── locales
│ └── en_us.json
├── reports # generated
├── allure-results # generated
├── allure-report # generated
├── package.json
├── cucumber.js
├── .gitignore
└── README.md
Generated folders like
node_modules,reports,allure-results, andallure-reportare ignored via.gitignoreand should not be committed.
The framework execution is fully driven by environment variables.
| Variable | Description | Example |
|---|---|---|
| TEST_ENV | Target environment | stg, stg3 |
| LOCALE | Site locale | en_us |
| DEVICE_TYPE | Device type | desktop / mobile |
| BROWSER | Browser | chromium |
| TAGS | Cucumber tags | @e2e_desktop |
TEST_ENV=stg LOCALE=en_us DEVICE_TYPE=desktop BROWSER=chromium TAGS="@e2e_desktop" npm testThis command will:
- Run tagged scenarios
- Generate Allure results
- Generate Allure report
- Not automatically open the report
$env:TEST_ENV="stg"
$env:LOCALE="en_us"
$env:DEVICE_TYPE="desktop"
$env:BROWSER="chromium"
$env:TAGS="@e2e_desktop"
npm testTags are defined in feature files and controlled via the TAGS environment variable.
Common tags:
- @smoke
- @regression
- @e2e_desktop
- @e2e_mobile
(Allure report is generated automatically as part of test execution)
npm testnpm run allure:openOpening the Allure report is intentionally manual to support CI/CD execution.
Located under:
config/env/
Examples:
- stg.json
- stg3.json
These files must contain only non-sensitive / dummy data.
Located under:
config/locales/
- Do not commit secrets or real credentials
- Keep all environment-specific data configurable
- Use Page Object Model for UI interactions
- Use tags to control execution scope
- Keep generated artifacts out of version control
npx playwright installbrew install allure