Test Automation with Python, Selenium, Git, and Jenkins
Selenium is most widely used test automation tool for web applications. Test Automation has a key role in overall DevOps implementation.
Industry now demands that QA/testers have good understanding of programming. The role in demand now is SDET (Software Development Engineer in Test).
There are no pre-requisite for this course. We start from very basics of programming and make you learn core Python. We will also cover all aspects of Selenium 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 the organizations. We will teach you how to create pipeline in Jenkins.
At the end, we will give you a project which you need to complete with automation framework.
All our trainers are having minimum 10 years of experience in test automation. Click here to register for a demo session and 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 life time.
Who can attend
Engineering graduates | Working professionals – manual Testers | Developers
course outline
Core Python
Automation Basics
Introduction to Selenium
Selenium WebDriver
PyTest
Design Frameworks
Test Automation Frameworks
Git/GitHub
Jenkins
Demo Video:
Course description
Python - Introduction
- Installation instructions
- Python Ecosystem
- The interactive shell
- PyCharm
- sample programs
Managing Data
- Strings
- Numbers
- Boolean
- Assignment
- Boolean
- Comparison
- Unary and bitwise
- String operators
- In operator
Conditional Statements
- If else
- While
- For
Python - Functions in Python
Functions in Python
Some sample functions
Importance of functions
Arguments to a function
*args,**kwargs
Function decorators
Lambdas
Data structures
Lists
Tuples
Dictionary
Sets
Looping through data structures
Python - Exception Handling
Exception Handling
Importance of writing good code with logging and exception handling
Raising exceptions
User defined exceptions
Handling exceptions
Logging information for debugging purposes
Modules
What is a module?
Creating modules
Third party modules
Installing third party modules
Using multiple modules in your code
Design considerations
Python - Packages
Packages
Design considerations
Introduction to packages
Different ways to group applications/modules into packages
Packages
Introduction to OOP
Constructors/initializers
Objects
Inner classes
Interfaces
Abstract classes
Properties
duck_typing
Selenium - Automation Basics
Automation Basics
Fundamentals of test automation
ROI in Automation
Basics of automation framework
Introduction to various tools and comparison with Selenium
What is DevOps?
Introduction to Selenium
What is Selenium and how it is used in the industry
Features of Selenium
Difference between Selenium and QTP
Installation of Selenium and supporting tools/APIs
Insight to HTML and web applications architecture
Introduction to PyTest And PyCharm
How Selenium helps achieve DevOps
Selenium - PyCharm IDE
- How to build test project
- frequently use menu items
- Use of Settings
- Use of shortcuts and error correction
- Installation of other packages
- Other key features required to work with PyCharm for automation using Selenium
Selenium - WebDriver - Basics
- Introduction to WebDriver architecture
- Comparison with RC
- WebDriver configuration with PyCharm
- Opening and closing browser
- Introduction to PyTest
- Writing Simple Tests
- Chrome browser developer tools to locate elements
- Locating Techniques – with extensive practice on XPath and CSS selectors
Controlling Browsers
Navigation
Page Title, URL and Page source
Cookie management
Size and position
Navigating to different windows, frames and alerts
Controlling elements
WebElement commands
Handling textbox, links, buttons, dropdowns, multiselect, radiobuttons and checkboxes
- Handling webtables
Browser Synchronization/Waits in Selenium
time.sleep() – why should not be used
Implicit Wait
- Explicit Wait
Complex Actions
Mouse Hover
Context/Right click
Double Click
Drag and Drop
Building complex actions
Page Object Design Pattern (PODP)
What is design pattern
Need for PODP – reusability and maintainability
- Test speaks only domain
PyTest Framework
Introduction to PyTest Framework
Installation of PyTest
PyTest Fixtures
Running Test Suite with PyTest
Test Reports
SRP Principle (Single Responsibility Principle)
technique of naming
FIRST Principle of writing test cases
Verification and Assertion
Groups and Parameters
Parallel Execution (DevOps context)
Selenium Grid
What and When of Grid
What is Hub and Node
Designing test scripts for Grid
DesiredCapabilities and RemoteWebDriver
Creating grid of 10-15 machines/VMs/containers
Running test scripts on Grid (parallel execution on at least 10 to 15 machines during training)
Additional Topics on Test Automation Framework
Build automation
Logging
Listeners
BDD-Behave – Writing Selenium Tests
Handling Browser Profiles
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
Jenkins
What is CI and CD
Manage Configuration
Setup Build Jobs
Plugins
Scheduling Builds (Push/Pull)
Configuring a Jenkins Pipeline for test execution
BDD/Behave
What is BDD/TDD
BDD with Agile
Feature File – Gherkin
Step Definitions
Writing Tests
Executing tests using Behave
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 and Listeners
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
Test Automation Project
Automate an e-commerce application
Make decisions on frameworks based on requirements
Design Test Data Management Strategy
Design logging and listening strategy
Design exception handling and reporting
Design page objects for store and admin panel
Write tests and execute them using PyTest
Make scripts accept run-time parameters instead of hardcoding
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