Course Category: Software Testing
Course Duration: 4 Days
Hours: 28 Contact Hours
Course Overview
This workshop coaches’ participants to automate end-to-end web testing using Cypress. Cypress is widely used browser automation toolset to create tests for modern web applications, debug them, and automatically run them in your continuous integration builds.
Workshop commences with key concepts 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 detail including tools like CLI and Cypress app with Cypress studio, libs like underscore, and Introduction to parallel testing and BDD tests. The workshop has extensive hands-on and demos and many learnings by doing.
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.
Software Requirements
Latest Visual Studio Code
Node LTS with npm and yarn
Modern browser(s) like Chrome, Edge, Firefox
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 Launchpad
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