
Explore tools for testing modern web apps and APIs, including Playwright, Cypress, Techo, while learning AI testing development and prompt engineering. Build a complete project using AI with modern patterns.
Set up a Playwright testing project by running npm init, optionally install Prettier, install the playwright/test package, and run mpx playwright install to download Chromium, Firefox, and Webkit.
Set up a tests folder, create example.spec.ts in TypeScript, and verify the example domain text with goto, locator, and expect.
Master Playwright CLI options: run tests in headful mode with --headit, switch browsers with --browser (e.g., Firefox or all), and specify a test path for targeted runs.
Learn to automate clicking elements with Playwright: load the page, click by id or text, locate error messages, and assert messages using a locator in a two-test example.
Master Playwright selectors, including text, CSS (id, class, elements), visible targets, combos, and XPath, to reliably click elements using page.click.
Learn to automate login form validation in Playwright by typing into username and password fields, clicking sign in, and asserting the error message for invalid credentials.
Explore Playwright's assertion library, checking URL, title, and element visibility and text. Use page.locator on example.com to assert URL, title, h1 text, and run tests with npx playwright test.
Explore annotations in Playwright to group tests into suites, use custom tags to mark tests, and apply skip, only, and describe to control and organize test execution.
Learn to tag tests in Playwright by adding tag names to test descriptions, then run or skip specific groups with grep or grep invert, enabling multiple tags.
Configure Playwright with global configuration files, using playwright.config.ts, setting timeout, retries, and browser-specific projects (Chromium, Firefox, WebKit) to run tests efficiently.
Learn to configure and use Playwright reporters, including line, list, dot, JUnit, and HTML. Explore generating HTML reports, viewing them via the Playwright report folder and index.html.
Learn to capture full page and single element screenshots with Playwright, using page.goto and the screenshot function, and target specific elements like the h1.
Explore before and after hooks in Playwright to simplify setup across tests, using before each, before all, after each, and after all within a test.describe suite.
Create your own custom wrapper functions around Playwright by building helper files, exporting async functions, and importing them into tests to encapsulate actions like loading pages and asserting titles.
Create npm scripts to run Playwright tests for Chromium, Firefox, and WebKit, using the project config, and override headless or headed modes via the CLI with double dashes.
Use the Playwright inspector to pause test execution with page.pause, observe app state, and debug before resuming; learn to capture screenshots and retain videos of failed tests.
Enable screenshots and videos on test failure in Playwright, configure retain on fail for videos and only on failure for screenshots, and use the resulting artifacts to debug failing tests.
Learn to run tests in parallel with Playwright by marking a test describe with the dot parallel annotation, then execute tests concurrently to speed up the suite.
Learn to set up testing project in AI editor using AI models like Cloud Code and Codec CLI, building tests with PageObjects model, adding reporting, prompt engineering, and mass refactoring.
Enable Playwright MCP in Cursor, import the MCP JSON, and configure the server using the two command options, with tips on avoiding sandbox errors and older node.js compatibility.
Practice building a Playwright MCP server project from scratch in a live workshop, using AI agents to create, configure, and test with page objects, test scenarios, and a seed file.
Create tests and page objects directories and add a playwright-config at the project root; set scripts to run chrome headful, chrome headless, and webkit headless, and remove a redundant line.
Generate first test using prompts with Playwright on the DemoBlaze site, opening the URL and assert-core-elements with first-spec.js, while AI iterates and resolves Node.js version 18 issues.
Refactor the first spec into a page object model by prompting AI to create a home page class and initialize objects for go to and assertions in a before hook.
Use ai to generate a login test from scratch with a page objects model and prompts, including before and after hooks and headless chrome execution.
Learn how to use AI-driven refactoring to switch JavaScript coding rules, enabling semicolons across tests and classes with pre-tier automation and auto-lint feedback.
Install and configure Mochawesome reporting for a Playwright project, update scripts and config, run the first spec, and generate HTML and JSON reports for browser viewing and dashboard use.
Leverage ai-driven refactoring to convert a JavaScript project to TypeScript, create a TypeScript config, delete legacy JavaScript files, and verify tests across the Playwright framework.
Ai analyzes the website and generates end-to-end tests. It uses the page objects pattern in TypeScript and writes, runs, and iterates the code automatically.
Initialize a node project for Playwright and REST API testing with AI agents, enabling the Playwright MCP server. Use iterative steps, create package.json, then prepare to add Playwright and Prettier.
Learn to set up Prettier with an AI assistant: install Prettier, create a Prettier RC file with single quote true and semi false, review the config, and install dependencies.
Install Playwright test with a simple prompt and let AI install dependencies and browsers. Automate API testing using generated endpoints and a page objects model with CI integration.
Analyze this rest api to extract endpoints, test booking operations, health checks, and token authentication, then generate an endpoints.md and smoke test scenarios for Playwright.
Automate API testing with AI-generated Playwright code, skip authentication-dependent tests, and auto-configure scripts to deliver ready-to-run tests in minutes.
Implement the getAuthentication method in a before hook to provide a token for all tests, unskip and verify eight tests pass, and prepare readable authentication scenarios.
Learn to generate test case comments and documentation with AI prompts, creating per-test annotations that explain parameters, returns, and test behavior for code and page objects.
Learn to implement a CircleCI ci-cd workflow by prompting AI to generate a CircleCI config.yaml with placeholder credentials, enabling Playwright API tests to run on CircleCI.
Implement the page objects model, refactor tests and architecture across pages like authentication, base, booking, and ping, and ensure all tests pass.
Explore Puppeteer basics by examining the official docs, API reference, and practical examples, including parameters and eval usage, then dive into testing with Puppeteer in code.
Set up a Puppeteer testing project by initializing npm, and installing Puppeteer, Mocha, Expect.js, and Prettier. Create a tests folder with demo.spec.js and configure a .prettierrc for formatting.
Create a Puppeteer test with Mocha by importing packages, defining a describe and it suite, configuring options, launching, setting the viewport, logging the browser version, and closing the browser.
Practice browser actions with Puppeteer by loading a site with page.goto, pausing with Node.js setTimeout, and navigating with page.reload, goBack, and goForward, while logging the page title, URL, and viewport.
Utilize test hooks like beforeEach and afterEach to centralize browser, page, and viewport setup, minimizing boilerplate and ensuring each test starts with a consistent environment.
Explore assertions using the xspect.js BDD toolkit to validate page title and URL in Puppeteer tests, and leverage waitForSelector and expect.js for reliable, cross-browser checks.
Leverage test tagging to run only specific tests or skip outdated ones by applying .only or .skip to it blocks or describes, avoiding commenting out tests and streamlining test suites.
Learn to use Puppeteer debugger to pause and inspect tests by launching the browser with DevTools enabled, inserting debugger calls via page.evaluate, and stepping through code.
Master web selectors with Puppeteer by using CSS, XPath, classes, IDs, and data test attributes to fill a login form, submit with invalid credentials, and validate the error.
Learn to capture the app state by taking screenshots and generating PDFs with Puppeteer in automated tests. Save outputs by specifying file paths and names like myScreenshot.png and myPDF.pdf.
Explore device emulations with Puppeteer to simulate desktops and mobile devices, selecting known devices like the iPhone 15 Pro, using page.emulate before visiting a site, and logging device details.
Learn to perform file uploads in Puppeteer tests by locating an input type file, creating a test file, using page.uploadFile, submitting, and asserting the file upload response with waitForSelector.
Learn to generate practical test reports with mocha awesome by installing the package, configuring your test script, and producing HTML and JSON outputs for sharing with stakeholders.
Set up and run tests with npm scripts in package.json using mocha for puppeteer, specify test paths with js suffix, 30-second timeout, and mochaawesome reporter; switch between mpx or scripts.
Design and use custom functions in Puppeteer and JavaScript by passing the page object as an argument, then execute and log the page title within tests.
Demonstrates building a complete end-to-end test for an eShop flow using Puppeteer, Mocha, and a boilerplate in Visual Studio Code, including login, add-to-cart, checkout, and order completion.
Implement the page objects model to encapsulate selectors and actions in page classes, such as a login page, improving readability and maintainability of tests by separating concerns.
Explore the Puppeteer docs and api overview, learn how to search for functions, and review key features like click, emulating devices, and the keyboard object.
Create a new project named TestCafeProject, initialize with npm, install TestCafe via create-testcafe, choose JavaScript, skip sample tests, set tests as folder, and add Prettier with a .prettierrc.
Create and run your first TestCafe test by defining a fixture and page, typing a name into the developer name input, clicking submit, waiting, and viewing the result in Chrome.
Learn command chaining in TestCafe by chaining actions after a single await T, including type text, click, and wait. Compare with explicit awaits to choose a readable, consistent style.
Explore how assertions validate website output using TestCafe by checking element existence, visibility, and text content with selectors stored in variables and chained expectations.
Interact with web elements using test cafe by clicking radio buttons and selecting from a drop-down with IDs or datatest IDs, finding options by text, and chaining actions with waits.
Learn to run or skip tests with .only and .skip in test cafe, and apply tagging to tests and fixtures. Streamline debugging with command chaining for execution and ticket notes.
Learn how to use metadata to tag and filter tests in test cafe, defining attributes like type, priority, and author to run focused suites such as smoke or regression tests.
Run your TestCafe tests in headless mode to speed up execution without rendering the UI, using a simple headless flag for Chrome, Safari, or Firefox.
Master taking full page and single element screenshots with TestCafe by using takeScreenshot and takeElementScreenshot, selecting elements with a selector like h1, and storing results in the project's root.
Learn to use TestCafe reporters to tailor test output, including the predefined default spec reporter, and switch with the -R flag to XUnit, JSON, XML, or list reporters for dashboards.
Explore parallel test execution in TestCafe, running multiple browser instances concurrently to speed up test suites, while balancing CPU costs and recommending a concurrency of 2–4 for larger projects.
Create an end-to-end login test for a source demo site, using fixtures and selectors to validate negative and positive scenarios and verify inventory container appears after login.
Learn how the page objects model encapsulates selectors and functionality into login and other pages, refactoring end-to-end tests in TestCafe for clearer, reusable test automation.
learn to test rest apis with TestCafe, using a single framework for both ui and api tests to simplify maintenance and cover endpoints and token authorizations.
Learn to test rest apis with TestCafe by validating status codes, including 200 success and 404 not found, using positive and negative scenarios and assertions.
Apply a get request test to fetch a single user, assert the response status is 200, and validate body data id 2 and first name Janet using TestCafe.
Test a post /api/login with positive and negative scenarios, asserting status 200 and a valid token for success, and validating error messages for failures.
learn to test negative post requests against the login api, verify 400 missing password errors, and add assertions for response body, preparing for subsequent put requests.
Learn how to perform a REST API PUT request to update a user, sending name and job in the body and validating a 200 response with an updatedAt timestamp.
Create a deleterequest test, call the delete endpoint for a specific user, and assert the response status is 204. The lesson demonstrates running tests and preparing for token-based authentication.
Describe testing a protected rest api endpoint with a bearer token in the authorization header, performing a get request to /favorites, and validating 200 and 401 responses with TestCafe.
Demonstrate negative authentication testing by removing the token and headers to verify a protected API endpoint returns 401 unauthorized, confirming secure access control.
Set up a performance testing workflow with npm, testcafe, and testcafe-helpers in VS Code, create a performance-smoke.test.js, import getPerformanceMetrics, and prepare to run and display metrics in Chrome.
Create a perf variable and call getPerformanceMetrics on the test object to capture Windows performance timing metrics, then view raw and computed numbers like ttfb, domready, latency, and dns.
Execute a simple performance test by extracting ttfb, dom-ready, and latency from perf.computed. Set threshold-based assertions in milliseconds.
Measure key performance metrics with TestCafe, including time to first byte, DNS, TCP, DOM-ready, and network latency, to assess backend and caching performance on user experience.
Begin your Cypress testing project by initializing a node project with npm init, installing Cypress and Prettier, and configuring a .prettierrc to use no semicolons, single quotes, and tabs.
Set up Cypress in your testing project, open the test runner, choose end-to-end testing, create a demo spec, run the simple boilerplate test, and explore Cypress directories and config.
Create your first Cypress test by visiting example.com and asserting the URL and title, using Cypress commands autocomplete, URL(), should(), and contain() for reliable end-to-end tests.
Create independent Cypress tests that visit a site, assert the URL and title using should and contain, and review the test runner's logs for two green tests.
Learn to assert element visibility on a page using Cypress. Visit a site, grab selectors with get, and assert visibility or absence with multiple checks.
Discover how Cypress automatically waits for elements with auto-waiting, compare with Selenium’s manual waits, and learn when a static cy.wait pause in milliseconds might be used, with practical examples.
Develop proficiency in reloads and logs in Cypress to debug tests, visit pages, log before and after reloads, and inspect data during test execution within the Cypress test runner.
Learn how to use cyprus hooks to optimize tests by moving site.visit into beforeEach and cleaning up with afterEach, and manage test execution with skip and only.
Learn to automate a form submission using inputs, checkboxes and buttons with Cypress, using data-test selectors, visit the page, fill the form, submit, and assert results.
Perform end-to-end form testing with Cypress by filling inputs, submitting, and asserting visibility and values using chained selectors and one-line assertions.
Create and run a Cypress test to open, verify, and close a modal on practiceautomation.com, then assert modal text and explore simple and form models for data-driven testing.
Learn how to simulate hover effects in Cypress by triggering a mouse over event, verify the text changes to 'you did it', and implement a simple, one-line workaround.
Learn how to control test viewports with Cypress by setting width and height or using presets, enabling accurate device emulation for MacBook, iPhone, and iPad resolutions.
Learn to take full page and single element screenshots with Cypress, and manage overrides to prevent duplicates while targeting selectors like the h1 element.
Learn to count elements in Cypress by asserting an element’s length, such as the number of h1 tags or table rows, using exact or greater or lesser comparisons.
Explore how to read and write files with Cypress, creating and asserting JSON data in data.json, and writing plain text files with encoded content for data-driven tests.
Learn how fixtures in Cypress enable data-driven testing by loading example.json with cy.fixture, aliasing it as user data, and using it to fill and submit a modal form.
Create and use custom commands in Cypress to abstract selectors, improve readability, and reduce duplication, using Cypress.commands.add, getByTestData, getByClass, and getByID, with practical refactoring tips.
Learn how to implement class-based abstraction with Cypress using page objects to refactor tests, improve readability, and promote reuse through methods like open-example-page, assertUrl, and assertTitle.
Learn how to scroll to a page footer in Cypress by selecting the footer with Cy.get, then chaining scrollIntoView to reliably bring the element into view for actions and assertions.
Learn to perform file uploads in Cypress using the select file command with a fixtures file, targeting the input id, submitting the upload, and asserting success.
Learn to clear prefilled inputs and textareas using Cypress, chaining clear and type in one line, and replace defaults with new text on a form field in end-to-end testing.
Master invoking JavaScript inside Cypress tests by wrapping and invoking custom functions, then asserting results with Cypress assertions, using examples like summing numbers and generating data.
Learn to test items in data tables using Cypress, creating a dedicated spec, narrowing scope with within, selecting table rows and data cells, and asserting item and price content.
Configure the base URL in Cypress config and use cy.visit with slash to automatically append endpoints, extracting the value with cypress.config for dynamic assertions.
Explore how to handle flaky tests in Cypress by adding retries to individual tests or global configuration, and see how failed runs are retried until success.
Learn to execute Cypress tests from the command line in headless or headed mode. Specify specs, switch browsers like Chrome, and generate JSON reports for CI/CD pipelines and Kibana.
Learn how to install and configure the Cypress Mocha Awesome Reporter, generate an HTML report, and review test results from the reports folder using a live server.
Create end-to-end tests with a smoke test on the demoblaze.com product store, validating login, cart, and order flows using the Cypress test runner.
Create a login spec (tc_0002_login) with small, parallelizable tests; locate elements by id, fill username and password, click login, and verify the welcome message.
Explore end-to-end testing by validating a product detail page with Cypress, verifying the Nexus 6 name, price, and add-to-cart button visibility.
initialize the project with npm init, install Tyco, mocha, and expectjs, optionally add prettier, configure .prettier.rc, then spin up the Tyco browser and run mocha tests.
Learn to create and run simple Taiko tests with mocha, using an English-like, minimal syntax to open a browser, navigate to a URL, and close the browser.
Use before and after hooks to manage the browser: open, resize, set the viewport, visit the website, and close the browser after each test for cleaner code.
Master Tyco assertions by validating page content with waitFor, waitForSelector, and exists; verify login button, page title, and current URL, then use expect.js imports and module settings.
Demonstrate filling and submitting web forms with Tycho using write and into selectors, clicking login with invalid credentials, and validating the error message with wait for exists.
Master test tagging in Mocha to run only certain tests or skip others. Observe pending status and automate formatting with Prettier according to configuration.
Emulate devices to test on mobile and tablet resolutions using iPhone 6, then adjust network and time zone settings. Learn to run tests with Prettier formatting to keep code organized.
Install the Mocha Awesome custom reporter, then run Mocha with the reporter flag to generate JSON and HTML test reports for sharing with management and for dashboard monitoring.
Learn how to implement the page objects model in Tyco, creating a login page object with selectors and actions to perform login and assert errors.
Create and configure npm scripts in package.json to format code with Prettier and run tests with Mocha, including timeout and reporter settings, and execute via npm run commands.
Explore html basics for testers, including the html5 doctype, root html, head and body, meta tags, and tags, and learn to inspect the dom and browser console for test automation.
Learn the basics of html headings from h1 to h6 and paragraphs, understand their use for indexing and testing with selectors, and explore the dom structure and live preview.
Create HTML links with the a tag by specifying the URL and link text. Use the target attribute to open in the same tab (_self) or a new tab (_blank).
Learn to add images with the img tag using src and alt attributes, include alt text, adjust size with width and height, and use br for line breaks.
Wrap text in HTML formatting elements like b, i, mark, and del to apply bold, italic, highlighted, and deleted styles to headings such as h1 and h2.
Discover how HTML comments hide content using its own syntax, hide a paragraph from the browser, and learn to apply comments wisely.
Learn how to create an HTML table with the table tag, including header cells (th) and data cells (td), using a first name, last name, and age example.
Learn to create unordered and ordered lists in HTML using ul, ol, and li. Understand how bullets differ from numbers across list items, noting CSS tricks lie outside this course.
Build an HTML form for testing using the form tag to collect first name, last name, and age with text, number, and password inputs, including placeholders and a submit button.
Learn how to use IDs and, most importantly, data attributes like data-test-id to create stable selectors for test automation, avoiding fragile class-based targets.
Learn to create HTML buttons and use data attributes as test IDs for unique, resilient selectors in automated tests, avoiding XPath when multiple buttons exist.
Explore how to render symbols in HTML using entity names, decimal references, hexadecimal references, and entity references, with hands-on examples for the copyright sign in an h3 element.
Use inline JavaScript in HTML elements to dynamically display the date by clicking a button, updating a paragraph with getElementById and innerHTML.
Learn how the head element contains metadata for an HTML document, including the title, charset UTF-8, viewport settings, description, keywords, and author, plus optional refresh with http-equiv.
Explore the JavaScript ecosystem for testers, covering Node.js, npm, yarn, Babel, CropHud, major test frameworks (Mocha, Jest, AVA), Chai assertions, BrowserStack, and CI options.
Explore JavaScript variables var, let, and const; learn their ES6+ scoping rules, type inference, and practical use for selectors, with quick hands-on practice on playcode.io.
Master JavaScript console functions for debugging and testing, including console.log, console.info, console.warn, and console.error, to verify selectors and XPath uniqueness and reduce test flakiness.
Learn how to write and invoke JavaScript functions, compare classic functions with ES6 arrow functions, and use return values, const, and one-line arrows for concise testing utilities.
Discover how JavaScript arrays store multiple values, use zero-based indexing and array length to access first, second, and last elements, with examples for test selectors in automated testing.
Learn how to use the JavaScript date object and its methods by creating new date instances, retrieving timestamps with getTime or date.now, and extracting components for automated testing.
Explore JavaScript classes for test automation, including constructors, functions inside classes, page objects, and inheritance with extends and super, illustrated by login page and base page.
Master inspecting page elements to locate robust selectors for test automation, prioritizing unique IDs for speed, avoiding XPath, and using classes or data test IDs when IDs are missing.
Group test steps with describe to organize tests and scope. Use it in Mocha and test in Jest or Ava, and rely on expect to assert actual versus expected values.
Master async/await as a promise-based, non-blocking way to write asynchronous code that appears synchronous; learn usage inside async functions and error handling with try-catch, with an example.
Utilize the Q&A section to get help quickly, review existing questions, message the instructor on Udemy if needed, search Stack Overflow or Google for answers, and check the YouTube channel.
Step into the future of software testing with the Modern Test Automation Bootcamp. This comprehensive course is designed for developers, QA engineers, and tech enthusiasts who want to master the latest tools and techniques in automation testing. You’ll learn everything from foundational principles to cutting-edge technologies, giving you the skills to build reliable, efficient, and intelligent testing workflows.
In this course, you’ll explore tools and frameworks such as Playwright, Cypress, and Puppeteer, Testcafe or Taiko to automate web testing with speed and precision. Beyond traditional testing, you’ll gain hands-on experience with MCP server for Playwright and AI driven development with Cursor, tools that streamline complex test automation.
Through practical exercises, real-world projects, and expert guidance, you’ll not only understand how to automate tests but also how to solve testing problems and challenges. By the end of this bootcamp, you’ll have a portfolio of automated testing solutions and the confidence to tackle both small-scale apps and enterprise-level systems.
Whether you’re just starting out or looking to upgrade your skills, this course equips you with the knowledge, tools, and best practices to become a modern test automation professional. Join now and transform the way you approach software testing!
AI is also rapidly developing so new content will be added anytime something comes up :)