Test Automation with Selenium, Java, 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 Java. 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 Java
Automation Basics
Introduction to selenium
Selenium WebDriver
TestNG
Maven
Design Frameworks
Test Automation Frameworks
Git/GitHub
Jenkins
Demo Video:
Trainer:
Ketan Jobnaputra
Course description
Java
- Introduction to Java
- How to install Java
- Basics of using Eclipse IDE
- Primitive Data types
- Operators
- String Methods
- Arrays
- Control Flows
- Objects and classes
- Static Classes and Methods
- Abstract Classes and Methods
- Inheritance
- interfaces
- Exception Handling
- Collections
- Annotations
- File Handling
- DB connectivity
- Listeners
- Logging
- Properties files
- All the above concepts with hand-on examples in the class
Selenium
Automation Basics
- Fundamentals of test automation
- ROI in Automation
- Basics of automation framework
Introduction to selenium
- Story/History of Selenium
- What is Selenium and how it is used in the industry
- Features of Selenium
- Difference between Selenium and UFT
- DevOps and Test Automation
Selenium Components
- Selenium WebDriver
- Selenium GriD
Selenium WebDriver – Basics
- Introduction to WebDriver architecture
- Comparison with RC
- WebDriver configuration with Eclipse
- Opening and closing browser
- Writing Simple Tests
- Setup TestNG Eclipse plugin
- Annotations in TestNG
- Writing basic TestNG tests
- Assertions
- 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
- Mouse movements and keyboard events and uploading files
Browser Synchronization/Waits in Selenium
- Thread.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
TestNG
- All Annotations in TestNG
- TestNG configuration
- Organize your tests in triple A (AAA) framework
- FIRST Principle of writing test cases
- SRP Principle (Single Responsibility Principle)
- Attributes of @Test
- Groups and Parameters
- Data Driven Test(DDT) Using TestNG
- Creating Suites
- Reports using TestNG and ReportNG
- 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)
- Integration with CI-Key(DevOps)
Additional Topics on Test Automation Framework
- Build automation using Maven
- Logging
- Listeners
- BDD-Cucumber – 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/Cucumber
- What is BDD/TDD
- BDD with Agile
- Feature File – Gherkin
- Step Definitions
- Writing Tests
- Executing tests using Cucumber
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 TestNG
- Make scripts accept run-time parameters instead of hardcoding
- Create utility package to re-use (modular framework)
- Build Tests using Maven
- 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