Reading is not enough: you learn Playwright by building. This page gives you one checkpoint challenge per module of the course, using free practice sites, so you can prove your skills step by step from your first test to a CI-ready framework.
📖 What You’ll Learn: how to use the checkpoints, the practice applications, a challenge for each of the 15 modules (setup, JavaScript, TypeScript, locators, assertions, organization, data, network, API, framework design, debugging, CI/CD, AI testing, projects and interview readiness).
🏋️ How to Use This Page
Every lesson in the Playwright Tutorial with TypeScript ends with its own assignment. This page adds one module checkpoint per module: a slightly bigger challenge that combines the lessons of that module. Complete it before moving on.
Rules for every checkpoint:
- Write the solution in TypeScript with Playwright Test.
- Every test must pass three times in a row:
npx playwright test --repeat-each=3. - No
waitForTimeout, noforce: true, no selectors inside tests from Module 10 onward. - Commit each checkpoint to Git with a clear message, so your repository shows your progress.
Practice applications used: https://www.saucedemo.com, https://the-internet.herokuapp.com, https://demo.playwright.dev/api-mocking, https://jsonplaceholder.typicode.com, https://automationexercise.com and the SQA Tools practice pages.
| Level | Modules | Badge |
|---|---|---|
| 🟢 Beginner | 1 to 5 | Playwright Practitioner |
| 🔵 Intermediate | 6 to 9 | Playwright Engineer |
| 🟠 Advanced | 10 to 13 | Playwright Architect |
| 🟣 Career | 14 to 15 | Interview Ready |
🟢 Module 1 Checkpoint: Getting Started
Lessons: What Is Playwright, Install, First Test, Config, CLI
- Create a new TypeScript project with
npm init playwright@latestand remove the example test. - Configure
baseURLfor Sauce Demo,listplushtmlreporters, screenshots on failure and Chromium plus Firefox projects. - Write three login tests (valid, locked out, empty form) in one
describeblock. - Add npm scripts
test,test:headed,test:uiandreport. - Write a short README explaining how to install and run the project.
🟢 Module 2 Checkpoint: JavaScript Essentials
Lessons: Variables to Promises and Async/Await
- Write a function
calculateCartTotal(items)that takes an array of{ name, price, qty }objects and returns the total rounded to two decimals. - Write a function that returns the most expensive item using
reduce. - Write an async function
fetchUser(id)that callshttps://jsonplaceholder.typicode.com/users/<id>withfetchand handles errors with try/catch. - Fetch users 1 to 5 in parallel with
Promise.alland print their names.
🟢 Module 3 Checkpoint: TypeScript for Playwright
Lessons: TypeScript Variables to TypeScript for Playwright
- Create interfaces
ProductandCartItem, and a typeSortOption = 'az' | 'za' | 'lohi' | 'hilo'. - Create a generic class
Repository<T extends { id: number }>withadd,findByIdandallmethods. - Rewrite
calculateCartTotalfrom Module 2 with full types. - Add
tsconfig.jsonwithstrict: trueand makenpx tsc --noEmitpass.
🟢 Module 4 Checkpoint: Locators and Interactions
Lessons: Locators, CSS and XPath, Actions, Codegen, Alerts, Frames, Tabs, Web Tables, Downloads
On the-internet.herokuapp.com:
- Accept, dismiss and answer the three JavaScript dialogs on
/javascript_alerts. - Open the new window on
/windowsand assert its heading, then return to the first tab. - Read the text of the middle frame on
/nested_frames. - On
/tables, find the person with the highest amount due in#table1by reading all rows. - Select both options on
/dropdown, tick both boxes on/checkboxes, and upload a file on/upload.
🟢 Module 5 Checkpoint: Assertions, Waits and Screenshots
Lessons: Assertions, Waits, Screenshots and Videos, Visual Testing
- On
/dynamic_loading/1of the-internet, click Start and assert “Hello World!” appears, using only auto-waiting and web-first assertions. - Use
expect.softto check five product prices on Sauce Demo in one test. - Configure screenshots and videos on failure and attach a custom screenshot with
testInfo.attach. - Create visual baselines for the Sauce Demo login page (full page and
.login-boxelement), masking the credentials panel.
🔵 Module 6 Checkpoint: Organizing Tests
Lessons: Hooks, Tags and grep, Annotations, Fixtures, Custom Fixtures, Retries and Flaky Tests
- Replace every
beforeEachlogin in your Sauce Demo suite with a customloggedInPagefixture. - Tag tests
@smokeand@regressionand add npm scripts for each. - Mark one test
test.fixmewith a reason and onetest.slow. - Configure retries for CI only with
trace: 'on-first-retry', write a deliberately flaky test, and find it under Flaky in the report. Then delete it.
🔵 Module 7 Checkpoint: Test Data, Configuration and Cross-Browser
Lessons: Parameterized Tests, JSON, CSV, .env, Multiple Configs, Cross-Browser, Mobile
- Move all login test data into
test-data/logins.jsonand generate one test per row. - Read the Sauce Demo password from a
.envfile and add.env.example. - Run the suite in Chromium, Firefox, WebKit, branded Chrome and a Pixel 5 project.
- Add responsive tests for 375, 768 and 1440 px widths.
🔵 Module 8 Checkpoint: Authentication and Network
Lessons: Login Sessions, Network Mocking, Passkeys
- Add a setup project that logs in to Sauce Demo once and saves
storageState; make all inventory tests reuse it. - On demo.playwright.dev/api-mocking, mock the fruits API with your own list, then simulate an empty list and a 500 error.
- Block all images on Sauce Demo and measure the time difference of your suite.
🔵 Module 9 Checkpoint: API Testing
Lessons: API Testing, API with POM
- Create an
apiproject for JSONPlaceholder withbaseURL. - Write a
PostsApiclass with typedlist,get,create,updateanddeletemethods. - Write a full CRUD test suite (at least 8 tests) using the class.
- Add one negative test (
/posts/0returns 404).
🟠 Module 10 Checkpoint: Framework Design
Lessons: POM, Folder Structure, Design Patterns, SOLID, BDD, BDD Framework, Enterprise Framework
- Restructure your Sauce Demo suite into
src/andtests/with page objects, aHeaderComponentand fixtures. - Add path aliases and an
environments.tsfile selected byTEST_ENV. - Add ESLint with
eslint-plugin-playwrightand fix all warnings. - Write two features in Gherkin (login, checkout) using the BDD approach from Module 10.
🟠 Module 11 Checkpoint: Debugging and Reporting
Lessons: Debugging, Trace Viewer, Reporters, Allure
- Break a locator, then diagnose it three ways: error call log,
--debugInspector, and Trace Viewer. Write a short note on which was fastest. - Wrap your checkout test in
test.stepblocks and view them in the trace and HTML report. - Configure
list,html,junitand Allure reporters together. - Write a custom reporter that prints the five slowest tests.
🟠 Module 12 Checkpoint: Parallel Execution and CI/CD
Lessons: Parallel and Sharding, GitHub Actions, Jenkins, Docker and Kubernetes
- Enable
fullyParalleland make the whole suite pass with--workers=4 --repeat-each=3. - Push the project to GitHub with a workflow that runs smoke tests on pull requests and the full suite nightly.
- Shard the nightly run into 3 jobs with a merged HTML report.
- Run the suite locally inside the official Playwright Docker image.
🟠 Module 13 Checkpoint: AI-Powered Testing
Lessons: Playwright MCP, Test Agents, AI Tools for QA
- Install Playwright MCP in your AI client and use it to explore the Sauce Demo checkout flow.
- Run
npx playwright init-agents, write a seed test, and generate a test plan for sorting and the cart. - Generate tests from the plan, review them, and refactor them into your page objects.
- Write a one-page reflection: what the agents did well, what you had to fix, and where human review was essential.
🟣 Module 14 Checkpoint: Projects
Complete Project 1, Project 2: E-commerce Framework and Project 3: API + UI Hybrid Framework, and publish at least Projects 2 and 3 on GitHub with a README, a passing CI badge and a short “design decisions” section.
🟣 Module 15 Checkpoint: Interview Readiness
- Answer the 200 Playwright + TypeScript questions out loud, timing yourself; mark the ones you could not explain.
- Prepare a 3-minute walkthrough of your Project 2 or 3 framework.
- Take the Playwright with TypeScript MCQ assessment and review every wrong answer.
- Practise the scenario questions in interview questions for experienced.
❓ FAQ
🤔 Where can I practise Playwright automation for free?
Use the free demo sites listed on this page (Sauce Demo, the-internet, Playwright’s API-mocking demo, JSONPlaceholder and Automation Exercise) and the SQA Tools practice pages, together with the module checkpoints.
🤔 Are solutions provided for these assignments?
Each linked lesson contains the code and techniques you need. Compare your work with the examples in the lessons and the two framework projects.
🤔 How long does it take to complete all assignments?
With 1 to 2 hours a day, most learners finish the module checkpoints and projects in about 2 to 3 months.
🤔 Do I need to finish every checkpoint before the projects?
Finish at least Modules 1 to 10 before Project 2, and Modules 1 to 12 before Project 3.
🎯 Next Steps
- 🏗️ Playwright Testing Practice Exercises
- 💼 Playwright Interview Questions and Answers
- 📄 Playwright Cheat Sheet
- 🎭 Playwright Tutorial with TypeScript
🎬 Watch the full Playwright tutorial series on YouTube!
Subscribe to SqaToolsByDY • Practice on sqatools.in