End-to-End Testing with Cypress

4 Days
javascripttypescript
testingAutomation

Intermediate

testerdeveloper

This workshop coaches participants on how to automate end-to-end web testing using Cypress, which is widely used browser automation tool-set.
With least presumption on participant’s knowledge, Workshop commences with key concepts succinctly and then moves to Cypress usage as a tool for test automation for web applications. The course covers testing of static and dynamic website with html, http, ajax and more. Cypress api is covered in very complete detail including tools like CLI and Cypress app with Cypress studio, libs like underscore, and Introduction to parallel testing and BDD tests. Highlight of this workshop is extensive hands-on and demos.

Audience

Participants must be developers or software savvy testers who aspire to use Cypress to efficiently conduct their business.

Prerequisites

Participant must be able to code (beginner level) in Javascript/Typescript with corresponding standard library using VSCode.

Topics
Introduction
  • Web and HTTP
  • Browsers and Servers
  • HTML, CSS and JavaScript
  • Browser Developer Tools
  • Cookies, Cache, Headers
  • DOM Tree and Web flow
  • Ajax Vs Non-ajax
  • Brush up on language
    • Intro to Node and VSCode
    • Javascript vs Typescript
    • Key Classes and/or Methods for language
    • Asynchronous code
  • Debugging
  • Manual Testing
  • Test types
  • Coded Tests and Benefits
  • Usage of Unit Testing Framework
  • AAAC structure
  • Assertions
  • Installation
  • Command Line
  • Hello, World!
  • Features
  • The Lauchpad
Cypress
  • Architecture
  • Pros and Cons
  • Tool set and extensions
  • Configuration
  • First project and anatomy
  • Organize
  • Writing test
  • E2E vs Component tests
  • API by Examples
  • Running test
    • Headless and with UI
    • Specific browser(s)
    • Specific test(s)
    • Parallel
  • Locating Elements
    • Vs jQuery
    • Various ways
    • Filtering
    • Command chain
    • Handing Promise
    • Handling lists
  • Getting state of DOM
    • Text, attributes, subtree
  • Assertions
    • Implicit vs explicit
    • Cypress way vs Mocha way
    • Timeout
    • And
    • Or
  • Manipulating Elements
  • Check and actions
  • Handling mouse, keyboard
More
  • Variables and closures
  • Aliases
  • Context
  • Fixture
  • Debugging
    • Tracing
    • Using dev tools
    • Using debugger
  • Reporting
  • Matching Text using RegEx
  • Waiting
  • Forms and Tables
  • File upload and download
  • Handing alerts
  • Windows, Frames, Dialogs
  • Browser Window
  • Viewports
  • Hooks
  • Events
  • Parameterization
  • Data Driven Tests
    • Hard-coded
    • Csv
    • Other
  • Keyword (Table) Driven Tests using aliases
  • Guidelines for Skeleton framework
  • Page Objects Vs Actions
  • Test Cases Guidelines
More
  • Component tests
    • Config
  • Bundled libs
  • Custom assertions
  • Record and playback
  • More configuration
  • Retries
  • Handling server
  • Authentication
  • Handling Cookies
  • Session and local storage
  • Injecting javascript
  • Screenshots & video
  • Isolation
  • Mocking
    • Clock
    • Network requests
    • Spying
    • Stubing
  • Conditional testing
  • Visual testing
  • Api testing
  • Introduction to Cypress Cloud
  • CI/CD integration
  • Web security
  • Best practices
  • Extending Cypress
  • Vs Selenium
  • Intro to Cucumber and Gherkin
Exclusions

SDLC, Advanced protocol details, Advanced distributed testing, Advanced language

Anything not mentioned in Topics

Software Requirements

Latest Visual Studio Code
Node LTS with npm and yarn
Modern browser(s) like Chrome, Edge, Firefox

Internet Requirements

Good unrestricted internet connection is required.

Hardware Requirements

Laptop capable to run MS Office

Classroom Requirements

Projector with HDMI, White Board, Markers with Eraser

Online Requirements

Appropriate meeting software e.g. Zoom, MS Teams Please make sure that camera, speaker and mic are working

If you have any query, please contact now.