Cypress V6- UI Automation Testing + API Testing + Frameworks

Cypress V6- UI Automation Testing + API Testing + Frameworks

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 36h 51m | 17.7 GB

Cypress in detail. 37 hours of in-depth content, e-commerce store for real life experience and 400+ code examples.

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 io
  • Setting up Cypress cleanly
  • Creating a range of UI and API tests (beginner to advanced level)
  • Statics gathering and analysis using the Cypress dashboard
  • Triggering tests using a CI system (Jenkins)
  • Parallel test execution (in great detail)
  • Advanced API testing
  • Advanced reporting
  • And 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.

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)
Table of Contents

Cypress Introduction
1 What is Cypress
2 Why Learn Cypress
3 How does Cypress Work
4 What are the Key Differences between Cypress and other Automation Tools
5 Want to delve deeper into Cypress’s Code
6 Cypress Demo
7 Cypress Chat

Future Course & Cypress Updates – [Important!]
8 Future Course & Cypress Updates – [Must Watch!]

Environment Setup
9 Chrome & Firefox Browser Installation
10 NodeJs Setup
11 Gitbash Setup
12 VS Code Installation & Configuration

Cypress Setup
13 Cypress Installation & Setup
14 NPM Installation & Update

Cypress Overview
15 Opening Cypress for the First Time!
16 Cypress Test Runner
17 Cypress Project Structure

Cypress Updates
18 Keeping Cypress Up to Date

Cypress API
19 Cypress API – Overview

Cypress Updates
20 Cypress Updates – (Change Logs)

The Real Project Examples – (Practise Environments)
21 Systems Under Test

Mocha
22 Mocha – Overview
23 Constructing our First Test using Mocha

Basic Cypress Commands
24 Command Activation & Inspecting Specific Cypress Commands
25 Visit & Click Command
26 Click Options
27 Type Command

Creating Our First Test (The Challenge)
28 Challenge – Overview
29 Challenge – Solution
30 Creating Our Second Cypress Test – (Negative Test Case)
31 Targeting Individual Tests via Mocha

Browser Selection – (Chrome, Electron, Firefox)
32 Running Tests in Chrome, Electron & Firefox

Web Elements & Selectors
33 Why do we need Selectors
34 Document Object Model (DOM) & Elements
35 Practical In Depth Look into Selectors – Part 1 2
36 Practical In Depth Look into Selectors – Part 2 2
37 Selector Generator Tools
38 CSS Selectors
39 Xpath Selectors – Part 1 3
40 Xpath Selectors – Part 2 3
41 Xpath Selectors – Part 3 3
42 Improving our Tests with Dynamic Selectors
43 More Selector Examples!

Assertions
44 Why do we need Assertions
45 Chai Assertions & Cypress Examples
46 Adding Assertions to our Existing Tests
47 Chai JQuery
48 Assertion – Challenge
49 Assertion Challenge – Solution
50 Cypress Contains

Referencing Windows
51 cy.document()
52 cy.title()
53 cy.url()

Triggering Tests via Command Line
54 Headless Electron Browser
55 Non Headless Electron Browser
56 Non Headless Chrome Browser
57 Trigger Individual Tests

Cypress Chaining Commands
58 Cypress Chaining Commands – Introduction
59 More Examples of Command Chaining – get, find, contains, eq – Part 1 2
60 More Examples of Command Chaining – get, find, contains, eq – Part 2 2

Synchronous vs Asynchronous – (Understanding Asynchronous JS)
61 Synchronous vs Asynchronous – Overview
62 Synchronous – Example
63 Asynchronous – Example
64 Cypress Asynchronous Nature

Logging – Practical Asynchronous JS Example
65 Non Cypress Commands and Async Nature
66 Cypress log

Promises and the Then Command
67 Promises Real World Example
68 Cypress and Promises
69 then Command
70 Promise – Challenge
71 Promise Challenge – Solution

Variables
72 Variables – Part 1 4
73 Variables – Part 2 4
74 Variables – Part 3 4
75 Variables – Part 4 4
76 Variables, Promises & Nested Closures – Part 1 2
77 Variables, Promises & Nested Closures – Part 2 2

Iterating through Elements
78 Iterating through Elements – Documentation & Preparation
79 Practical Example of Iterating through Elements – Part 1 2
80 Practical Example of Iterating through Elements – Part 2 2

Alias & Invoke
81 Alias & Invoke – Documentation
82 Alias & Invoke – Practical Example
83 Alias & Invoke – Challenge
84 Alias & Invoke – Solution

Wrap up of using Alias , Invoke, Variables & Iterating through Data
85 Combining Alias , Invoke, Variables & Iterating through Data – Part 1 5
86 Combining Alias , Invoke, Variables & Iterating through Data – Part 2 5
87 Combining Alias , Invoke, Variables & Iterating through Data – Part 3 5
88 Combining Alias , Invoke, Variables & Iterating through Data – Part 4 5
89 Combining Alias , Invoke, Variables & Iterating through Data – Part 5 5

Cypress Limitations
90 Cypress Limitations

Recipes
91 Cypress Recipes

Child Windows
92 Handling Multiple Browser Tabs

Same Origin Policy
93 Same Origin Policy – Example 1 2
94 Same Origin Policy – Example 2 2

Browser Navigation
95 Back, Forward, Reload – Part 1 2
96 Back, Forward, Reload – Part 2 2
97 Back, Forward, Reload – Challenge
98 Back, Forward, Reload – Challenge Solution

Handling – Alerts
99 Handing Alerts – Documentation
100 Handling Alerts – Example 1 2
101 Handling Alerts – Example 2 2
102 Alert – Challenge
103 Alert Challenge – Solution
104 Handling Alerts with Stubs

Handling – Iframe’s
105 Handling Iframe’s – Part 1 2
106 Handling Iframe’s – Part 2 2

Handling – Checkboxes
107 Handling Checkboxes – Part 1 2
108 Handling Checkboxes – Part 2 2
109 Handling Checkboxes – Challenge
110 Handling Checkboxes – Solution
111 Selecting Multiple Checkboxes

Handling – Radio Buttons
112 Handling Radio Buttons
113 Validating States of Radio Buttons (Checked & Unchecked)

Handling – Drop-down Lists
114 Handling Drop-down Lists – Part 1 2
115 Handling Drop-down Lists – Part 2 2
116 Drop-down List – Challenge
117 Drop-down List – Solution

Autocomplete (Suggested) Lists
118 Handling Autocomplete Lists – Part 1 2
119 Handling Autocomplete Lists – Part 2 2
120 Autocomplete – Challenge
121 Autocomplete – Challenge Solution

Mouse Actions
122 Scroll into View
123 Drag & Drop
124 Double Click
125 Click, Hold & Assertions

Traversal
126 Traversal – Preparation
127 children()
128 closest()
129 eq()
130 filter()
131 find()
132 first()
133 last()
134 nextAll()
135 nextUntil()
136 not()
137 parent()
138 parents()
139 prev()
140 prevAll()
141 prevUntil()
142 siblings()

Handling Data from Tables
143 Handling Data – Example 1 – Part 1 3
144 Handling Data – Example 1 – Part 2 3
145 Handling Data – Example 1 – Part 3 3
146 Handling Data – Example 2 – Part 1 2
147 Handling Data – Example 2 – Part 2 2

Handling Date Pickers
148 Handling Date Pickers – Part 1 5
149 Handling Date Pickers – Part 2 5
150 Handling Date Pickers – Part 3 5
151 Handling Date Pickers – Part 4 5
152 Handling Date Pickers – Part 5 5

File Upload
153 Introduction & Preparation
154 Uploading File(s)
155 Uploading no File(s)

Hooks
156 Hooks – Documentation & Practical Example
157 Hooks – Improving Existing Tests
158 Hooks – Challenge
159 Hooks – Challenge Solution

Fixtures
160 Fixtures – Documentation
161 Fixtures & Data Driven Testing – Part 1 2
162 Fixtures & Data Driven Testing – Part 2 2
163 Alias & Fixtures

Custom Commands
164 Custom Commands – Documentation & Practical Example – Part 1 2
165 Custom Commands – Documentation & Practical Example – Part 2 2
166 Custom Commands – Challenge
167 Custom Commands – Challenge Solution
168 Using Custom Commands to Further Improve our Framework – Part 1 2
169 Using Custom Commands to Further Improve our Framework – Part 2 2

Custom Commands & Fixtures – Wrap Up
170 Custom Commands & Fixtures – Wrap Up – Part 1 3
171 Custom Commands & Fixtures – Wrap Up – Part 2 3
172 Custom Commands & Fixtures – Wrap Up – Part 3 3

Overriding Default Settings
173 Cypress.config
174 Ignore Files

Environment & Global Variables
175 Environment Variables
176 Setting up a Base URL
177 Dynamic URL’s
178 Dynamic URL’s & Custom Commands – Example 1 2
179 Dynamic URL’s & Custom Commands – Example 2 2

Page Object Modelling
180 Page Object Modelling – Part 1 6
181 Page Object Modelling – Part 2 6
182 Page Object Modelling – Part 3 6
183 Page Object Modelling – Part 4 6
184 Page Object Modelling – Part 5 6
185 Page Object Modelling – Part 6 6

Configuring & Handling Timeouts
186 URL Timeouts
187 Explicit Timeouts
188 Assertion Timeouts
189 Pause
190 Wait

Debugger
191 Cypress Debugger

Screenshots & Recordings
192 Capturing Screenshots
193 Recording Videos

Viewport – Altering Screen Sizes
194 Altering Viewports – Configuring Size and Orientation

Cookies & Local Storage
195 Clearing Cookies & Local Storage

Cypress Dashboard
196 Cypress Dashboard – Practical Example Part 1 2
197 Cypress Dashboard – Practical Example Part 2 2

NPM Scripts & NPX
198 Npx
199 Npm scripts – Part 1 2
200 Npm scripts – Part 2 2

Reporting
201 JUnit Reporter
202 JUnit – Merging Reports
203 Npm Scripts – Merge & Delete JUnit Reports
204 Mochawesome Reporter
205 Mochawesome – Merging Reports
206 Npm Scripts – Merge & Delete Mochawesome Reports
207 Npm Scripts – Merging & Deleting All Reports

Multiple Configuration Files
208 Custom Config File – Overview & Creation
209 Adding Logic to our Custom Config File
210 Injecting Custom Config File Logic into our Framework
211 Using Custom Config File Settings during Runtime

Cypress Retry – (Retry-ability)
212 Please read – [Important]
213 Retry Plugin – Installation
214 Adding Retry Logic to Framework
215 Adding Retry Logic to Tests
216 Adding Retry Logic to NPM Scripts

GitHub – (Source Control)
217 GitHub – Account Creation & Login
218 Visual Studio Code & GitHub – Setup
219 Committing and Pushing our Code (Framework) to GitHub – Part 1 2
220 Committing and Pushing our Code (Framework) to GitHub – Part 2 2
221 Pushing & Pulling New Changes
222 Triggering Tests Using New Repo & Code – (Cypress Dashboard)
223 GitHub Cypress App – [Homework]

Cross Browser Testing
224 NPM Scripts – Multi Browser Testing
225 Configuring Code & Tests for Specific Browsers

Jenkins (CI) – Continuous Integration
226 Jenkins (CI) – Overview
227 Java JDK – Download & Setup
228 Java JDK – Download & Setup – Mac, Ubuntu, Linux…
229 Jenkins – Download & Setup
230 Jenkins – Overview
231 Jenkins Plugins – Download & Setup
232 Jenkins – Configuration
233 Jenkins – Job Creation
234 Jenkins Build(s) – Triggering Cypress Tests – Part 1 2
235 Jenkins Build(s) – Triggering Cypress Tests – Part 2 2
236 Linking Jenkins & Cypress Dashboard

Jenkins Pipeline Jobs & Parallelization
237 Cypress Dashboard – Pricing Plans
238 Parallelization – Documentation
239 Parallelization – Architecture Overview – (Real World Example)
240 Making Jenkins Assessable Via Local Network
241 Jenkin’s Slaves (Node’s) – Setup – Part 1 2
242 Jenkin’s Slaves (Node’s) – Setup – Part 2 2
243 Jenkins Pipeline Job – Overview
244 Jenkins Pipeline Script – Creation – Part 1 2
245 Jenkins Pipeline Script – Creation – Part 2 2
246 Jenkins Pipeline Job – Creation
247 Jenkins Node(s) (Agents) – Activation
248 Parallelization In Action!
249 Parallelization In Action! – Chrome Headed Mode
250 Triggering Different Test Suites in Parallel
251 Automating Test Suite(s) Execution

API & XHR Testing
252 Please read – [Important]
253 API & JSON – Overview
254 JSON – Practical Example – Part 1 2
255 JSON – Practical Example – Part 2 2
256 JSON – Challenge
257 JSON – Solution
258 Postman – Installation
259 JSON Server – Installation
260 GET – Request via Postman
261 POST – Request via Postman
262 PUT – Request via Postman
263 DELETE – Request via Postman
264 JSON Server & Cypress Integration
265 GET – Request via Cypress – Validate Status Code
266 GET Request – Validate Keys & Values
267 GET Request – Loop Through & Assert Response
268 POST Request – Validate Status Code
269 POST Request – Post & Validate Properties
270 POST Request – Dynamic Data
271 UPDATE Request via Cypress
272 DELETE Request via Cypress
273 API – Challenge Overview
274 API – Challenge Solution – Part 1 2
275 API – Challenge Solution – Part 2 2
276 XHR Testing – Overview
277 XHR – Project Setup
278 Get Request – XHR Testing
279 Mocking Get Requests by Stubbing Responses
280 Post Request – XHR Testing
281 Put Request – Stubbing Server Response – XHR Testing
282 Real world Example – Project Setup & Cypress Integration
283 Real world Example – Manual Account Creation
284 Real world Example – Automating Account Creation
285 Real world Example – UI & XHR Validation
286 Real world Example – Automating Account Login
287 Real world Example – Mocking Data
288 Real world Example – Mocking Data – Challenge Overview
289 Real world Example – Mocking Data – Challenge Solution

The Real-World Challenge – (Interview Preparation)
290 Please read – [Important]
291 Project Setup – Challenge Overview
292 Project Setup – Challenge Solution
293 Signup Test – Challenge Overview
294 Signup Test – Challenge Solution – Part 1 3
295 Signup Test – Challenge Solution – Part 2 3
296 Signup Test – Challenge Solution – Part 3 3
297 Login Test – Challenge Overview
298 Login Test – Challenge Solution – Part 1 2
299 Login Test – Challenge Solution – Part 2 2
300 API Testing – Challenge Overview
301 API Testing – Challenge Solution
302 API Authentication – Token Extraction
303 API Authentication – Loading Token & Login – (Non UI)

Cypress v5
304 Please read – [Important]
305 Prerequisite – Please Watch!
306 Updating Cypress v4 to v5
307 Whitelist XHR (Update)
308 Cypress New Retry Ability – Intro
309 Migrating Retry-ability ‘Functionality’ to Cypress v5+
310 Adding Retry Logic to Framework
311 Adding Retry Logic to Tests
312 Adding Retry Logic to NPM Scripts

Cypress v6
313 Please read – [Important]
314 Prerequisite – Please Watch!
315 cy.intercept – Example 1 [Project angular-realworld-example-app] – Part 1 2
316 cy.intercept – Example 1 [Project angular-realworld-example-app] – Part 2 2
317 cy.intercept – Example 2 [Project network-requests] – Part 1 3
318 cy.intercept – Example 2 [Project network-requests] – Part 2 3
319 cy.intercept – Example 2 [Project network-requests] – Part 3 3
320 Cypress Studio
321 $el.click() Deprecated; (method) JQuery HTMLElement .click()

Cucumber BDD
322 Please read – [Important]
323 What is Cucumber BDD
324 Mocha vs Cucumber BDD
325 Setting up Cucumber BDD
326 Feature File & Scenario – Creation
327 Step Definitions – Creation Part 1 2
328 Step Definitions – Creation Part 2 2
329 Adding Hook(s)
330 Creating Multiple Scenario’s
331 Data Driven Testing – Scenario Outlines
332 Tags & Custom Scripts

Homepage