• Post category:StudyBullet-5
  • Reading time:12 mins read


What you will learn

Able to build a test framework with the Intellij IDE using Java, Selenium WebDriver, TestNG, Maven and Apache Log4j2.

The skill to automate a web application according to the Page Object Model (POM) design pattern.

Enough knowledge of all the mentioned libraries to be a proficient test automation engineer!

HTML knowledge for boosting your automation skills

Some handy Java knowledge for improving your automation and implementing them in the test framework

See the description part for a complete overview!

Description

In this course i will teach you to build a test framework with IntelliJ using Java, Selenium WebDriver, TestNG, Maven and Apache Log4j2.

The course is divided in to two parts.
The first part is the lessons part. In this part I will teach you the basics of selenium, testNG and the foundations of building our framework.
Once the foundations are set we can carry on to the second part.
In the second part we will build a test framework based on automating a real website.

The framework will be built according to the Page Object Model (POM) design pattern. The POM is a concept that is used a lot to automate multiple page applications. Here we segregate the automation from our tests. This makes the framework more maintainable. Your tests will also be easier to read and will be more script based. Even a collegue with less programming experience can create some tests in this framwork.

After this course you will be able to create a whole framework for automated testing of webapplications with all its necessary components.
I will also keep updating the course with new subjects in the future.

Here is a more detailed overview of the subjects i will teach:


Get Instant Notification of New Courses on our Telegram channel.


– Enough Java knowledge to start automating
– Setting up the software needed
– Basic methods of Selenium WebDriver
– Some handy ChromeOptions
– HTML knowledge for automating web applications
– Finding elements with xpath and css
– Handle basic html elements such as dropdowns, inputfields, checkboxes,
  frames, alerts, tables, lists, date pickers, switching windows, etc
– Creating handy tools with java such as a dynamic date formatter for your test cases
– Creating enums for static dropdowns and implementing them in the framework
– Integrating Maven after learning basics
– How to build a Page Object Model Designed framework
– Usage of different Assertions
– Difference between hard and soft assertions
– Implementing smart wait’s
– Setup global properties file for usernames and passwords etc
– Take screenshots
– Using the JavaScript Executor
– Controlling test cases with the testNG xml
– TestNG Parameterization
– DataProvidor annotation
– Implement TestNG listeners
– Executing tests from the command line so we can link the project to a tool
  for CI/CD (Continuous Integration / Continuous Delivery)
– Setting up log4j2 for logging with an xml and a properties file.
– Create new logging files after each test run
– Integrating all of above components in a working framework while teaching

English
language

Content

Introduction

Introduction to the course!
Typing code together!
Feedback and help

Setup the software

What software do we need?
Install JDK on Windows
Install IntelliJ on Windows
Install Google Chrome on Windows
Install JDK on Linux
Install IntelliJ on Linux
Install Google Chrome on Linux
Install JDK on Mac
Install IntelliJ on Mac
Install Google Chrome on Mac
Configure IntelliJ options

Last steps before we start coding!

Introduction to section 3
Introduction to Selenium WebDriver!
Introduction to TestNG!
Download the Selenium WebDriver language bindings!
Download Chrome Driver
Download TestNG jar file!

Creating the IntelliJ Project and making it ready to use

Creating the IntelliJ project
Organize the structure of the project part one – the maven layout
Organize the structure of the project part two – the course layout

Selenium and TestNG knowledge

Add the Selenium WebDriver language bindings & TestNG jar file to the project
Lesson01a – Setup Chrome Driver
Lesson01b – Setup other Drivers
Lesson02 – Basic methods of WebDriver
Lesson03a – Bigger window with driver
Lesson03b – Bigger window with Chrome Options
Lesson04a – @Test annotation
Lesson04b – @Before and @After Test/Method annotations
Lesson04c – More @Before and After annotations
Lesson05 – Creating a manager
ERROR while executing tests – An advertisement is poping up!
Lesson05 – Quick example – using the driver from the Manager in other classes
Lesson 06a – Intro to Selenium Locators and the Document Object Model(DOM)
Lesson06a – findElement(s) method and overview of locators – part01
Lesson06a – findElement(s) method and overview of locators – part02
Lesson06b – Master the Xpath syntax – part01
Lesson06b – Master the Xpath syntax – part02
Lesson06c – Master the CssSelector syntax – part01
Lesson06c – Master the CssSelector syntax – part 2
Lesson06d – Exercise01 – Finding elements
Lesson06d – Exercise01 – Finding elements – solution video
Lesson07a – First steps of automation with clicks
Lesson07b – Exercise02 – Clicks
Lesson07b – Exercise02 – Clicks – solution video
Lesson08a – Simulate typing with sendKeys method
Lesson08b – Exercise03 – Simulate typing with sendKeys method
Lesson08b – Exercise03 – Simulate typing with sendKeys method – solution video
Lesson09a – getText method
Lesson09b – getAttribute method
Lesson10a – Assertions – Assert.fail
Lesson10b – Assertions – Assert.assertEquals
Lesson10c – Assertions – Assert.assertTrue and Assert.assertFalse
Lesson10d – Assertions- HardAsserts vs SoftAsserts
Lesson11a – Static dropdowns
Lesson11b – Exercise04 – Static dropdowns
Lesson11b – Exercise04 – Static dropdowns – solution video
Lesson12 – Exercise05 – Simple form
Lesson12 – Exercise05 – Simple form – solution video
Lesson13 – Javascript alerts
Lesson14 – Frames
Lesson15 – Switching windows
Lesson 16 – Smart waits
Lesson 17 – Handle a List<> of elements
Lesson 18 – Auto suggestive dropdowns
Lesson 19 – JavaScript Executor
Lesson 20a – Intro to the Page Object Model design pattern
Lesson 20a – The Factory class – Find web elements and initializing them
Lesson 20b – The Constants class – Creating constants for the locator values
Lesson 20c – The Page class – Creating methods for the web elements
Lesson 20d – The Test class – Creating our test script
Lesson20e – Just some extra info – implement POM into single page applications
Lesson 21 – Creating enums for static dropdowns and implementing them

Converting to a Maven project!

What is Maven in short?
Install Maven on Windows
Install Maven on Linux and Mac
Convert the project to a Maven project
Add Selenium & TestNg dependencies and the Maven compiler plugin to the pom.xml

Framework – seleniumeasy!

Introduction and finish the project structure!
Create a Manager class and a smart WebDriver!
Optional: changing the setup of the WebDriver in the lessons part
Continue with the Manager, essential components before we start automating!
Start automating the home page!
Create our own method for clicking before we continue! (Very important)
Add some basic tests to the framework!
Add the input form submit page to our framework!
Create our own method for sending keys!
Contol your test cases with testNG.xml
Sending parameters with testNG.xml file
Using the @DataProvidor annotation to provide data to test cases
Executing the testng.xml file from the console
Global properties file
Taking screenshots
Adding switch windows as a tool
Implementing listeners
Start logging with log4j2 – printing the logging and logging levels
Configurate log4j2 with a properties file
Add some logging in the framework
Optional: Configurate log4j2 with an XML