QA
Senior~90 minFramework designConfigPage ObjectsFixturesTest dataCI

Build the SwagShop framework from scratch

App: SwagShop, a practice e-commerce demo store (Saucedemo-style). Login: standard_user, locked_out_user, problem_user, performance_glitch_user / secret_sauce.

Interview scenario

"Here is an empty folder and SwagShop. Set up the automation framework you would put in front of a client: Playwright config, page objects, fixtures, test data, a couple of production-grade tests, and a README. Treat it like a real repo, not an exercise. Start with login and the cart; the checkout maths is where the bugs live."

What the framework must have

  1. playwright.config.ts you write yourself: testDir, baseURL from an environment variable with a default, retries, reporter, trace/screenshot on failure.
  2. pages/ with at least two page objects; fixtures.ts that extends test (for example a logged-in page or a ready page object).
  3. tests/ with at least two spec files and four tests in total, using only fixtures and page objects, grouped with test.describe or tagged @smoke/@regression.
  4. data/ or utils/ for test data and helpers; a README that says how to install and run.
  5. Everything green: in the browser for the practice apps, and on GitHub Actions with your own config for every app.
README.mdPlaywright · TypeScript
Sign in to run on GitHub

Your whole project, like a repo in VS Code. Run in browser runs every *.spec.ts against the practice app with the in-browser runtime (it ignores playwright.config.ts but the review checks it). Run on GitHub commits the project and runs it with real Playwright and your config, with BASE_URL=https://interview.qatechlabs.com/sandbox/swagshop. Ctrl/⌘ + Enter runs in the browser.

Save your lab code to a GitHub repo in your name, automatically after every run.Sign in with GitHub
/sandbox/swagshopOpen ↗

Test output

Build your project in the file tree, then Run in browser for fast feedback or Run on GitHub to prove it with real Playwright and your config.

Reference solution

Try it yourself first. Then compare with the Playwright solution and the same framework in Selenium Java with TestNG.