Cypress End-to-End Testing - Getting Started

Learn how to use Cypress to design, build and run powerful and realistic end-to-end (E2E) tests with ease.

Cypress End-to-End Testing - Getting Started

Course Overview

About This Course

You can build features all day, but the moment something breaks in production you’re left guessing: was it your change, a regression, or a weird edge case you didn’t manually click through? If you’ve got little to no end-to-end testing experience, adding reliable automation can feel like a big, unclear leap.

In this course, you’ll get a guided path into writing and running E2E tests with Cypress, a widely used tool for web application testing. You’ll work through the essential ideas step by step, then build up to more advanced capabilities so you’re not just copying snippets—you’re making testing decisions with confidence.

By the end, you’ll be able to add an end-to-end testing workflow to your web projects, automate realistic user journeys, and catch bugs and regressions earlier. You’ll know how to structure tests that run consistently, validate behavior with clear checks, and handle the kinds of scenarios that show up in real apps—not just toy examples.

What You'll Learn

You’ll cover the Cypress workflow end-to-end: setup, test design, realistic interactions, and the real-world edge cases that make E2E testing tricky.

  • Set up Cypress

    Install Cypress and get it running in a web project so you can execute E2E tests reliably during development and when checking for regressions.

  • Write E2E test suites

    Create automated end-to-end tests that are structured, repeatable, and easy to run—so you can validate critical behavior without relying on manual click-through testing.

  • Model real user flows

    Select elements and simulate user interactions like button clicks and keyboard typing to reproduce realistic website workflows that mirror how people actually use your app.

  • Assert expected behavior

    Write strong assertions that clearly express what should happen, helping your tests fail for the right reasons and making debugging faster when something breaks.

  • Test third‑party code

    Efficiently validate behavior that depends on third‑party code, so your E2E coverage reflects the full user experience instead of only what you control directly.

  • Handle auth and data

    Deal with network (HTTP) requests and databases in your tests, and cover user authentication flows so protected areas and login-dependent journeys are tested end-to-end.

Ready to get started?

See enrollment options

Prerequisites

  • Basic JavaScript knowledge is required.

  • Basic web development knowledge is required (no specific framework).

  • No prior Cypress knowledge is required.

Who Is This Course For?

  • Intermediate web developers

    You build websites confidently, but you haven’t built a real automated testing habit yet. This course gives you a practical way to start adding E2E coverage without needing prior Cypress experience.

  • Developers shipping features

    You’re moving fast and want a safety net that catches regressions before users do. This course helps you turn critical user journeys into automated checks you can run anytime.

  • Teams adopting E2E

    You’re expected to contribute tests to a project, but the workflow and best way to approach E2E testing feels fuzzy. This course gives you a clear foundation you can build on.

Curriculum Overview

Start Now

Preview the structure and pacing of this course before you begin.

  • Introduction8 lectures24m
    • 01Welcome To The Course!1:05 min
    • 02What is Cypress & End-to-End Testing? And Why Should You Care?4:16 min
    • 03Installing & Using Cypress6:00 min
    • 04How Cypress Tests Are Organized & Stored2:11 min
    • 05Adjusting Our First Test2:51 min
    • 06Writing A More Realistic Test3:55 min
    • 07About The Course4:36 min
    • 08Course Resources (Slides, Code, Discord)0:00 min
  • Cypress Basics - Core Features & Syntax19 lectures1h 25m
    • 01Module Introduction1:24 min
    • 02Project Setup3:28 min
    • 03Creating Suites & Tests2:33 min
    • 04Visiting Pages inside of E2E Tests3:33 min
    • 05Let the IDE (VS Code) Help You1:39 min
    • 06Selecting Elements & Evaluating Test Results3:40 min
    • 07Selecting By Text4:23 min
    • 08Implicit and Explicit Assertions5:56 min
    • 09get() vs find()4:51 min
    • 10Why You Need To Simulate User Interaction1:53 min
    • 11Simulating User Interaction8:19 min
    • 12Proper Assertions Are Key!4:12 min
    • 13Time To Practice!3:59 min
    • 14Simulating Keyboard Typing & Writing Good Assertions11:35 min
    • 15Checking For Partial Text3:45 min
    • 16Selecting Dropdown Values7:35 min
    • 17Cypress Tests Run In Isolation2:01 min
    • 18Time For More Queries6:00 min
    • 19Summary4:29 min
  • Diving Deeper: Element Selection, Assertions & More20 lectures1h 16m
    • 01Module Introduction0:34 min
    • 02Project Setup1:41 min
    • 03Selecting Elements - The Best Practice Way7:30 min
    • 04Testing Page Navigation5:05 min
    • 05More on Selecting Elements4:00 min
    • 06Repetition and More Assertions7:01 min
    • 07Chaining Commands2:01 min
    • 08Working with Values & Aliases3:01 min
    • 09A Closer Look At then()0:00 min
    • 10Getting More Direct Element Access via then()6:38 min
    • 11Simulating Special Key Presses3:15 min
    • 12Another Example6:47 min
    • 13Losing & Gaining Focus5:56 min
    • 14Aliases In Action1:05 min
    • 15Using Cypress Studio For Test Evaluation2:36 min
    • 16Running Tests Without Cypress Studio & Working with Screenshots + Videos2:54 min
    • 17Changing Subjects7:09 min
    • 18Taking Screenshots1:32 min
    • 19should() instead of then()3:26 min
    • 20Summary4:21 min
  • Configuration & Customization13 lectures40m
    • 01Module Introduction1:11 min
    • 02Project Setup0:51 min
    • 03The Global Config File1:53 min
    • 04Understanding Timeouts2:48 min
    • 05Global vs Local Config1:30 min
    • 06Setting the Test Browser1:05 min
    • 07Configuring the baseURL2:28 min
    • 08Sharing Logic with Test Hooks4:37 min
    • 09Introducing Custom Commands & Queries1:33 min
    • 10Creating a Custom Command5:39 min
    • 11Creating a Custom Query8:19 min
    • 12Understanding Tasks5:17 min
    • 13Summary2:59 min
  • Working with Stubs, Spies, Fixtures & Manipulating the Clock16 lectures1h 13m
    • 01Module Introduction0:52 min
    • 02Starting Project2:03 min
    • 03Understanding the Problem4:18 min
    • 04Understanding Stubs2:38 min
    • 05Creating & Using a Stub8:25 min
    • 06When Empty Stubs Are Not Enough5:12 min
    • 07Adding a Fake Stub Implementation7:25 min
    • 08Using Stubs Across Tests5:50 min
    • 09Stubs with Return Values6:13 min
    • 10Evaluating Stub Arguments5:33 min
    • 11Using Fixtures6:37 min
    • 12Understanding Spies3:53 min
    • 13Creating & Using Spies4:19 min
    • 14The Problem With Timers5:54 min
    • 15Manipulating the Clock2:40 min
    • 16Summary1:37 min
  • Network (HTTP) Requests, Databases & Authentication17 lectures1h 9m
    • 01Module Introduction1:10 min
    • 02Starting Project3:55 min
    • 03Writing a First (Problematic) Test5:47 min
    • 04The Problem with Tests & Databases2:13 min
    • 05Creating a Test Database3:13 min
    • 06Seeding the Test Database Before Every Test5:27 min
    • 07Another Database-dependent Test4:34 min
    • 08Understanding & Using Interceptors7:44 min
    • 09You Can't Always Use Interceptors1:26 min
    • 10More Intercepting!2:18 min
    • 11Testing APIs with Test Requests5:52 min
    • 12Summary: Different Network Request Strategies1:47 min
    • 13Testing Authentication Flows & Asserting Cookie Values8:05 min
    • 14Adding a "Login" Test2:23 min
    • 15Creating a Reusable Login Command3:37 min
    • 16Accessing Interceptor Request & Response Data7:52 min
    • 17Summary1:38 min
  • Roundup & Next Steps1 lecture3m
    • 01Roundup & Next Steps3:27 min

Ready to Get Started?

Choose the option that works best for you.

Single Course

Cypress End-to-End Testing - Getting Started

One Payment. Lifetime Access.

$69one-time

  • One-time payment
  • All future updates for this course
  • Downloadable resources & code
  • Certificate of completion
  • Hands-on exercises & projects
  • Self-paced learning
  • English captions on all videos
  • Lifetime access