Cypress Test Automation For Non-Programmers

Course Description

Cypress.io is an automated test platform that provides fast, easy and reliable testing for anything that runs in a browser. It takes the best parts of other frameworks and tools like mocha, chai and selenium and delivers a robust, easy-to-use platform. This course is specifically designed for non-programmers and will give just enough coding skills to be able to understand, modify and create from scratch automated test suites for web sites and web applications.
4 Days
Contact us for pricing
 

Pre-requisites

This course is aimed at non programmers and assumes no programming experience.

Test Automation

What is test automation?
What are the benefits of test automation?
Understanding TDD (Test Driven Development)
What does Cypress.io do?
Demonstration of Cypress.io in action.

Web Application building blocks

HTML
CSS
JavaScript
What happens when you request a web page
Chrome Developer Tools
The Elements tab
The Network tab
The Console tab
Inspecting an element
Selecting elements from a page by tag, id, class and attribute

Enough Programming To Get Going

Automating tests requires you to create basic computer programs or scripts using the JavaScript programming language. This module will go through the basic building blocks of any programming language with particular reference to how those building blocks will be used later on when we write test automation routines.
Comments
Variables
Arrays
Functions
Objects
Conditions
Loops
Exceptions

The Node.js Ecosystem

Cypress test is part of the node.js ecosystem. This module will give a basic overview of node.js and how it is used as a platform for creating and running automated tests using Cypress.io.
What is node.js?
Creating a basic node.js project
Adding dependencies
The package.json file
Development dependencies
Creating a simple web application

Introduction to Cypress.io

Understanding End To End Testing
Unit Tests
Integration Tests
End To End Testing
Browser automation
Installing Cypress
Adding Cypress.io as a development dependency
Launching Cypress.io
Creating a first test

Basic Cypress Operations

Navigation
- Visit
Querying
- Get
- Contains
Actions
- Click
- Type
- Check/Uncheck

More JavaScript

Understanding the asynchronous nature of JavaScript
Callback functions
Iterating through a list using asynchronous callback functions
Recognising and using promises

More Cypress Operations

Traversal
Navigation
Assertions
Screenshot

Debugging

When writing any type of script it is inevitable that it may not work as expected first time. Cypress.io provides a number of debugging features to help you get your test running correctly.
Time travel
Snapshots
Page Events
Console output

Introduction to Behaviour Driven Development (BDD)

What is BDD?
Advantages of BDD
Plain language
Non technical users can write tests
Code use in framework
Tests can be parameterised
Gherkin Language
Given, When, Then, And
Cucumber
Integrating Cucumber BDD into Cypress project
VSCode Extensions
Creating a feature file
Creating a step definition file
Running a feature file
Reusing steps in multiple features
Parameterising a step
Page object model
Creating a Page Object class
Writing tests using the Page Object class

Final Workshop - Multi-Application Testing

This practical workshop will utilise all of the techniques covered to test an application that has two facets - a customer-facing application with an administration application. The tests will include registration of a user using the customer facing application and verifying those details via the administration application.

Deploying Your Tests

This module can be customised to match the continuous integration environment utilised by the participants.
What is Continuous Integration?
Headless operation

CypressCypress.ioTest AutomationTDDAutomated testingTest Driven DevelopmentSoftware TestJavaScriptModern Web DevelopmentBDDBehaviour driven development