
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Kick off automated software testing with Test Cafe, an open source, user-friendly framework for beginners with a hands-on approach, covering basics to end-to-end, performance, bdd style testing, and visual testing.
Learn why TestCafe is ideal for beginners: a free Node.js framework with quick setup, end-to-end tests, no web drivers, stable results, and robust cross-browser support, Cucumber integrations, and CI features.
Initialize package.json and install Test Cafe to set up dependencies for automated testing, enabling you to start writing tests.
Install Prettier and configure a .prettierrc to auto format code on save, ensuring consistent styling across the team with options like semi: false, singleQuote: true, tabs, bracketSpacing, and trailingComma: es5.
Add the expect method in Test Cafe to assert the thank-you message contains the submitted name, relying on automatic waits for reliable, concise tests.
Explore how to create and run test scripts in TestCafe across browsers such as Chrome, Safari, and Firefox, including headless mode and mobile emulation for CI/CD workflows.
Learn how to use test hooks in TestCafe—before, after, before each, and after each—to set up test data, load the same website, log results, and clean up after tests.
Learn how to control test speed with setSpeed in TestCafe, using 0.01 to 1 for debugging, and apply it via beforeEach to multiple tests, keeping production runs at speed 1.
Learn how to pause a TestCafe test with the wait method, and why explicit waits are discouraged in production tests to avoid flakiness and slower execution.
Use TestCafe selectors to identify page elements, read their state, and extract text. Name selectors descriptively and store them in external files for readability and maintainability.
Learn how to use TestCafe to capture screenshots, including full page and element-specific shots, and configure automatic captures after test failures for visual regression testing.
Learn how to automatically capture screenshots after failed tests. Configure rc.json with a local screenshot path and a date time naming pattern, and update tests to enable on-failure screenshots.
Learn to skip tests or run only a single test in TestCafe by marking tests as skip or only, and follow the one fixture per test file practice.
Disable page caching in TestCafe to prevent flaky tests from session and local storage data, using the --disable-page-caching flag in your test script.
Explore the TestCafe actions API, covering click, double click, right click, drag, hover, select text, type text, press key, navigate, take a screenshot, and resize window with selectors and options.
Explore the TestCafe assertions API, learning how deep equal, not equal, ok, contains, not contains, and range checks like greater, less, and within work.
Learn to build end-to-end tests with TestCafe using a dummy web app, applying selectors, actions, and assertions to validate login and page content, and prepare for page objects and CI/CD.
Demonstrates end-to-end login testing with test cafe, covering negative and positive scenarios: validate error on invalid credentials, confirm successful login, and log out to finish the flow.
Demonstrates a valid login test with credentials in a test cafe end-to-end workflow, validating account summary appears and login form disappears before logging out and returning to the home page.
Master end-to-end testing with TestCafe by validating the forgotten password flow: sign in, click forgot your password, enter an email, submit, and verify the message appears.
Master end-to-end testing with TestCafe by building and submitting a feedback form, selecting inputs, typing details, and asserting the 'thank you for your comment' message after submission.
Learn to implement an end-to-end test for a site search box using TestCafe, typing a query like online bank, pressing enter, and validating the search results page and link text.
Test end-to-end adding a new pay in the paying bills section, using a before hook for login, then filling the form and asserting the success message.
Create reusable login helpers in TestCafe by exporting an async login function in helpers and importing it into tests to reduce duplication, allow passing username and password, and improve readability.
Explore parallel test execution with Test Cafe by running multiple browsers concurrently to speed up tests, illustrated by five Chrome runs and cautions about memory usage.
Learn to perform parallel test execution across headless Chrome with TestCafe, speeding up CI by executing five headless browsers concurrently.
Learn how to spin up multiple browsers like Chrome and Firefox in TestCafe to run tests concurrently, configure a script in package.json, and enable screenshot capture for parallel cross-browser testing.
Learn how to use XPath in TestCafe by converting XPath expressions to CSS with the xpath to CSS package, enabling on-the-fly transformation and seamless test integration.
Explore the page object model for test automation, its role in large applications, and how to implement reusable components and selectors to improve code reuse, maintainability, and test reliability.
Create the first page object by extracting navbar selectors, such as the search box and sign in button, into a Navbar class exported for use across tests.
Implement page objects in tests by importing and initializing the navbar, then replace the sign in button with navbar usage and run npm run test chrome to confirm tests pass.
Shows how to implement a page object for the navbar in TestCafe, including a reusable search function that types text, presses enter, and improves readability and maintainability.
Create a search results page object in TestCafe by defining selectors, exporting the page, and updating tests to use the page object, refactoring inner text to use expect.
Refactor the login test into a page object model with TestCafe, creating a login page and a reusable login function for valid and invalid credentials.
Finish refactoring the login test by moving the error message into the login page, updating selectors in the page object for sign-in and navbar controls (logout).
Refactor the forgotten password test using the page objects pattern in TestCafe, add a forgotten password page with email input and message selectors, and update the login page link.
Refactor tests with page objects in TestCafe by creating a feedback page class, defining selectors for name, email, subject, message, and submit, and streamlining form submission.
Use TypeScript in TestCafe with no extra setup, writing tests, pages, and helpers entirely in TS, and learn the single-language rule plus a TS demo of a feedback form.
Learn how to create a base page in TestCafe that provides shared utilities, such as wait for and set test speed, to be extended by other pages.
Set up a Test Cafe project for API and UI testing, install dependencies, and initialize npm to run API tests against endpoints like regress IO and airport Gap API.
Create a test folder and fixture in TestCafe to run API tests that validate status codes, demonstrating 200 for success and 404 for not found.
Test a get request in testcafe by asserting the response status and its body data. Validate that id equals 2 and the first name is Jeannette.
Explore post requests in automated testing by validating a positive login scenario with status 200 and token, and contrasting a negative scenario to handle errors.
Test the login post request for a negative scenario with only email to trigger a 400 missing password error, and verify the status and error via TestCafe assertions.
Learn to perform a put request with TestCafe to update a user, sending name and job, and assert a 200 response with the updatedat field.
Learn to test a delete request in TestCafe by deleting a user and asserting a 204 status, then explore adding token-based authentication for protected endpoints.
Learn to authenticate API requests with TestCafe by sending a bearer token in the authorization header to access the protected /favorites endpoint, validating success and unauthorized scenarios.
Learn how to implement negative authentication tests in TestCafe by simulating requests without tokens to a protected API, expecting a 401 unauthorized response and confirming secure access control.
Learn how to set up a TestCafe project from scratch, including npm init, installing TestCafe and prettier, and configuring a simple prettier rc for a quick project setup.
Create a node script in package.json to run TestCafe tests, update test script, and run npm run test to execute the example test in headless mode and verify it passes.
Learn to use static and dynamic waits in TestCafe, pausing execution with a one-second static wait and waiting for elements like H1 via CSS selectors or XPath.
Master basic assertions in TestCafe with code js to verify visible text, elements with specific CSS selectors, and parts of the current URL, including not seeing elements.
Create multiple scenarios within a single feature, each starting with I'm on the page and running in its own Chrome instance to ensure independent tests.
Explore taking full page and single element screenshots in TestCafe, saving as test.png and element.png using a locator like h1, and review outputs showing both screenshots.
Learn to automate form handling by filling a login form with invalid values, submitting, and asserting the resulting error message in a test scenario.
Extract text and values from elements using grab text and grab value, manage asynchronous returns with async and await, store results in variables, and reuse them in assertions or functions.
Discover how to refresh the browser in TestCafe by using the refresh page function, reload the page after loading, and verify that everything still works.
Modify test cafe configuration to override defaults, adjusting wait for timeout, cookies persistence, and browser window size; run tests in headless or headful mode to verify changes.
Extend automated testing with TestCafe by creating custom helpers and commands, wiring them into the config, and using a slow test function via the test controller.
Learn to implement the page object design pattern in Test Cafe by creating a login page object, wiring it into the configuration, and using it in tests.
Set up a performance testing project in TestCafe by initializing npm, installing TestCafe and helpers, and creating a smoke test with a fixture to fetch performance metrics.
Create a perf variable and await get performance metrics on the test object to collect window performance timing metrics, then log and extract computed values like Tfb, latency, and DNS.
Create a simple smoke performance test that extracts computed metrics like tfb, dom ready, and latency from window performance timing, asserts thresholds in milliseconds, and monitors trends.
Explain key performance metrics measured with test automation using TestCafe, including time to first byte, DNS lookup, TCP connection, DOM ready, and network latency, and their impact on user experience.
Explore visual regression testing with Percy.io, integrated with Puppeteer, Cypress, and Selenium, including setup, snapshots, review in Percy Web, and pricing in the free plan.
Create a Percy project, obtain its project token, and connect it to your TestCafe code to run visual regression tests.
Initialize a project, install Percy and TestCafe, create a tests folder, and configure a Percy test script to run TestCafe on Chrome for visual testing.
Discover how to integrate Test Cafe with Percy for visual regression testing by creating and persisting snapshots, running tests, and reviewing approvals or changes across builds.
Explore continuous integration and delivery, where code changes trigger automated builds and tests for smaller, frequent releases and a deployable release using Jenkins, Travis, and CircleCI.
Compare Jenkins, CircleCI, and Travis, highlighting pros and cons. Use CircleCI for quick starts, Travis for open source environments, and Jenkins for large, customizable pipelines.
Connect a Test Cafe project to a local Jenkins server, create a freestyle build, and run tests with npm run in chrome headless, monitoring progress via the console output.
Configure a parameterized Jenkins build by adding a choice parameter named script, select from multiple script options such as Chrome headless, Safari, Firefox, or mobile, and run builds with parameters.
Explore the Jenkins dashboard to manage projects, configure builds, view build histories and outputs, and learn how builds run tests on Chrome on mobile with plugins.
Create a node script to start a Jenkins server with npm run start-jenkins-server, using port 80 and --enable-future, then run a TestCafe Chrome headless build.
Install the xunit reporter for TestCafe, switch the reporter flag from json to xunit, and generate xml test output for easy export and integration.
Install the NUnit reporter for testCafe and run tests to generate an XML report in the terminal, enabling data export and merging from multiple sources.
Explore the list reporter for TestCafe, install it, switch the flag from unit to list, and run tests to view browser, OS, fixtures, and fast or failed results.
Explore the minimal reporter in TestCafe, which shows a simple green dot for passing tests during smoke checks, but lacks detail and is not recommended for production reporting.
Welcome to the ultimate hands-on course for mastering web automation and testing using TestCafe—a fast, modern, and powerful alternative to Selenium! Whether you're aiming to sharpen your automated testing skills or build a successful career as a TestCafe automation engineer, you've landed in the perfect place.
This course is designed to be highly practical and beginner-friendly, packed with coding exercises and real-world projects from the very first lesson. You’ll learn how to install, configure, and manage multiple testing projects using TestCafe, while gaining a strong foundation in web automation. You'll dive into interacting with web elements through the TestCafe API, and develop skills for running cross-browser and headless tests with ease.
We’ll guide you step-by-step in implementing the widely-used Page Object design pattern, which helps structure your test code efficiently and maintainably—an essential practice for any automation professional.
But there's so much more in store! You’ll go beyond the basics to explore behavior-driven development (BDD) using TestCafe alongside popular tools like CodeceptJS and Cucumber. You’ll perform visual regression testing using the Percy library, and take a deeper dive into performance testing with powerful TestCafe extensions. We’ll also show you how to integrate your tests with Jenkins for continuous integration and build a robust, scalable testing pipeline.
Other key topics include XPath usage, built-in reporting tools, and cloud-based testing using BrowserStack for executing tests on real devices and multiple browsers. Throughout the course, you’ll receive expert tips, best practices, and insider techniques from seasoned automation engineers.
You’ll also benefit from a supportive and interactive learning environment with a strong focus on community. Ask questions, share insights, and get help directly from your instructors or fellow learners. We’re here to make sure you’re never stuck or left behind.
And to help you prepare for the job market, we’ve included valuable interview preparation content, so you’ll feel confident and ready to tackle automation roles head-on.
If you're serious about stepping up your automation skills with one of the most intuitive and powerful testing tools out there, enroll today and take the next big leap in your QA or development career. Let’s start your journey to becoming a confident and capable TestCafe automation expert!