Selenium is one of the most popular automation testing tool used in industry to test different web applications, but is certainly not limited to just that, Boring web-based administration tasks can also be automated with Selenium. Selenium WebDriver is the one to create robust, browser-based regression automation suites and tests scripts scaled across many environments.
What will I learn? During and after completing this course you will be able to
Understand what automation mean? When to use it?
Set selenium Webdriver, Grid, write test scripts along with different frameworks.
Use selenium with Maven, Jenkins, and Git for Continuous Integration and Delivery.
Manage any web element with different events like click and context click, get and set, drag and drop, ....
Use Selenium with different frameworks like Keyword, Data driven, Page Object Modeling
Use text file, excel file, database for any driving test
You will be able to apply Test driven and Behavioural driven test using Cucumber
Please check the curriculum for more information..
Audience and Requirements:
QA, BA and anyone who is interested to know or use Selenium for Automation Testing.
Needs prior knowledge about software testing fundamentals. Look “Fundamentals of Software Testing” from our portal.
Training Highlights:
Mentorship will be available through training and after training
You will be working on functional automation on different projects
You will practise on interview questions and secession from day one
Outline
Introduction to Automation Testing
Automation vs Manual testing
Advantage and disadvantage of automation testing
Metrics for automation testing
Technical behaviour of the project
Complexity of the project
Stability of the project
Test data Size
Application Size
Reusability if the script
Execution platforms of the project
Available tools for automation testing
Selenium Introduction
Selenium IDE
Selenium Webdriver
Selenium Grid
Setup Selenium Webdriver’ in Eclipse
Downloading Selenium Webdriver
Import webdriver to Eclipse
Running your first selenium test using java
Running Selenium WebDriver in Multi Browsers:
Firefox
Chrome
IE
Safari
HtmlUnitDriver
Selenium WebDriver Commands
Opening a URL using WebDriver
Managing a browser
Finding the title of webpage
Navigating forward, backward and refresh webpages pages
findElement by locators::
ID
Name
tagName
Classname
css locator
link text: partial and full link text
Xpath: absolute and relative Xpath
Working with input box: read, write and clear text
Clicking on an element
Reading attributes and css values( like color, font size) of an element
Managing alerts, frames and other windows
Selenium Waiting Elements:
Implicit wait
Explicit wait
Selenium Assertion and Validation
Selenium More on Elements
Operating on listbox/dropdown box and comboboxs
Operating on minutes, tables and Calendars
Operating on file upload and download
Action Controlling:
Performing Context/right click
Performing mouseover action
Performing drag and drop action
etc
Event Listener and Triggers
Onclick
On mouseover, ..
Inspecting Elements on Websites:
Using browser inspector
Using xPath, firePath and fireBugs
xPath helper
Special Tips:
Handling file upload and download in different ways
Automating to test all links
Checking logo and address position
Work with https and proxy authentication
Handling windows alerts using autoIT
Logging Using log4j
Introduction to logging
Download and import Log4j
Writing test cases with Log4j
Log4j manager
Log4j appenders
Log4j logger
Selenium Grid
Selenium Grid for Distributed Testing
Selenium Grid for client and server
Selenium Grid commands
Junit
Unit testing introduction
What is Unit testing
Unit testing coverage
Unit testing in Java
Junit introduction
What is Junit
Installing and configuring Junit with Eclipse
Defining test case in Junit
Running Junit test from Eclipse
Eclipse Junit perspective for reporting
JUnit complete example using Eclipse
Create a project in Eclipse
Create a java class to be tested
Create and run a JUnit test case
Using @Ignore annotation
Creating suite tests
Creating parameterized tests
Rules
Junit Annotations
After and AfterClass
Before and BeforeClass
Ignore
Test
Junit main Assertions
Assert. AssertEquals
AssertTrue and AssertFalse
Fail
AssertNull, AssertThat
AssertSame and AssertNotSame
Junit Assume methods
AssumeTrue, AssumeThat
AssumeNotNull, AssumeNoException
Junit naming conventions
Suffix “-test” to test classes
Using “should” inside method names
Suffix “Test” while Junit is in Maven
Junit Test Suite to execute multiple test classes
@RunWith(Suite.class)
@SuiteClasses annotation
Junit Test Runner to run multiple test cases together
junit.runner.JunitCore
junit.runner.Result
junit.runner.notification.Failure and success
Running Junit from command line
TestNG (Testing Next Generation)
Introduction to testNG
Installing and configuring testNG with Eclipse
TestNg tests:
TestNG test cases
TestNG test suite
TestNG annotations
@BeforeSuite, @AfterSuite
@BeforeTest, @AfterTest
@BeforeGroups, @AfterGroups
@BeforeClass, @AfterClass
@BeforeMethod, @AfterMethod
Possible parameters for above annotations
alwaysRun, enabled
dependsOnGroups, DependsOnMethods
groups, inheritGroups
@DataProvider of TestNG data driven testing
The ‘name’ parameter and ‘parallel’ parameter
@factory: TestNG test class generator
@Listener(value): a TestNG class listener
@Parameters(value): a way to pass value to a method
@Test: main test method:
Alwaysrun
dataProvider, dataProviderClass
dependsOnGroups, dependsOnMethods
description, enabled
expectedExceptionis
groups, invocationCount
invocationTimeOut
priority, timeOut
sucessPercentage
threadPoolSize
TestNG Reporter for high level reporting
TestNG XML file for test suite management
Running TestNG from eclipse, Ant and command line
Format of TestNG
Parallel threading
Using include tag
Working on package label, group label, class label
Working for parameterization
Common attributes of tags
Special Tricks on TestNG
TestNG data driven testing using parameterization and data from excel file
TestNG multi browser testing, multi threading, reporting
Test Framework Approaches
Keyword Driven Framework
Data Driven Framework
Page Object Modeling Frameworks
Page factory: implementation of POM
Hybrid Framework
Maven
Maven installation in Eclipse
Maven directory structure for development, testing and Target files
Maven Clean, Build and Site Life cycles and their phases
Maven POI.xml for configuration and management
Maven Dependency management
Maven Local, Central and Remote repositories
Maven Deployment
Cucumber
Test Driven Development(TDD)
Behavioural Driven Development (BDD)
Cucumber configuration with Maven and Eclipse
Cucumber Features file to write test cases
Cucumber Scenario: Given …. When ….. And…. Then… keywords
Cucumber generating step definition skeleton from features file
Cucumber Features file to write selenium test cases using the feature skeleton
Junit test runner to control features and step definition to run in one
@CucumerOptoins with Junit @runwith annotations
Cucumber Data Driven Testing
With parameterization
With Example keywords
With Data table
With Mapping Objects
Jenkin
Jenkin continuous integration and continuous deployment
Jenkin installation and configuration
Jenkin continuous deployment plugins with git, mailing, reporting, pipelining, ….
Jenkin with JDK configuration
Jenkin with maven configuration
Jenkin with Git configuration
Jenkin with Selenium WebDriver configuration for web testing
Jenkin Job Creation, Pre processing, Packaging, Post processing, Deployment and Reporting
Jenkin Continuous integration and pipelining
Jenkin job distribution from Parent Jenkin to Slave jenkin to other machines
ANT
Installation of ANT
Data types(set of services)
How to write build.xml
Assessment:
Scenario 1: Identify three main parts that should be automated from websites. Also define your automation strategy, which framework you want to apply and how to manage your data
Scenario 2: Write a Selenium script to select Jan 2018, from any calendar.
Scenario 3: Describe how to apply data driven testing in TestNG for login functionality. Write your code too
Scenario 4: Develop a Cucumber framework to automate login logout test with different credentials. The framework should take username, and password from a center.
Scenario 5: Write a Selenium framework that automates links of a webpage. Follow any approach you think is better.