Cypress Workshops

I have been teaching Cypress workshops both in person and remotely. All my standard workshops are open source - each repository contains the slides with the material and the practice exercises you can do on your own. But people love having me as their instructor because I can answer all their questions, and go deep into the details of how the things work, why Cypress is built like that, and how to write the best possible tests.

What People Are Saying

  • Unless you hear it from an expert you will always doubt whether you are doing it right or wrong, or if there's a better approach. Put an end to your sleepless nights and have a once in a lifetime opportunity to hear it from Gleb.
  • Go from "What's Cypress?" to "How did I live without Cypress?" in the first hour of being introduced to this powerful and easy-to-use testing framework.

Scheduled Workshops

  • Hustef 2024

    An in-person workshop "Web Application Testing With Cypress And Playwright" in Budapest, Hungary.October 2024.
  • Previous workshops at SmashingMagazine, ConFoo.CA, ng-conf, RefactorDX, International JavaScript Conference

Available Workshops

  • Cypress Basics

    This workshop introduces you to the Cypress.io Test Runner and teaches writing realistic tests that are readable, reliable, and fast. Typically lasts 8 hours.
    Contents
    • Installing Cypress and writing the first test
    • Cypress documentation, examples, and recipes
    • Selecting the DOM elements and interacting with the page
    • Controlling the application state
    • Removing test flake
    • Spying and stubbing the network communication from tests
    • Running Cypress tests on Continuous Integration system
    • Factoring out pieces of tests into custom commands
  • Visual Testing With Cypress

    Catch CSS and visual regressions using open-source tools. Typically lasts 8 hours. Based on my course Visual Testing With Cypress
    Contents
    • Cypress CSS assertions
    • Waiting for animations
    • Taking page and element screenshots
    • Storing and updating gold images on CI
    • Diffing images using free tools
    • Visual assertions when dealing with random data
    • Hosted vs on-prem visual services
  • Cypress on CI

    A workshop that teaches you how to run Cypress on major CI providers including CircleCI, GitHub Actions, Netlify Build, and generic CI. Typically lasts 4 hours. Can be customized for your particular continuous integration system.
    Contents
    • Useful NPM scripts and utilities
    • Running Cypress on a generic CI
    • Cypress GitHub Action
    • Cypress GHA reusable workflows
    • Split Cypress specs across multiple machines
    • Cypress CircleCI Orb
    • Cypress Netlify plugin
  • Full Code Coverage Workshop

    A workshop where we achieve 100% code coverage by writing a combination of E2E and component tests for a React application. Full day. Based on my course Testing The Swag Store
    Contents
    • Your first Cypress test
    • Common tests for an e-store
    • Using fixture files
    • Testing login and user sessions
    • Writing custom commands
    • Page objects in your tests
    • Cypress React component testing
    • Instrument your E2E tests
    • Generate code coverage report
    • Instrument your component tests
    • Achieving 100% code coverage
  • Cypress Vs Playwright Hands On

    Which test runner is better for writing end-to-end we tests? Let's write the same tests using each test runner and find out. Full day. Based on my course Cypress vs Playwright
    Contents
    • Installing the test runners
    • Writing TodoMVC tests using Cy and Pw
    • Assertions and retries
    • Spying and stubbing network calls
    • Checking application data from tests
    • Test isolation, clock control, etc
    Detailed contents
    • Testing using Cypress and Playwright
      • Installing the test runners
      • Where to find help
      • Main Cy and Pw commands Starting application before
      • running tests Cy and Pw GUI mode for writing tests
      • writing an example test
    • Writing TodoMVC tests using Cy and Pw
      • adding an item
      • completing an item
      • deleting an item
      • reset the data before the test
      • clear completed todos
    • Assertions and retries
      • adding custom assertions to Cy and Pw
      • Cypres should(callback) assertions
      • Cypress chains of queries
      • confirm the table is sorted after a time delay
    • Spying and stubbing network calls
      • spy and stub loading the data
      • spy on adding new items
      • testing loading elements and slowing down the network calls
    • Checking application data from tests
      • access the application data store object
      • calling application methods from tests
    • Running tests on CI
      • using GitHub Actions as an example
    • Advanced features
      • test isolation mode
      • fail the test on application error
      • control application timers and clock
      • using 3rd party plugins and reporters
      • Q & A
    Prerequisites: Basic knowledge of JavaScript and Node.js is required. The students need a laptop with Node.js and Git installed to be able to run the application locally and write tests.
  • Custom

    Want to create a custom workshop specifically for your organization? No problem! Collect the topics and the questions from your QA and Dev teams, and send it my way. I will create a custom-tailored workshop that covers the topics relevant to your team. Possible ideas: Cypress plugins, debugging failed tests, Cypress vs Playwright.
  • Workshop Q&A

    There is one more thing I can offer you. Since my workshops are open-source, you can go through the material and practice exercises yourself. Then invite me for a remote Q&A session where I can answer any questions.

Company rates: $10k for a standard full-day 8 hour workshop with fewer than 30 people. For companies over 10,000 employees, or audiences of more than 30 people the full-day rate is $20k. Conference rates: it depends, we can talk. For "Workshop Q&A" session the rate is $1k per hour.

To get in touch, please email "gleb.bahmutov" at gmail.com.