end to end UI and api test automation using Cypress

 

Cypress is a Test Automation tool. Test Automation has a key role in overall DevOps implementation.

The industry now demands that QA/testers understand programming well. The role in demand now is SDET (Software Development Engineer in Test).

There is no pre-requisite for this course. We start from the very basics of programming and make you learn Javascript We will also cover all aspects of Cypress from basics to advance.

One cannot be a developer without knowing how to maintain source code. We will cover Git/GitHub.

DevOps is the need for most of organizations. We will teach you how to create pipelines in Jenkins.

In the end, we will give you a project you need to complete with an automation framework.

Click here to register for a demo session; our team will be happy to help.

Every session we conduct is a combination of theory and hands-on.

All sessions are recorded which participants can keep with them for lifetime.

Who can attend

Engineering graduates | Working professionals – manual Testers | Developers

course outline

Javascript

Automation Basics

Introduction to Cypress

Cypress Basics

Writing Your First Test

Locators

Assertions

Retry-ability

Cypress Commands

Automation Framework Components

Cypress - Advance App Behaviours

Cypress - API Testing

Demo Video:

Course Content

Installation & Configuration
  • Introduction of participants, trainer and expectation setting
  • Node Installation
  • Install Visual Code
  • Understading pacakge.json

Javascript Basics
  • Introduction to Javascript
  • How to install Javascript
  • variables
  • functions
  • Operators
  • String Methods
  • Arrays
  • Control Flows
  • Promoises/Async waits
  • File Handling
  • Import/Export
  • Object Oriented Programming
  • Exception Handling
  • Collections
  • File Handling
  • DB connectivity
  • Logging
  • All the above concepts with hand-on examples
Introduction to Cypress
  • Installing Cypress
  • What is Cypress
  • Cypress Architecture
  • Cypress vs Selenium
  • Cypress Environment variables

Cypress Basics
  • Advantages of Cypress
  • Limitations of Cypress
  • Basic Components in Cypress – Test Runner , Dashboard
  • Cypress Test Runner

Writing Your First Cypress Test
  • Cypress Folder Structure, spec, hooks, fixtures, downloaded, screenshots, videos, assets, plugins, support
  • Test Runner – UI
  • Test Structure – describe and it (Mocha)
  • Understand basics of writing test cases in Cypress
  • activating code completion
  • Deubugging in Cypress
  • Chai – ‘expect
  • Hooks
  • Excluding and including tests – cy.only, cy.skip
  • Cypress modes – legacy and strict
  • Test Status – Pass, Failed, Skipped, Pending
  • Watching Tests

Locators in Cypress
  • Cypress locating strategies

  • Cypress plug in to generate locators

  • Types of locators

  • Why do we need Selectors?

  • Document Object Model (DOM) & Elements

  • Practical In Depth Look into Selectors

  • Selector Generator Tools
  • CSS Selectors
  • Xpath Selectors
  • Dynamic Selectors
  • Automatic retries by Cypress commands

Assertions
  • Why do we need Assertions?
  • Chai Assertions & Cypress Examples
  • Adding Assertions to our Existing Tests
  • Chai JQuery
  • Implicit (default) And Explicit Assertions
  • Cypress contains command

Retry-ability - Say goodbye to flakiness
  • Commands vs assertions
  • Commands not retried
  • Built-in assertions revisted
  • Timeouts
  • Best practices in using retry-ability

Cypress Commands & How they work
  • Command Activation & Inspecting Specific Cypress Commands
  • Interacting with Elements
  • How Cypress checks visibility, action-ability, disability implicitly
  • How to bypass the above checks
  • Test Runner – Console
  • Async promises with Cypress
  • Difference between JQuery methods and Cypress commands
  • Cypress variables
  • aliasing elements
  • setting a base URL
  • visit & click Commands
  • click Options
  • type Command
  • wrap command
  • get and find commands
  • Testing text input
  • selecting elements
  • working with command results
  • handling checkbox, radio
  • dropdwons – static and dynamic
  • Visible and invisible elements
  • Complex actions – doubl-eclick, right-click
  • Handling webtables
  • and command
  • filter and not commands

Cypress - handling advance app behaviours
  • Handling Alerts and popups with Cypress
  • Working with iFrames and understanding Same-Origin policy
  • Handling child tabs using Cypress and JQuery commands
  • Handling child windows
  • Cypress – File Upload
  • Handling Shadow DOM

Automation Framework Components
  • Create custom commands
  • Page Object Model
  • Integration with CI
  • Use External libraries
  • Reuse data with Cypress Fixtures
  • Mock network retries
  • Extend Cypress with plugins
  • Test Data Management
  • Data Driven Testing

API testing with Cypress
  • What is API and what is API testing
  • API Testing Introduction
  • GET Request
  • POST request
  • PUT/DELETE requests
  • Changing browser behaviour with Cypress events

Reporting
  • Cypress Allure Plug-in
  • Mocha JUnit reporting
  • Mochawesome report with Cypress

Cypress - Best Practices
  • Logging and controlling state
  • Selecting elements
  • assigning return values
  • visiting external sites
  • Test isolation
  • small is better – Single Responsibility Design Principle
  • DRY Design Principle

Git/GitHub
  • Introduction to SCM
  • Types of SCMs
  • Creating repo(repositories)
  • Adding files to repo
  • Branches and Best practices
  • Merging, Cloning, tagging
  • Importance of .gitignore
  • Working on Git Command Line
  • GitHub account creation
  • Uploading your project with GitHub using command line and Eclipse
  • Integration with Jenkins using GitHub Webhooks

CI/CD Intergration - Docker - Jenkins
  • Cypress Dashboard
  • Cypress with Docker
  • What is CI and CD
  • Manage Configuration
  • Setup Build Jobs
  • Plugins
  • Scheduling Builds (Push/Pull)
  • Configuring a Jenkins Pipeline for test execution

BDD/Cucumber
  • What is BDD/TDD
  • BDD with Agile
  • Feature File – Gherkin
  • Step Definitions
  • Tags
  • Parameters in Step Definition
  • DataTables
  • Writing Tests
  • Executing tests
  • Reports

Creating Test Automation Framework

What is Test Automation Framework

Why we should care

How to create a robust automation Framework

  • Re-usability and maintainability is the key focus area
  • Configurability
  • Effective Usage of Design Patterns
  • Test Data Management
  • Exception Handling
  • Debugging using Logs
  • Effective exception handling
  • Principles of writing clean code
  • Reporting Frameworks
  • Integration with CI tools like Jenkins
  • Use of version control
  • Support for parallel execution – on-premise/cloud
  • Utility functions/page objects/custom commands

Test Automation Project
  • Automate an e-commerce application
  • Make decisions on frameworks based on requirements
  • Design Test Data Management Strategy
  • Design logging strategy
  • Design exception handling and reporting
  • Design page objects/custom commands for store and admin panel
  • Write tests and execute them
  • Make scripts accept run-time parameters instead of hard-coding
  • Create utility package to re-use (modular framework)
  • Allure Reporting Framework
  • Integrate with Jenkins and GitHub

Post Training Association
  • Typical Interview questions
  • Resume Preparation
  • Mock Interview – only on request
  • Providing interview calls with companies
  • Regular communication on WhatsApp group regarding selenium webinars, conferences and job openings
  • Re-attending the same training in future without any additional cost