Cypress V9 - Automation Testing In Detail (35+ Hours) - 2022
Last updated 8/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 17.13 GB | Duration: 35h 51m
Last updated 8/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 17.13 GB | Duration: 35h 51m
The #1 course to learn Cypress in detail. Hundreds of code examples, an e-commerce store, frameworks and API testing!
What you'll learn
By the end of this course, you will be able to build simplistic to advanced automation tests for any Web Application using Cypress
You will gain advanced knowledge to build both UI and API tests
Learn XHR/API testing using Cypress for building smart Automation tests
Complete understanding of Cypress components for generating test execution videos, screenshots & reports
You will understand how to execute your tests in parallel using a CI system (Jenkins & Agents)
You will learn advanced architectural concepts (Page Object Modelling and more)
Requirements
Some knowledge of programming would be beneficial (not critical)
Some basic JS, HTML and CSS knowledge would also be useful (not critical)
Description
This is the most detailed Cypress course on Udemy. It includes 35+ hours of content, 400+ code examples, comes with a dedicated e-commerce store to gain real life experience, and covers everything you need to know. You will learn Cypress to an advanced level and gain a competitive edge to meet job demands.Cypress is a JavaScript End to End Testing Framework that is popular and still growing in popularity due to the great features and how easy it is to write tests.Key Topics this course covers:Fundamentals of Cypress ioSetting up Cypress cleanlyCreating a range of UI and API tests (beginner to advanced level)Statics gathering and analysis using the Cypress dashboardTriggering tests using a CI system (Jenkins)Parallel test execution (in great detail)Advanced API testingAdvanced reportingAnd much more (check out the course syllabus)Key Features of Cypress:Easy setup - Installing Cypress is simple. No dependencies, extra downloads, or changes to your code required.Write tests - Write tests easily and quickly, and watch them execute in real time as you build your web application.Run tests - Debugging your tests in CI is as easy as running tests locally. With built in parallelization and load balancing.Record tests - Record CI test data, screenshots and video - and view aggregated, next-level insights in your Dashboard.Benefits of Cypress:Developer friendly - Cypress has been made specifically for developers and QA engineers, to help them get more done.Open source - Cypress benefits from our amazing open source community - and Cypresses tools are evolving better and faster than if we worked on them alone.Built from the ground up - Cypress is based on a completely new architecture. No more Selenium. Lots more power.What sets Cypress apart?Time travel - Cypress takes snapshots as your tests run. Simply hover over commands in the Command Log to see exactly what happened at each step.Debugging - Stop guessing why your tests are failing. Debug directly from familiar tools like Chrome DevTools. The readable errors and stack traces make debugging lightning fast.Real time reloads - Cypress automatically reloads whenever you make changes to your tests. See commands execute in real time in your app.Automatic waiting - Never add waits or sleeps to your tests. Cypress automatically waits for commands and assertions before moving on. No more async hell.Why this course?This course combines all of the BEST free knowledge that is out there in one placeThis course is taught by a real automation test engineer that is an automation test lead at his place of employmentThis course has been designed, refined and perfected to maximise the learning experienceThis course perfects the teaching techniques by experience learned from the mentors previous coursesBefore and after code examples provided on almost every coding lectureQuestions usually always answered in 24 hoursCourse recorded using high quality recording software and microphone to give the best learning experienceThis is the course I wish I had when learning Cypress. This course makes learning Cypress easy and enjoyable. Learn the right way from an experienced instructor.
Overview
Section 1: Cypress Introduction
Lecture 1 What is Cypress?
Lecture 2 Why Learn Cypress?
Lecture 3 How does Cypress Work?
Lecture 4 What are the Key Differences between Cypress and other Automation Tools?
Lecture 5 Want to delve deeper into Cypress’s Code?
Lecture 6 Cypress Demo
Lecture 7 Cypress Chat
Section 2: Future Course & Cypress Updates - [Important!]
Lecture 8 Future Course & Cypress Updates - [Must Watch!]
Lecture 9 Other Courses - (Coupon Codes)
Section 3: Environment Setup
Lecture 10 Chrome & Firefox Browser Installation
Lecture 11 Prerequisites - [NodeJS Setup]
Lecture 12 NodeJs Setup
Lecture 13 Gitbash Setup
Lecture 14 VS Code Installation & Configuration
Section 4: Cypress Setup
Lecture 15 Please Read - [Important]
Lecture 16 Cypress Installation & Setup
Lecture 17 NPM Installation & Update
Section 5: Cypress Overview
Lecture 18 Opening Cypress for the First Time!
Lecture 19 Please Read - [Cypress Test Runner]
Lecture 20 Cypress Test Runner
Lecture 21 Cypress Project Structure
Section 6: Cypress Updates
Lecture 22 Keeping Cypress Up to Date
Section 7: Cypress API
Lecture 23 Cypress API - Overview
Section 8: Cypress Updates - (Change Logs)
Lecture 24 Cypress Updates - (Change Logs)
Section 9: The Real Project Examples - (Practise Environments)
Lecture 25 Systems Under Test
Section 10: Mocha
Lecture 26 Mocha - Overview
Lecture 27 Constructing our First Test using Mocha
Section 11: Basic Cypress Commands
Lecture 28 Command Activation & Inspecting Specific Cypress Commands
Lecture 29 Visit & Click Command
Lecture 30 Click Options
Lecture 31 Type Command
Section 12: Creating Our First Test (The Challenge)
Lecture 32 Challenge - Overview
Lecture 33 Challenge - Solution
Lecture 34 Creating Our Second Cypress Test - (Negative Test Case)
Lecture 35 Targeting Individual Tests via Mocha
Section 13: Browser Selection - (Chrome, Electron, Firefox)
Lecture 36 Running Tests in Chrome, Electron & Firefox
Section 14: Web Elements & Selectors
Lecture 37 Why do we need Selectors?
Lecture 38 Document Object Model (DOM) & Elements
Lecture 39 Practical In Depth Look into Selectors - Part 1/2
Lecture 40 Practical In Depth Look into Selectors - Part 2/2
Lecture 41 Selector Generator Tools
Lecture 42 CSS Selectors
Lecture 43 Xpath Selectors - Part 1/3
Lecture 44 Xpath Selectors - Part 2/3
Lecture 45 Xpath Selectors - Part 3/3
Lecture 46 Improving our Tests with Dynamic Selectors
Lecture 47 More Selector Examples!
Lecture 48 Want to Learn how to Create more Advanced / Sophisticated Selectors?
Section 15: Assertions
Lecture 49 Why do we need Assertions?
Lecture 50 Chai Assertions & Cypress Examples
Lecture 51 Adding Assertions to our Existing Tests
Lecture 52 Chai JQuery
Lecture 53 Assertion - Challenge
Lecture 54 Assertion Challenge - Solution
Lecture 55 Cypress Contains
Section 16: Referencing Windows
Lecture 56 cy.document()
Lecture 57 cy.title()
Lecture 58 cy.url()
Section 17: Triggering Tests via Command Line
Lecture 59 Headless Electron Browser
Lecture 60 Non Headless Electron Browser
Lecture 61 Non Headless Chrome Browser
Lecture 62 Trigger Individual Tests
Section 18: Cypress Chaining Commands
Lecture 63 Cypress Chaining Commands - Introduction
Lecture 64 More Examples of Command Chaining - get, find, contains, eq - Part 1/2
Lecture 65 More Examples of Command Chaining - get, find, contains, eq - Part 2/2
Section 19: Synchronous vs Asynchronous - (Understanding Asynchronous JS)
Lecture 66 Synchronous vs Asynchronous - Overview
Lecture 67 Synchronous - Example
Lecture 68 Asynchronous - Example
Lecture 69 Cypress Asynchronous Nature
Section 20: Logging - Practical Asynchronous JS Example
Lecture 70 Non Cypress Commands and Async Nature
Lecture 71 Cypress log
Section 21: Promises and the Then Command
Lecture 72 Promises Real World Example
Lecture 73 Cypress and Promises
Lecture 74 then Command
Lecture 75 Promise - Challenge
Lecture 76 Promise Challenge - Solution
Section 22: Variables
Lecture 77 Variables - Part 1/4
Lecture 78 Variables - Part 2/4
Lecture 79 Variables - Part 3/4
Lecture 80 Variables - Part 4/4
Lecture 81 Variables, Promises & Nested Closures - Part 1/2
Lecture 82 Variables, Promises & Nested Closures - Part 2/2
Section 23: Iterating through Elements
Lecture 83 Iterating through Elements - Documentation & Preparation
Lecture 84 Practical Example of Iterating through Elements - Part 1/2
Lecture 85 Practical Example of Iterating through Elements - Part 2/2
Section 24: Alias & Invoke
Lecture 86 Alias & Invoke - Documentation
Lecture 87 Alias & Invoke - Practical Example
Lecture 88 Alias & Invoke - Challenge
Lecture 89 Alias & Invoke - Solution
Section 25: Wrap up of using: Alias, Invoke, Variables & Iterating through Data
Lecture 90 Combining Alias , Invoke, Variables & Iterating through Data - Part 1/5
Lecture 91 Combining Alias , Invoke, Variables & Iterating through Data - Part 2/5
Lecture 92 Combining Alias , Invoke, Variables & Iterating through Data - Part 3/5
Lecture 93 Combining Alias , Invoke, Variables & Iterating through Data - Part 4/5
Lecture 94 Combining Alias , Invoke, Variables & Iterating through Data - Part 5/5
Section 26: Cypress Limitations
Lecture 95 Cypress Limitations
Section 27: Recipes
Lecture 96 Cypress Recipes
Section 28: Child Windows
Lecture 97 Handling Multiple Browser Tabs
Section 29: Same Origin Policy
Lecture 98 Same Origin Policy - Example 1/2
Lecture 99 Same Origin Policy - Example 2/2
Section 30: Browser Navigation
Lecture 100 Back, Forward, Reload - Part 1/2
Lecture 101 Back, Forward, Reload - Part 2/2
Lecture 102 Back, Forward, Reload - Challenge
Lecture 103 Back, Forward, Reload - Challenge Solution
Section 31: Handling - Alerts
Lecture 104 Handing Alerts - Documentation
Lecture 105 Handling Alerts - Example 1/2
Lecture 106 Handling Alerts - Example 2/2
Lecture 107 Alert - Challenge
Lecture 108 Alert Challenge - Solution
Lecture 109 Handling Alerts with Stubs
Section 32: Handling - Iframe's
Lecture 110 Handling Iframe's - Part 1/2
Lecture 111 Handling Iframe's - Part 2/2
Section 33: Handling - Checkboxes
Lecture 112 Handling Checkboxes - Part 1/2
Lecture 113 Handling Checkboxes - Part 2/2
Lecture 114 Handling Checkboxes - Challenge
Lecture 115 Handling Checkboxes - Solution
Lecture 116 Selecting Multiple Checkboxes
Section 34: Handling - Radio Buttons
Lecture 117 Handling Radio Buttons
Lecture 118 Validating States of Radio Buttons (Checked & Unchecked)
Section 35: Handling - Drop-down Lists
Lecture 119 Handling Drop-down Lists - Part 1/2
Lecture 120 Handling Drop-down Lists - Part 2/2
Lecture 121 Drop-down List - Challenge
Lecture 122 Drop-down List - Solution
Section 36: Autocomplete (Suggested) Lists
Lecture 123 Handling Autocomplete Lists - Part 1/2
Lecture 124 Handling Autocomplete Lists - Part 2/2
Lecture 125 Autocomplete - Challenge
Lecture 126 Autocomplete - Challenge Solution
Lecture 127 $el.click() Deprecated; (method) JQuery.click()
Section 37: Mouse Actions
Lecture 128 Scroll into View
Lecture 129 Drag & Drop
Lecture 130 Double Click
Lecture 131 Click, Hold & Assertions
Section 38: Traversal
Lecture 132 Traversal - Preparation
Lecture 133 children()
Lecture 134 closest()
Lecture 135 eq()
Lecture 136 filter()
Lecture 137 find()
Lecture 138 first()
Lecture 139 last()
Lecture 140 nextAll()
Lecture 141 nextUntil()
Lecture 142 not()
Lecture 143 parent()
Lecture 144 parents()
Lecture 145 prev()
Lecture 146 prevAll()
Lecture 147 prevUntil()
Lecture 148 siblings()
Section 39: Handling Data from Tables
Lecture 149 Handling Data - Example 1 - Part 1/3
Lecture 150 Handling Data - Example 1 - Part 2/3
Lecture 151 Handling Data - Example 1 - Part 3/3
Lecture 152 Handling Data - Example 2 - Part 1/2
Lecture 153 Handling Data - Example 2 - Part 2/2
Section 40: Handling Date Pickers
Lecture 154 Handling Date Pickers - Part 1/5
Lecture 155 Handling Date Pickers - Part 2/5
Lecture 156 Handling Date Pickers - Part 3/5
Lecture 157 Handling Date Pickers - Part 4/5
Lecture 158 Handling Date Pickers - Part 5/5
Section 41: File Upload
Lecture 159 Introduction & Preparation
Lecture 160 Uploading File(s)
Lecture 161 Uploading no File(s)
Section 42: Hooks
Lecture 162 Hooks - Documentation & Practical Example
Lecture 163 Hooks - Improving Existing Tests
Lecture 164 Hooks - Challenge
Lecture 165 Hooks - Challenge Solution
Section 43: Fixtures
Lecture 166 Fixtures - Documentation
Lecture 167 Fixtures & Data Driven Testing - Part 1/2
Lecture 168 Fixtures & Data Driven Testing - Part 2/2
Lecture 169 Alias & Fixtures
Section 44: Custom Commands
Lecture 170 Custom Commands - Documentation & Practical Example - Part 1/2
Lecture 171 Custom Commands - Documentation & Practical Example - Part 2/2
Lecture 172 Custom Commands - Challenge
Lecture 173 Custom Commands - Challenge Solution
Lecture 174 Using Custom Commands to Further Improve our Framework - Part 1/2
Lecture 175 Using Custom Commands to Further Improve our Framework - Part 2/2
Section 45: Custom Commands & Fixtures - Wrap Up
Lecture 176 Custom Commands & Fixtures - Wrap Up - Part 1/3
Lecture 177 Custom Commands & Fixtures - Wrap Up - Part 2/3
Lecture 178 Custom Commands & Fixtures - Wrap Up - Part 3/3
Section 46: Overriding Default Settings
Lecture 179 Cypress.config
Lecture 180 Ignore Files
Section 47: Environment & Global Variables
Lecture 181 Prerequisites - (Please Watch)
Lecture 182 Environment Variables
Lecture 183 Setting up a Base URL
Lecture 184 Dynamic URL's
Lecture 185 Dynamic URL's & Custom Commands - Example 1/2
Lecture 186 Dynamic URL's & Custom Commands - Example 2/2
Section 48: Page Object Modelling
Lecture 187 Page Object Modelling - Part 1/6
Lecture 188 Page Object Modelling - Part 2/6
Lecture 189 Page Object Modelling - Part 3/6
Lecture 190 Page Object Modelling - Part 4/6
Lecture 191 Page Object Modelling - Part 5/6
Lecture 192 Page Object Modelling - Part 6/6
Section 49: Configuring & Handling Timeouts
Lecture 193 URL Timeouts
Lecture 194 Explicit Timeouts
Lecture 195 Assertion Timeouts
Lecture 196 Pause
Lecture 197 Wait
Section 50: Debugger
Lecture 198 Cypress Debugger
Section 51: Screenshots & Recordings
Lecture 199 Capturing Screenshots
Lecture 200 Recording Videos
Section 52: Viewport - Altering Screen Sizes
Lecture 201 Altering Viewports - Configuring Size and Orientation
Section 53: Cookies & Local Storage
Lecture 202 Please Read
Lecture 203 Clearing Cookies & Local Storage
Section 54: Cypress Dashboard
Lecture 204 Cypress Dashboard - Practical Example Part 1/2
Lecture 205 Cypress Dashboard - Practical Example Part 2/2
Section 55: NPM Scripts & NPX
Lecture 206 Prerequisites - (Please Watch)
Lecture 207 Npx
Lecture 208 Npm scripts - Part 1/2
Lecture 209 Npm scripts - Part 2/2
Section 56: Reporting
Lecture 210 JUnit Reporter
Lecture 211 JUnit - Merging Reports
Lecture 212 Npm Scripts - Merge & Delete JUnit Reports
Lecture 213 Mochawesome Reporter
Lecture 214 Mochawesome - Merging Reports
Lecture 215 Npm Scripts - Merge & Delete Mochawesome Reports
Lecture 216 Npm Scripts - Merging & Deleting All Reports
Section 57: Multiple Configuration Files
Lecture 217 Custom Config File - Overview & Creation
Lecture 218 Adding Logic to our Custom Config File
Lecture 219 Injecting Custom Config File Logic into our Framework
Lecture 220 Using Custom Config File Settings during Runtime
Section 58: Cypress Retry - (Retry-ability)
Lecture 221 Adding Retry Logic to Framework
Lecture 222 Adding Retry Logic to Tests
Lecture 223 Adding Retry Logic to NPM Scripts
Section 59: GitHub - (Source Control)
Lecture 224 GitHub - Account Creation & Login
Lecture 225 Visual Studio Code & GitHub - Setup
Lecture 226 Committing and Pushing our Code (Framework) to GitHub - Part 1/2
Lecture 227 Committing and Pushing our Code (Framework) to GitHub - Part 2/2
Lecture 228 Pushing & Pulling New Changes
Lecture 229 Triggering Tests Using New Repo & Code - (Cypress Dashboard)
Lecture 230 GitHub Cypress App - [Homework]
Section 60: Cross Browser Testing
Lecture 231 NPM Scripts - Multi Browser Testing
Lecture 232 Configuring Code & Tests for Specific Browsers
Section 61: Jenkins (CI) - Continuous Integration
Lecture 233 Jenkins (CI) - Overview
Lecture 234 Java JDK - Download & Setup
Lecture 235 Java JDK - Download & Setup - Mac, Ubuntu, Linux….
Lecture 236 Jenkins - Download & Setup
Lecture 237 Jenkins - Overview
Lecture 238 Jenkins Plugins - Download & Setup
Lecture 239 Jenkins - Configuration
Lecture 240 Jenkins - Job Creation
Lecture 241 Jenkins Build(s) - Triggering Cypress Tests - Part 1/2
Lecture 242 Jenkins Build(s) - Triggering Cypress Tests - Part 2/2
Lecture 243 Linking Jenkins & Cypress Dashboard
Section 62: Jenkins Pipeline Jobs & Parallelization
Lecture 244 Prerequisites - (Please Watch)
Lecture 245 Cypress Dashboard - Pricing Plans
Lecture 246 Parallelization - Documentation
Lecture 247 Parallelization - Architecture Overview - (Real World Example)
Lecture 248 Making Jenkins Assessable Via Local Network
Lecture 249 Jenkin’s Nodes (Agents) - Setup - Part 1/2
Lecture 250 Jenkin’s Nodes (Agents) - Setup - Part 2/2
Lecture 251 Jenkins Pipeline Job - Overview
Lecture 252 Jenkins Pipeline Script – Creation - Part 1/2
Lecture 253 Jenkins Pipeline Script – Creation - Part 2/2
Lecture 254 Jenkins Pipeline Job - Creation
Lecture 255 Jenkins Nodes (Agents) - Activation
Lecture 256 Parallelization In Action!
Lecture 257 Parallelization In Action! - Chrome Headed Mode
Lecture 258 Triggering Different Test Suites in Parallel
Lecture 259 Automating Test Suite(s) Execution
Section 63: API & XHR Testing
Lecture 260 Prerequisite - (Please Watch)
Lecture 261 API & JSON - Overview
Lecture 262 JSON - Practical Example - Part 1/2
Lecture 263 JSON - Practical Example - Part 2/2
Lecture 264 JSON - Challenge
Lecture 265 JSON - Solution
Lecture 266 Postman - Installation
Lecture 267 JSON Server - Installation
Lecture 268 GET - Request via Postman
Lecture 269 POST - Request via Postman
Lecture 270 PUT - Request via Postman
Lecture 271 DELETE - Request via Postman
Lecture 272 JSON Server & Cypress Integration
Lecture 273 GET - Request via Cypress - Validate Status Code
Lecture 274 GET Request - Validate Keys & Values
Lecture 275 GET Request - Loop Through & Assert Response
Lecture 276 POST Request - Validate Status Code
Lecture 277 POST Request - Post & Validate Properties
Lecture 278 POST Request - Dynamic Data
Lecture 279 UPDATE Request via Cypress
Lecture 280 DELETE Request via Cypress
Lecture 281 API - Challenge Overview
Lecture 282 API - Challenge Solution - Part 1/2
Lecture 283 API - Challenge Solution - Part 2/2
Lecture 284 XHR Testing - Overview
Lecture 285 XHR - Project Setup
Lecture 286 Get Request - XHR Testing
Lecture 287 Mocking Get Requests by Stubbing Responses
Lecture 288 Post Request - XHR Testing
Lecture 289 Put Request - Stubbing Server Response - XHR Testing
Lecture 290 Real world Example - Project Setup & Cypress Integration
Lecture 291 Real world Example - Manual Account Creation
Lecture 292 Real world Example - Automating Account Creation
Lecture 293 Real world Example - UI & XHR Validation
Lecture 294 Real world Example - Automating Account Login
Lecture 295 Real world Example - Mocking Data
Lecture 296 Real world Example - Mocking Data - Challenge Overview
Lecture 297 Real world Example - Mocking Data - Challenge Solution
Section 64: The Real-World Challenge - (Interview Preparation)
Lecture 298 Prerequisite - (Please Watch)
Lecture 299 Project Setup - Challenge Overview
Lecture 300 Project Setup - Challenge Solution
Lecture 301 Signup Test - Challenge Overview
Lecture 302 Signup Test - Challenge Solution - Part 1/3
Lecture 303 Signup Test - Challenge Solution - Part 2/3
Lecture 304 Signup Test - Challenge Solution - Part 3/3
Lecture 305 Login Test - Challenge Overview
Lecture 306 Login Test - Challenge Solution - Part 1/2
Lecture 307 Login Test - Challenge Solution - Part 2/2
Lecture 308 API Testing - Challenge Overview
Lecture 309 API Testing - Challenge Solution
Lecture 310 API Authentication - Token Extraction
Lecture 311 API Authentication - Loading Token & Login - (Non UI)
Section 65: Cypress Studio
Lecture 312 Prerequisite - (Please Watch)
Lecture 313 Cypress Studio
Section 66: Cucumber BDD
Lecture 314 Prerequisite - (Please Watch)
Lecture 315 What is Cucumber BDD?
Lecture 316 Mocha vs Cucumber BDD
Lecture 317 Setting up Cucumber BDD
Lecture 318 Feature File & Scenario - Creation
Lecture 319 Step Definitions - Creation: Part 1/2
Lecture 320 Step Definitions - Creation: Part 2/2
Lecture 321 Adding Hook(s)
Lecture 322 Creating Multiple Scenario's
Lecture 323 Data Driven Testing -> Scenario Outlines
Lecture 324 Tags & Custom Scripts
Section 67: Other Courses - (Coupon Codes)
Lecture 325 Other Courses - (Coupon Codes)
Students completely new to automation testing,Manual testers looking to enter the automation testing space,Anyone interested in automation testing and wanting to learn one of the most popular frameworks out there,Front end developers interested in automation testing using a language they will be familiar with,Intermediate and advanced students wanting to learn new concepts and techniques