The Cypress Core Training Course is a comprehensive program designed to provide participants with in-depth knowledge and practical skills to effectively utilize Cypress for automated testing of web applications. Cypress is a powerful and popular open-source test automation framework known for its ease of use, speed, and reliability. This hands-on training course covers the fundamentals of Cypress, advanced testing techniques, best practices, and integration with continuous integration (CI) tools. Through a combination of lectures, demonstrations, and hands-on exercises, participants will gain the expertise needed to create robust, maintainable, and efficient automated tests using Cypress.
Duration 5 days – 35 hrs
Prerequisite
- Basic understanding of web development concepts.
- Familiarity with JavaScript programming language.
- Comfortable using the command line interface.
- Access to a computer with a modern web browser.
- Willingness to learn and explore automated testing principles
Objectives
- Gain proficiency in creating their first Cypress project, including installation, setting up project structure, and running Cypress GUI.
- Understand the application.visit() command, basic configuration options, and effectively utilize the browser for test automation.
- Learn various methods of selecting elements on a page and strategies for using selectors effectively.
- Participants will write their first test, covering basic scenario automation, debugging techniques, and interpreting error messages effectively.
- Understand best practices for writing assertions in end-to-end tests to ensure reliable and accurate test results.
- Learn effective command-chaining techniques and understand how information is passed through commands to enhance test readability and maintainability.
- Understand how to test dynamic pages using built-in retryability features to handle constantly re-rendering sites effectively.
- Gain proficiency in handling data within tests, including saving, aliasing, and passing information throughout the test flow for better test management.
- Participants will learn to create custom commands to abstract test logic into separate commands, thus expanding the Cypress library with their reusable commands.
- Understand how to intercept network requests using the cy. intercept() command to simulate edge cases and ensure comprehensive test coverage.
- Gain proficiency in API testing principles, including testing data from APIs and using cy. request() to prepare and handle test data effectively.
- Learn how to install useful plugins to solve common testing problems from the open-source community and enhance test automation capabilities.
- Understand how to handle authentication flows, including caching a logged-in state of the browser and managing backend authentication securely.
- Learn to run Node.js scripts in tests, switch between different environments, test in headless mode, and set up a simple CI workflow for continuous integration.
Audience
- Quality Assurance Engineers: Professionals responsible for ensuring the quality of software products through testing and automation, seeking to enhance their skills in automated testing using Cypress.
- Test Automation Engineers: Individuals specializing in test automation, interested in learning Cypress as a tool for automating end-to-end testing of web applications.
- Software Developers: Developers interested in incorporating automated testing into their workflow, particularly those involved in frontend development and interested in testing web applications using Cypress.
- DevOps Engineers: Engineers responsible for implementing continuous integration and continuous deployment (CI/CD) pipelines, interested in incorporating Cypress tests into their automation workflows.
- Software Testers: Testing professionals at various levels of experience who want to learn Cypress to enhance their testing capabilities and improve the efficiency of their testing processes.
- QA Managers: Managers overseeing quality assurance processes and teams, interested in understanding Cypress to make informed decisions about test automation strategies and tooling.
- Web Developers: Frontend developers interested in understanding how to write automated tests for their web applications using Cypress to ensure code quality and prevent regressions.
- IT Professionals: Professionals from various IT backgrounds interested in learning about modern test automation tools and techniques, particularly those involved in web application development and testing.
- Anyone Interested in Automated Testing: Individuals from different domains who want to learn about automated testing and Cypress as a tool for creating and running automated tests for web applications.
Course Outline
Understanding basics
- Creating your first Cypress project Installation and project structure, running Cypress GUI
- Opening the application.visit() command, basic configuration, effective work with browser
- Selecting elements on page ways of selecting elements on page and selector strategies
- Writing your first test basic scenario automation, debugging, and reading error messages
- Making assertionsBest practices for writing assertions in end-to-end tests
Get to know Cypress
- Effective command chainingWriting effective command chains and understanding how information is passed through commands
- Testing dynamic pages using built-in retry ability to test a dynamic, always re-rendering site
- Handling data within a testHow to save and alias information, and pass it around your test
- Creating custom commandsAbstracting test logic into separate commands, expanding Cypress library with own commands.
Working with network
- Intercepting network requestsLearning how to use cy. intercept() command for testing edge cases
- API testing data from API and using cy. request() to prepare and handle test data
- Installing useful pluginsSolving common problems with resources from the open-source community
- Handling authentication flowCaching a logged-in state of the browser and managing backend authentication
Managing Cypress Project
- Running Node.js scripts in testSeeding database using a predefined script and connecting it to the test flow
- Switching configurationLearn how to switch between different environments
- Testing in headless modeRunning tests in headless mode and explanation of its functionality
- Setting up a simple CI workflowRunning a test suite on GitHub actions and collecting results


