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:

Trainer:

Ketan Jobnaputra

Course description

Python - Introduction

Introduction 

  • Installation instructions
  • Python Ecosystem
  • The interactive shell
  • PyCharm
  • sample programs

Managing Data

  • Strings
  • Numbers
  • Boolean
Operators

  • 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