
Set up a Cypress project from scratch, test elements, file uploads, and assertions, and create custom commands while simulating mobile devices. Run tests in CI and integrate with Cypress Cloud.
Explore the course structure, including concepts and examples in each lesson, suggested contents, and links to official documentation to go beyond and practice with end-of-lesson exercises.
Install and verify git, NodeJS, npm, and Visual Studio Code as prerequisites. Check versions in the terminal, upgrade if needed, and use the provided links for the latest LTS installers.
Test the tat CSC app, a html/css/js form-based customer service interface. Practice ci with GitHub and Cypress Cloud for testing and test management while validating required fields and privacy policy.
Fork and clone the project on GitHub using SSH to work on your fork. Install the exact Cypress version 13.1.0 and open the test suite to begin creating a spec.
Write your first automated test with Cypress by visiting a web page using cy.visit, including local testing of src/index.html and exploring the Cypress site visit command and related documentation.
Define a describe and an it block, visit ./src/index.html, and assert the site title equals 'customer service center'. Run Cypress in headless mode for continuous integration.
Learn to type into input fields, click elements, and retrieve them with cy.get in Cypress, using dot type, dot click, and command chaining with retry.
Master typing in fields and clicking the submit button in Cypress, using a before each hook to start tests in a clean state and verify the success message.
Override the dot type delay in Cypress to zero to quickly type long text in a text area, using Lodash repeat to generate the text.
Learn to write a Cypress test that validates an error message appears when submitting a form with an invalid email, using arrange-act-assert, typing fields, clicking submit, and verifying the error.
Learn to validate a numeric phone input using Cypress by typing non-numeric values and asserting the field remains empty, ensuring only numbers are accepted.
Demonstrates a Cypress extra exercise where enabling a mandatory phone field triggers an error message on form submission, by typing fields, toggling the phone checkbox, and verifying the outcome.
Learn to type into fields and clear them with Cypress in extra exercise five, validating first name, last name, email, and phone inputs through dot type and dot clear commands.
Execute a Cypress extra exercise six test that submits an incomplete form and verifies an error message appears on an element with the class error.
Explore how to create and use custom commands in Cypress to submit forms, interact with the UI and API, avoid duplication, and verify a success message.
Learn to identify elements in Cypress using the side contains command, replacing css selectors like button type submit with content-based selectors based on the tag content.
Learn to select options from dropdown fields using the select command by content, value, or index, with examples like blog, courses, mentorship, and YouTube, and Cyprus documentation.
Learn to automate selecting a product YouTube by its content in Cypress, using element IDs and CSS selectors, and assert the chosen value in a practical exercise.
Create a Cypress test that selects the mentorship option by its value in the product dropdown (id product), asserts the selected value, and uses time travel to review the test.
learn to interact with dropdowns in Cypress by selecting the blog option by index, asserting the selected value, and running quick tests to verify the selection.
Master radio input handling in Cypress by using dot check to robustly select options like help, praise, or feedback, with semantic checking over clicking.
Implement a radio input test by selecting an input of type radio with value feedback using a clear css selector, then assert it is checked after rerunning the Cypress test.
Embark on an extra Cypress exercise by iterating over each radio input with cy.each and cy.wrap, checking every option and ensuring the test passes before moving on.
Learn how to reliably check and uncheck checkbox inputs in Cypress by using dot check and dot uncheck, ensuring deterministic tests even when already checked or unchecked.
This Cypress exercise shows selecting checkbox inputs, checking both, then unchecking the last one, with assertions that the first two are checked and the last is not.
Practice robust checkbox handling in Cypress, from Zero to the Cloud, using check and uncheck to ensure a mandatory phone field triggers an error on form submission.
Use Cypress to upload files with the dot select file command (v9.3.0), by locating a file input with cy.get and passing a fixture path from the fixtures folder.
Upload a file from the fixtures folder using the Cypress select file command, verify the input type file stores the name example.json, and prepare for a drag-and-drop exercise.
Simulate a drag-and-drop file upload with Cypress select file, passing action 'drag-drop' as an option, then assert the file is stored in the input.
Learn to upload files with Cypress in extra exercise 2 by selecting a fixture file via an alias and attaching it to a form input, then verify file name persists.
Master testing links that open in new tabs by verifying the anchor tag target attribute set to _blank or removing it with invoke, within domain constraints.
Practice Cypress testing by verifying that the privacy policy link opens in a new tab without clicking, by checking the anchor's text, href privacy.html, and target _blank.
Test links that open in a new tab by removing the target attribute with Cypress invoke, then click and verify the privacy policy page heading appears.
Learn to handle links that open in a new tab by testing the privacy policy page independently, visiting with cy.visit, removing the anchor target, and asserting the h1 and paragraph.
Resize the Cyprus browser to simulate a mobile device by setting viewport width and height via command line or config, and test with a 410 by 860 viewport.
Learn to simulate a mobile viewport in Cypress by adding a package.json script for viewport width 410 and height 860, and running tests in interactive and headless modes.
Create a package.json script to run Cypress tests in headless mode with a 410×860 mobile viewport, enable video in config, and verify via recorded videos.
Define clear project documentation with prerequisites like nodejs, npm, and git, installation and test run steps, and guidance on readme patterns for headless and interactive Cypress tests.
Document a Cypress project by updating readmes, listing prerequisites and install commands, and detailing headless and interactive tests for desktop and mobile, then push on the docs branch.
Take the next step towards becoming an automated testing expert with Cypress and expand your test automation skills.
Cypress is an open-source framework that makes it possible to write automated tests easily, quickly, and reliably, all in JavaScript, and that's exactly what you'll learn in this course.
During the course, we will install Cypress, do the initial setup to write tests, and then we will cover different ways of interacting with web applications, such as visiting URLs, different types of actions (typing into fields, selecting options, clicking on buttons, etc.), as well as how to add the most diverse checks of expected results (assertions.)
At the end of the course, I demonstrate how to run the tests on a continuous integration workflow on GitHub Actions, besides the integration with the Cypress Cloud.
Once you complete the course, you will be able to put everything you learned into practice in real web projects.
Here are some of the main benefits of enrolling in this course:
Course 100% updated with market needs
Easy project startup
Fast evolution from lesson to lesson
Fast and reliable automated GUI testing
Automated tests independent of each other
Automated tests are ready to be part of your continuous integration process
Test management, analytics, test replay, etc.
Come learn how to use this modern framework that is simplifying the lives of software development professionals and differentiate yourself in the market.