
Explore end-to-end automation testing with Cypress, from installation and basics to advanced features, API testing, network stubbing, docker support, and CI/CD with Jenkins and GitHub Actions, with Mocha awesome reports.
Run the end-to-end test setup by launching the cross-platform app in Visual Studio 2022 or Rider, with multiple startup projects including the API and web UI, using a SQLite backend.
Get started with Cyprus by installing the tool, using the Cyprus CLI and Cyprus Studio, and writing simple test code to accelerate end-to-end automation testing.
Install Cypress on your machine with npm install cypress --save-dev, add it to package.json dev dependencies, and open Cypress with npx cypress open in Visual Studio Code.
Learn to work with the Cypress app for end-to-end testing, run tests in Chrome, and configure tests using Cypress config files and specs.
Learn how the Cypress app scaffolds end-to-end test specs by creating the e2e directory, fixture and supports folders, a config.js file, and sample test files for quick setup.
Run Cypress tests from the command line with npx cypress run, view test results and reports, and capture screenshots and videos as tests execute.
Manage Cypress from the CLI by inspecting the cache, viewing versions and info, and using commands to open, run component testing, install, verify cache, and configure CI/CD.
Master the basics of Cypress end-to-end testing, scaffold a new spec in a course tests folder, run it against example.cyprus.io, and explore describe, it, visit, and time travel.
Enable Cypress Studio's experimental record and playback to automatically generate and save end to end test commands by interacting with the app and recording visits, clicks, and form fills.
Learn how Cypress uses mocha-style describe and it blocks, with it.only and it.skip, to control test execution. Use before and before each hooks to set up tests for a URL.
Understand the basics of Cypress commands, including query, action, and assertion, and how automatic retry and visit enable realistic, reliable end-to-end tests.
Master Cypress query commands to locate elements using get, contains, and locators, then chain clear and type to create a product in an end-to-end test.
Use Cypress query and action commands to click a specific product edit button by locating its table row with find and parent, then chain actions for robust end-to-end testing.
Explore Cypress assertion commands and the should method to verify UI elements, such as checking input values, the element's parent, and class attributes, using get by name and targeted selectors.
Explore Cypress query and action commands, including filter and contains, verify navigation with URL assertions, and use invoke to read element values for robust test assertions.
Explore understanding Cypress command chaining, where get, find, filter, contains, and click form a chain by using query and action commands, with chainable methods and built-in automatic waiting.
Cypress automatically retries commands until the element appears, using a 4000 ms default timeout with overrides to 8000 ms and managing timeouts like page load timeout to ensure reliability.
Understand how to declare variables in Cypress, manage asynchronous code with promises and then, and use wrap and yield to perform UI actions like clicks and text checks.
Learn how to use aliases in Cypress to store a UI element with the as method and access it later to perform clicks and verify the URL includes localhost.
discover how the Cypress wrap command yields input, enabling aliasing, improved IntelliSense, and seamless chaining of Cypress methods with wrap, invoke, and wait for network interception.
Learn how to debug Cypress tests using the pass method to pause and resume, inspect console output, and use debugger and debug methods in the then method for asynchronous code.
Perform a Cypress coding exercise that clicks each row in the table, scrolling to the end to reach all rows, using the concepts of the table, rows, and TDs.
Master Cypress to automate clicking all table rows by wrapping each row and using multiple clicks to scroll and interact with 57 rows, with assertions.
Learn to use Cypress hooks, query, action, and assertion commands. Master the get-and-contains element selection, should assertions, dot only for selective tests, and debugging with alias wraps and invoke.
connect to the Cypress cloud to run and debug, register at cloud.cyprus.io, create a project with GitHub action, and use the project ID and key in cyprus.config.js to run tests.
Execute local Cypress tests and view run details in Cypress Cloud, including specs, reports, videos, and screenshots, with options to run in multiple browsers and machines.
Learn how Cypress test retries automatically rerun flaky tests in Cypress cloud, configuring retries in config.js or a describe block with run mode and open mode.
Discover how Cypress cloud enables retry-enabled test runs with multiple attempts, stack traces, screenshots, and videos to debug failures in CI/CD, and review failing, pending, and skipped tests.
Connect Cyprus cloud with your Cypress app to run tests from your local machine and view reports in Cyprus cloud, and explore paid plans for parallel execution across machines.
Explore configuring Cypress with config.js to control retry behavior, timeouts, screenshots, video settings, viewport, and test isolation, and compare with the older Cypress.json approach.
Learn how to centralize application URLs with the baseURL in the Cypress config, making tests point to a configurable host, handle config validation, and prepare for CI/CD usage.
Override the base URL in Cypress from the command line using the config property to run tests against a URL, with environment variables supporting CI/CD for development, staging, or production.
Learn to configure Cypress for multiple environments by using setup node events to set a dynamic base URL via environment variables, enabling localhost, staging, and prod URLs in CI/CD pipelines.
Learn to customize Cypress events to capture videos only for failed tests by using the after spec event and conditional logic to keep or remove videos based on test results.
Customize Cypress events to auto open browser dev tools on launch by implementing a before browser launch hook, handling chromium, firefox, and electron with appropriate dev tool settings.
Explore configuration to launch end-to-end tests with Cypress, focusing on retaining a test video while removing duplicate screenshots, ensuring clean runs and reusable after-spec events.
Learn to remove existing video and screenshots before rerunning end-to-end tests with Cypress by enabling trash assets before run and observing video and screenshots recreated via the after spec plugin.
Learn to customize Cyprus configurations and settings to gain control over your tests, using after screenshot, dev server, before spec, and before run to pan tests with different URLs.
Explore data driven testing in Cypress using fixtures to read login data from a json file and drive login tests on appsumo.com.
Learn how to perform file uploads in Cypress using the select file command, leveraging the fixture folder, selectors, and the force option to reliably upload images.
Learn to handle alerts and popups in Cypress, including automatic handling of unexpected alerts and verifying their text with cy.on and assertions.
Learn how to capture full-page screenshots and videos in Cypress, store images in the screenshots folder, and configure after-screenshot and video options for robust end-to-end tests.
Learn to speed up Cypress tests by saving a login session, reusing it across tests, and using a before each or a custom Cypress command to manage login via fixture.
Explore how Cypress enables end-to-end testing across UI and API, using Swagger endpoints to perform fast API tests, and learn how to run these tests in CI.
Learn how to test an ASP.Net MVC app's API with Cypress without swagger, performing a get operation, setting headers, and asserting response status and content type.
Perform a post operation in Cypress to create a product via the API, sending a JSON body with headers and validating a 200 response and created data, using a fixture.
Master end-to-end API testing with Cypress by implementing a delete-by-name operation, configuring query strings, headers, and status verification for fast, reliable product APIs.
Explore network interception and network stubbing with Cypress to intercept and verify nearly all requests and responses flowing through your site, making end-to-end testing easier.
Learn to intercept network requests in Cypress using the intercept method, set up aliases and weight-based waits, and verify API endpoints like product/list, product/create, and edit flows.
Intercept network requests in Cypress using wildcard pattern matching, specify method and URL for edit and save operations, and validate requests and responses with aliases and assertions.
Explore network stubbing by intercepting requests and using the reply method to throttle API calls, demonstrating how to slow a create operation and observe stubbed responses.
Learn to intercept and hijack a request with Cypress by stubbing the post edit operation, injecting hacked data into the request body, and observing the hijacked results.
Explore Cypress reporting options, install the popular mocha awesome reporter, and generate screenshot, video, and failure reports; learn to run in Docker and integrate with CI/CD pipelines.
Install and configure the mochawsome reporter in Cypress, edit the Cypress config and import register, then run tests to generate an automated html report with embedded screenshots and videos.
Explore how to customize the mochawesome reporter in Cypress, enabling charts and a custom title. Configure reporter options to embed inline screenshots and generate HTML reports in one place.
In this course End to End automation testing with Cypress we will discuss a complete working/understanding and hands-on testing of applications using Cypress
This comprehensive course delves into various topics, providing in-depth knowledge and practical skills in Cypress, a powerful testing framework. Throughout the course, you will cover the following:
UI automation testing for web-based applications using Chrome/Electron/Chromium and Firefox.
A thorough understanding of the Cypress test runner, enabling efficient and effective test execution.
API testing with Cypress, allowing you to validate and verify the functionality of web APIs.
XHR testing to examine the XMLHTTPResponse of any website.
Behavioral-driven development testing with Cucumber.js integration, leveraging Cypress plugins.
Complete comprehension of various Cypress commands for seamless test creation and execution.
Parallel test execution with Cypress Cloud, enabling efficient testing on multiple fronts.
Docker container utilization for Cypress test execution, facilitating a streamlined and reproducible testing environment.
Page Object Model support in Cypress, promoting modular and maintainable test code.
Cypress integration with XPath plugins, expanding the capabilities of element selection and manipulation.
Debugging with Cypress via Chrome Dev Tools, aiding in troubleshooting and issue resolution.
Visual testing with Percy, allowing for visual regression testing to ensure consistent UI appearance.
Mochawesome reporting with Cypress, generating detailed and insightful test reports.
CI/CD integration of Cypress with Jenkins, enabling seamless test automation in continuous integration workflows.
Cross-browser testing support of Cypress, ensuring compatibility and consistent behavior across different browsers.
CI/CD integration of Cypress with GitHub Actions, facilitating automated testing in GitHub workflows.
Cypress Studio, is a visual testing tool for creating tests without writing code.
Network stubbing and mocking with Cypress, enabling realistic and controlled testing of network interactions.
Component testing with Cypress to isolate and test UI components.
By the end of this course, you will possess a comprehensive understanding of Cypress, starting from the fundamentals and progressing to advanced topics, equipping you with the skills necessary to excel in Cypress test automation.