QA automation challenge for a generic web application
Automate key workflows on a sample website to demonstrate ability to:
- Write maintainable automated tests
- Handle dynamic UI elements
- Validate error and success flows
- Produce clear test reports
Note: To run these tests, you’ll need access to a compatible test site. If you’d like to try the suite, please contact me for a suitable test URL.
- Framework: Playwright
- Language: TypeScript
- Browsers: Chromium, Firefox, WebKit
See scenarios.md for full details:
- Navigates from homepage to blog listing via menu links
- Verifies blog posts load correctly with titles and dates
- Handles popup windows and dynamic menus
- Tests pagination controls (arrows and page numbers)
- Validates content updates between pages
- Verifies chronological date ordering (newest → oldest)
- Empty form submission validation
- Invalid email format error handling
- Invalid credentials error messaging
- Verifies no redirect on failed login
- Node.js (v18+ recommended)
- Clone and navigate to the project:
git clone https://github.com/ben-marrett/playwright-test-examples.git
cd qa-automation-challenge- Install dependencies:
npm install- Install Playwright browsers:
npx playwright install npx playwright test npx playwright test tests/blogNavigation.spec.ts
npx playwright test tests/blogPagination.spec.ts
npx playwright test tests/negativeSignIn.spec.ts npx playwright test --project=chromium
npx playwright test --project=firefox
npx playwright test --project=webkitRun in headed mode (watch browser):
npx playwright test --headedDebug mode (step through):
npx playwright test --debugInteractive UI mode:
npx playwright test --uiAfter running tests, view the HTML report:
npx playwright show-report reports/playwright-report- Test execution results (pass/fail)
- Test annotations with captured data (blog titles, dates, error messages)
- Screenshots on failure
- Execution time and browser information
- HTML Report:
reports/playwright-report/ - Screenshots:
reports/test-results/
qa-automation-challenge/
├── tests/
│ ├── blogNavigation.spec.ts # Scenario 1
│ ├── blogPagination.spec.ts # Scenario 2
│ └── negativeSignIn.spec.ts # Scenario 3
├── reports/
│ ├── playwright-report/ # HTML reports
│ └── test-results/ # Screenshots & artifacts
├── playwright.config.ts # Test configuration
├── package.json # Dependencies
├── scenarios.md # Test scenarios
└── README.md # This file
- TypeScript for type safety
- Cross-browser testing (Chromium, Firefox, WebKit)
- Test steps for structured reporting
- Screenshots captured on failure
- Test annotations with captured data
- No credentials required: Negative sign-in tests validate error handling only
- Cross-browser compatible: All tests verified on Chromium, Firefox, and WebKit
- Test isolation: Each test runs independently for reliability
- All dependencies: Listed in
package.jsonand installed vianpm install
Branch: ben-marrett