Cypress V9 - Automation Testing In Detail (35+ Hours) - 2022

Posted By: ELK1nG

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

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