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:
Trainer:
Chinmay
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