Automation Testing Masterclass

Become an SDET by learning about Selenium, Cucumber, Junit, Docker and other technologies!

Last updated 2022-01-10 | 4.3

- Everything about automation testing.
- Automation testing using Selenium WebDriver.
- Usage of unit test libraries such as Junit and TestNG

What you'll learn

Everything about automation testing.
Automation testing using Selenium WebDriver.
Usage of unit test libraries such as Junit and TestNG
Making use of BDD through Cucumber.

* Requirements

* This course will be using JAVA. However. knowledge of any OOP language would be an advantage
* but not necessary
* since we cover the basics of Java in an entire section.

Description

This course covers everything you need to know about automation testing.

Starting by learning the basic concepts of Java, followed by learning how to test Web Applications using Selenium Webdriver, and then diving into the topic of unit testing, using Cucumber, TestNG and Junit. Following this video series should give you a very good understanding on what automation testing really means.

The objective of this course is to make you proficient in working with tools used by automation engineers. If your goal is to get a job as an automation engineer, this course would not just give you a solid preparation for the interview, but it will also provide the necessary knowledge in order to thrive at your new job.

The course has the following structure:

  • We learn Java together, as well as Object Oriented Programming principles. If you are already familiar with Java, you can skip this part.

  • We dive into the subject of design patterns, with the objective of learning how to manage complex, repeatable situations in our code. This will give us the expertise on how to design our code for scalable, memory efficient automation frameworks.

  • We then learn about Selenium, what it is and how to use it in testing Web Applications.

  • The last part concentrates on how to develop your own automation framework, using the newest technologies available for automation engineers.

By following this structure, as a beginner, you will be confident enough to apply for automation engineer jobs, having the knowledge of all the libraries we cover in this course. As a more experienced person, you will be ready to tackle topics such as creation of a new automation framework from scratch, using the design principles and the full potential of the technologies covered here.

As a general recommendation, in order to speed up the learning process, study the corresponding code snippets attached to each video. Start experimenting with it, by removing/adding stuff and see what happens. This will not only consolidate your knowledge, but it will help you understand deeply what the studied concept is about. There's nothing better than stumbling upon issues, investigate and troubleshoot them yourself!

I wish you a pleasant journey throughout the videos, and I hope you appreciate the content!

Who this course is for:

  • Beginner and advanced automation testers, as well as tech-savvy people that wish to get an automation tester job.

Course content

6 sections • 146 lectures

Introduction Preview 02:49

This is an introductory video, which outlines what we are going to cover in this course.

Installing the JDK Preview 02:15

In this video, we are going to install the most important prerequisite, the Java Development Kit. 

Choosing an IDE Preview 12:10

In this video, we are going to decide which IDE to use in the rest of the tutorial.

Creating the First Java Project Preview 04:47

In this lecture, we are getting familiar with Intellij and Java, by creating our first 'Hello World' project.

Variables Preview 01:01

Before jumping into discussing about different data types, let's see what are variables in Java and how are those represented.

Primitive Data Types Preview 05:02

During this course we will see what are the primitive data types and what are their characteristics.

*********************************************

The code: https://bit.ly/2DVGWB1

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Reference Data Types Preview 03:38

During this course we will see what are the reference data types and how are these data types different than the primitives in Java.
*********************************************
The code: https://bit.ly/31Z1lNL
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Java Basics Assessment

This is an initial assessment on the concepts we learned so far.

Arrays Preview 03:57

This course aim is to introduce you the array data type in Java.
*********************************************
The code: https://bit.ly/3g4IB45
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Operators Preview 09:37

In this course we will discuss about the various operators that you can use in Java.

*********************************************

The code: https://bit.ly/3hdDQa9

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

If Statements Preview 04:34

If statements are fundamental for every programming language. Join me in this tutorial to learn more about how if statements work in Java.
*********************************************
The code: https://bit.ly/3iEyEvW
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

If Statements Coding Exercise

For Loops Preview 05:15

In this course let us analyze and discuss about the first repetitive control structure: the for loop.

*********************************************

The code: https://bit.ly/2Q1ZRwh

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

While Loops Preview 03:30

During this course we will discuss about another type of loop in Java, which is the "while loop".

*********************************************

The code: https://bit.ly/2E2aWLg

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Strings Preview 05:41

Let's see how we can work with fragments of text in Java in this new Strings tutorial!

*********************************************

The code: https://bit.ly/3141FeV

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Working with User Input Preview 04:35

Let's see how we can capture user input and what we can do with it!

*********************************************

The code: https://bit.ly/3kPBe47

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Switch Case Statements Preview 04:22

In this tutorial we are going to learn how to use Switch Case statements in Java.
*********************************************
The code: https://gist.github.com/LaurentiuGabriel/d3060957671a29b363feaf69e7f37bfa
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Objects and Classes Preview 07:37

In this tutorial we are going to dive into the Object Oriented nature of Java.
*********************************************
The code:
* Computer class: https://gist.github.com/LaurentiuGabriel/3391cde09d7f16a05488cb3849ce3e54
* App class: https://gist.github.com/LaurentiuGabriel/83fb16b5ab529768fc119bc22e31f8d3
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Methods Preview 05:29

In this tutorial we are going to discuss about how you can instruct your object to perform specific actions.

*********************************************

The code:

* Computer class: https://gist.github.com/LaurentiuGabriel/878caf2dae860d97f339539fdb0547f2

* App class: https://gist.github.com/LaurentiuGabriel/064e00f73820c7f5c1a4d654dbddf9dd

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Java Coding Exercise

Method Parameters Preview 03:35

Let's explore how to pass a parameter to one of the object's method.

*********************************************

The code:

* Computer class: https://gist.github.com/LaurentiuGabriel/7e80a737813b4a512d574270299ab9fb.

* App class: https://gist.github.com/LaurentiuGabriel/7c392d75374566e473d2779625a3a80d

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Constructors Preview 04:27

Let's find out what a constructor is and when should we use one!
*********************************************
The code:
* Computer class: https://gist.github.com/LaurentiuGabriel/a6a04613f0e820470400defd62e2074d
* App class: https://gist.github.com/LaurentiuGabriel/aac441ab33302fe859995bbb4c0ae0c2
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

First JAVA Practice Test

This is a test for assessing your understanding of Java concepts.

Getters and Setters Preview 09:44

In this tutorial, we are exploring how getters and setters work, to fulfill the requirements of encapsulation.

*********************************************

The code:

* Computer class: https://gist.github.com/LaurentiuGabriel/930e665c6e29ecfd21f051101780f040

*********************************************

Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.

*********************************************

Access Modifiers Preview 06:21

Let's see how access modifiers work and how we can use them for encapsulating the contents of our class!
*********************************************
The code:
* Computer class: https://gist.github.com/LaurentiuGabriel/a6a04613f0e820470400defd62e2074d
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Static Keyword Preview 04:04

In this tutorial, we will talk about the static keyword and its particularities.
*********************************************
The code:
* Computer class: https://gist.github.com/LaurentiuGabriel/a6a04613f0e820470400defd62e2074d
* App class: https://gist.github.com/LaurentiuGabriel/aac441ab33302fe859995bbb4c0ae0c2
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Abstract Classes Preview 10:55

Let's discuss about abstraction and why it is important in Java
*********************************************
The code:
* Car class: https://gist.github.com/LaurentiuGabriel/eda1ec41e9b83d275a9f5726d41adb02
* Vehicle class: https://gist.github.com/LaurentiuGabriel/c14bbd756ce6966819eec04218c7f122
* Motorcycle class: https://gist.github.com/LaurentiuGabriel/523104dc46317fb011c4225be4288e20
* App class: https://gist.github.com/LaurentiuGabriel/2de1ae48fb8624aa0f53adde09efaae2
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Final Keyword Preview 05:55

Let's discuss about when and how to use the final keyword in Java
*********************************************
The code:
* Car class: https://gist.github.com/LaurentiuGabriel/eda1ec41e9b83d275a9f5726d41adb02
* Vehicle class: https://gist.github.com/LaurentiuGabriel/c14bbd756ce6966819eec04218c7f122
* Motorcycle class:  https://gist.github.com/LaurentiuGabriel/523104dc46317fb011c4225be4288e20
* App class: https://gist.github.com/LaurentiuGabriel/2de1ae48fb8624aa0f53adde09efaae2
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Interfaces Preview 08:50

Let's see what the interfaces are in Java and when we should use them
*********************************************
The code:
* Computer class: https://gist.github.com/LaurentiuGabriel/bfa45fcd3ce70a4c1e390b24954f52a3
* Info interface: https://gist.github.com/LaurentiuGabriel/cf43ed239b25bb97b59af91d68143d0b
* App class: https://gist.github.com/LaurentiuGabriel/3ccc535d4b020cda67ede2b6c7801a47
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Polymorphism Preview 07:25

In this tutorial, we are going to take a look at one of the most important object oriented programming concepts, Polymorphism.
*********************************************
The code:
* Computer class: https://gist.github.com/LaurentiuGabriel/e35cf8c82f1956dc760857fa235eb5d5
* Laptop class: https://gist.github.com/LaurentiuGabriel/133e43e373e33e360231164a3d81f346
* Phone class: https://gist.github.com/LaurentiuGabriel/ed65acd3445e0ba281480dbe6c764ea5
* Tablet class: https://gist.github.com/LaurentiuGabriel/a54e97c665e03b6a2f10a48759ac1ca2
* App class: https://gist.github.com/LaurentiuGabriel/f0a43e70ffe24e894212787c8580954a
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Collections Preview 03:58

Let's start talking about Java collections framework!
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Generics and Lists Preview 15:44

Let's see what the lists are and how to use them!
*********************************************
The code:
* Laptop class: https://gist.github.com/LaurentiuGabriel/5913b08cab2fa97450166467f81fd73e
* App class: https://gist.github.com/LaurentiuGabriel/65fcc2814d961c303e7bf3dcd7768cd0
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Sets Preview 12:17

We will analyze sets and will see when to use a specific implementation of the Set interface.
*********************************************
The code:
* App class: https://gist.github.com/LaurentiuGabriel/e3bd4580a0c011d54f55b3bc66056421
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Maps Preview 09:04

Let's see how we can use the map data structure in Java
*********************************************
The code:
* App class: https://gist.github.com/LaurentiuGabriel/d0a26df3319d04cf3846bfda58fd61d3
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Equals Preview 11:41

Let's study how we can see if two newly-created objects are equal.
*********************************************
The code:
* Laptop class: https://gist.github.com/LaurentiuGabriel/591db9053ffcb4a4649f7f849f77893c
* App class: https://gist.github.com/LaurentiuGabriel/d9b2f5aab3d6fd78ac8d2bfcb9be9c55
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

The toString() Method Preview 04:56

Let's see how we can create the string representation for our class.
*********************************************
The code:
* Laptop class: https://bit.ly/3kb1Lcb
* App class: https://bit.ly/33kDqui
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Handling Exceptions Preview 12:43

Let's see how exceptions can be handled in Java
*********************************************
The code:
* App class: https://bit.ly/3iedK6G
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Working with Files Preview 08:41

Let's see how we can read and write files in Java
*********************************************
The code:
* App class: https://bit.ly/340NVDj
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Anonymous Inner Classes Preview 06:04

Let's explore how anonymous inner classes are defined and can be used!
*********************************************
The code:
* App class: https://bit.ly/349b32s
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Inner Classes Preview 05:02

Let's explorer the difference between anonymous and inner classes in this video.
*********************************************
The code:
* Main class: https://bit.ly/3l0xKfB
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Enums Preview 07:38

In this video we will going to look at the enum structure.
*********************************************
The code:
* App class: https://bit.ly/3g6OaiD
* ObjectOrientedProgrammingLanguages class: https://bit.ly/2Eemz1I
*********************************************
Java course for beginners is a series of courses that aims to teach you the required skills to start coding in Java. At the end of the course, you will be able to create Java programs, which will help you to get a job as a software engineer.
*********************************************

Introduction to the Design Patterns Preview 02:04

An introduction on the course objectives, and a description of the categories of design patterns that are studied in this section.

The Builder Pattern Problem Statement Preview 04:15

Learn why, how and when to use the builder pattern.

How to Implement the Builder Pattern Preview 04:58

Learn how the builder pattern can be implemented in Java.

Introduction to the Factory Pattern Preview 02:35

This is an introduction to the factory design pattern that shows the features, weaknesses and the UML diagram of this pattern.

Factory Pattern Demo Preview 03:19

This is a demo implementation of the factory pattern.

Introduction to the Abstract Factory Pattern Preview 06:13

This video provides an example of how you can implement the abstract factory pattern.

Introduction to the Singleton Pattern Preview 01:40

This video provides an overview of the Singleton design pattern.

Singleton Pattern Demo Preview 05:49

An example of implementing the Singleton pattern in Java.

Introduction to the Prototype Pattern Preview 01:50

This video provides an introduction to the Prototype design pattern.

Prototype Pattern Demo Preview 04:54

This video shows how the Prototype pattern can be implmeneting in Java code.

The Object Pool Pattern Preview 01:50

This video provides a short introduction over the Object Pool pattern.

Implementing the Object Pool Pattern Preview 07:26

Quiz about the Creational Patterns

A quiz that will test your knowledge of Creational Patterns

The Structural Patterns Preview 00:36

In this video, we are going to define what a structural pattern is, and we will list the structural patterns that will be covered by this series.

Introduction to the Adapter Pattern Preview 02:22

This is a high-level overview of the Adapter pattern.

Implementing the Adapter Pattern Preview 05:17

This is a potential idea for implementing the Adapter pattern. Make sure that you download the code and play with it to fully understand the concepts.

Introduction to the Bridge Pattern Preview 01:59

This video is about introducing the Bridge pattern.

Implementing the Bridge Pattern.mp4 Preview 02:34

This video shows an idea of how to implement the Bridge pattern in Java.

The Filter Pattern Preview 03:44

This video explains the easy concept of the Filter pattern, and provides an idea of how the implementation could look like in Java.

Introduction to the Composite Pattern Preview 01:32

This is a brief introduction to the Composite pattern.

Implementing the Composite Pattern Preview 02:03

In this video you are going to see a potential implementation for the Composite pattern.

Introduction to the Decorator Pattern Preview 01:32

This video introduces you to the concept of the Decorator.

Implementing the Decorator Pattern Preview 04:33

This video covers the available options for implementing a decorator in Java.

Introduction to the Facade Pattern Preview 01:03

This video provides an introduction to the Facade pattern.

Implementing the Facade Pattern Preview 03:00

How to implement a Facade in your code? This video will answer to this question.

Introduction to the Flyweight Pattern Preview 01:44

This video introduces you to the Flyweight pattern and its features.

Implementing the Flyweight Pattern Preview 05:32

This video shows you how to implement the Flyweight pattern in your Java code.

Introduction to the Proxy Pattern Preview 01:38

This video introduces you to the particularities of the Proxy pattern.

Implementing the Proxy Pattern Preview 03:00

Want to see how to implement the Proxy pattern in your Java code? This video will show you what you need to know. Additionally, you can download the source code used in this video.

Quiz about the Structural Patterns

A quiz that will test the knowledge you achieved about Structural Patterns.

The Behavioural Design Patterns Preview 00:29

This video shortly describes the design patterns under the behavioural patterns category, which will be described in depth in this module.

Introduction to the Chain of Responsibility Pattern Preview 01:15

This is an introductory video for the Chain of Responsibility pattern.

Implementing the Chain of Responsibility Pattern Preview 02:23

This is an implementation example of the CoR pattern, using Java.

Introduction to the Command Pattern Preview 00:56

This is an introduction to the Command design pattern.

Implementing the Command Pattern Preview 02:20

In this video you will find an example of implementation for the Command pattern.

Introduction to the Interpreter Pattern Preview 01:09

This is an introductory video for the concept of Interpreter pattern.

Implementing the Interpreter Pattern Preview 03:31

Curious on how to implement the Interpreter pattern in your Java code? This video will show you how to do just that.

Introduction to the Iterator Pattern Preview 01:07

This is an introduction to the Iterator design pattern.

Implementing the Iterator Pattern Preview 03:14

This video will show you how to implement the Iterator pattern using Java code.

Introduction to the Mediator Pattern Preview 01:23

This video will introduce you to the concept of Mediator pattern.

Implementing the Mediator Pattern Preview 03:48

This video will teach you how to implement the Mediator using Java code.

Introduction to the Memento Pattern Preview 01:15

This video is an introduction to the Memento design pattern.

Implementing the Memento Pattern Preview 03:27

In this video, you will learn how to implement the Memento pattern.

Introduction to the Observer Pattern Preview 01:24

Watch this video to learn about the Observer pattern.

Implementing the Observer Pattern Preview 05:07

This is a demo on how to implement the Observer Pattern in Java.

Introduction to the State Pattern Preview 01:04

This introductory video describes you the concept of State pattern.

Implementing the State Pattern Preview 03:39

This video shows how to implement the State pattern in your code.

Introduction to the Strategy Pattern Preview 01:03

This video servers as an introduction to the Strategy pattern.

Implementing the Strategy Pattern Preview 03:08

This video proposes an implementation for the Strategy pattern.

Introduction to the Template Method Pattern Preview 01:11

This is an introduction to the Template Method pattern.

Implementing the Template Method Pattern Preview 03:13

This video shows you how to implement the Template Method pattern.

Introduction to the Visitor Pattern Preview 01:09

This is an introductory video for the Visitor pattern.

Implementing the Visitor Pattern Preview 05:17

In this video you will see an idea for implementing the Visitor pattern.

Quiz about the Behavioural Patterns

Test your knowledge of behavioural patterns with this quiz!

Getting Started with Selenium Webdriver Preview 16:34

In this video we are going to learn how to:

  • Set up Selenium by downloading it through Maven.

  • Configure the Selenium webdriver.

  • Navigating to a website using Selenium.

  • Close the Selenium instance at the end of the script to prevent memory leaks.

Locators Preview 14:02

In this video you will learn everything you need to know about Selenium locators.

Getting Text from a WebPage Preview 09:52

In this video you are going to see how you can extract text from a webpage, using Selenium Webdriver getText() method.

Clicking on a WebPage Preview 08:13

In this video, you are going to learn how to send a click to a webelement, using Selenium Webdriver.

Send Text to a WebPage Preview 07:22

In this video you are going to learn how to write text on a website using Selenium Webdriver.

Working with Tables Preview 13:34

In this video, you are going to learn how to manage tables in web applications, using Selenium Webdriver.

Types of Waits Preview 09:41

In this video, we are going to discuss about what types of waits you can use in Selenium Webdriver.

Handling Exceptions Preview 02:36

In this video, we are going to touch upon the topic of exceptions in Selenium. Attached you can find a document listing the most common exceptions, together with an explanation on how to avoid/resolve some of them.

Using the JavascriptExecutor Preview 12:28

In this video, we are going to learn how we can use the JavascriptExecutor interface, in order to force the browser to execute Javascript code for us.

Alerts in Selenium Preview 12:33

In this video, you are going to learn how to handle the different types of alerts using Selenium Webdriver. The code and the website used are attached in the zip file.

Working with iFrames Preview 11:09

In this video, you are going to learn how to handle iframes using Selenium.

Bonus: How to Handle Select in Selenium WebDriver Preview 04:52

In this bonus video, you will learn how to handle Select html elements using Selenium Webdriver.

Bonus: Performing Special Actions Preview 09:44

The Actions class in Selenium Webdriver enables you to perform complex actions, such as dragging and dropping an element over another element, context click, dragging web elements accross the webpage, etc. In this video, you are going to see how to use this class to perform those actions.

Selenium Quiz

This quiz will evaluate your knowledge of Selenium Webdriver.

Selenium Assignment

This is an assignment for assessing your knowledge of Selenium Webdriver.

Introduction Preview 03:49

This is an introduction on what we are going to cover in this section.

Page Object Model Preview 08:14

The Page Object Model is one of the most used methodologies for structuring your framework's code. It's concentrated around the concept of the webpage, and it facilitates a better maintenance of your automation framework.


You can find an article on this as a supplement to the video: https://medium.com/@laurentiu.raducu/page-object-model-an-introduction-50ea114ed2c0

Managing the Framework's Driver Preview 29:22

We are going to use Strategy and Singleton pattern to manage our webdriver in our future automation framework.

Getting Values Dynamically from Files Preview 12:53

In this video, we see how we can take variable values, like test data or the name of the webdriver, dynamically from a file.

Small Refactorization of the Code Preview 10:26

In this video we are going to improve the existing codebase by taking the following actions:

  • Downloading all the webdrivers.

  • Improving the packaging of the framework.

  • Hide all the string constants into a single class.

Adding the Website's Pages - Part 1 Preview 11:46

This is the first part of the videos regarding creating the webpages in our new automation framework. The source code is going to be attached on the third video of this miniseries. 

Adding the Website's Pages - Part 2 Preview 17:37

This is the second part of the videos regarding creating the webpages in our new automation framework. The source code is going to be attached on the third video of this miniseries. 

Adding the Website's Pages - Part 3 Preview 26:37

This is the second part of the videos regarding creating the webpages in our new automation framework. The source code has been attached to this video.

Adding Password Encoding Capability Preview 06:46

In this video we are going to add password encoding capabilities to our framework, in order to hide our exposed passwords from the framework's files.

Attached to this video there's a Powershell script with which you can encode your password in Base64, in order to prevent using online tools that may save your requests and expose your passwords.

Adding Test Cases in Junit - Part 1 Preview 17:04

In this video we are taking the tests from the Main method into our new Junit class. The source code will be attached to the last video from this miniseries.

Adding Test Cases in Junit - Part 2 Preview 07:53

This is the second video where we take the tests from the Main method into our new Junit class. The source code will be attached to the last video from this miniseries.

Adding Test Cases in Junit - Part 3 Preview 07:33

This is the last video where we take the tests from the Main method into our new Junit class. Attached to this video is the source code used during these three videos.

Assertions in Junit Preview 07:33

The best way to compare two objects together in unit tests is through Assertions. In this video, you can see how to use them and what you can do with this powerful feature in Junit.

Bonus: AssertThat() Explained Preview 04:52

This is a video on Matchers and how to use them in the context of AssertThat() methods in Junit. This feature is quite useful for creating custom, flexible assertions in your unit tests.

Using Parameterized Tests in Junit Preview 17:24

Parameterized Tests are test methods that take dynamic arguments directly from a data structure, defined with @Parameterized annotation in your Junit class. This feature is useful whenever you have a test that needs to be run with different values.

Instead of duplicating the test case for each set of parameters, you can use this feature and have your test created only once, but executed for each set of parameters.

JUnit vs TestNG -Which one to pick? Preview 08:34

In this video, we are going to learn the differences between the two unit tests libraries.

Capturing Screenshots with Selenium Webdriver Preview 15:09

In this video, we are going to learn how to take screenshots using Selenium Webdriver, so that we can troubleshoot easier whenever a step fails.

Adding SpingFramework Support Preview 15:35

In order to start writing our first BDD test cases, we would need SpringFramework in order to delegate some of the tasks of creating, managing or cleaning some objects. Join me to see how we can add it to our automation framework.

Adding BDD Tests with Cucumber - Part 1 Preview 19:23

In this video, we start to add the BDD tests using Cucumber, finalizing SpringFramework integration too.

Adding BDD Tests with Cucumber - Part 2 Preview 08:13

This is the second part of the section for adding BDD tests using Cucumber. The source code containing all BDD tests that were added so far, has been attached to this video.

Adding Reporting Capabilities Using ExtentReports Preview 18:35

Reporting your test results is an essential part in automation testing. In this video, we see how to add ExtentReports library for reporting purposes, in our automation script.

Adding Logging Capabilities Using Log4j Preview 12:14

Logs are important for troubleshooting issues that may appear in your automation scripts. In this video, we are learning how to add logging capability using Log4j library.

Adding Full Logging Capabilities Assignment Preview 00:27

This is an assignment, not an article :).

Adding the Code to GIT Preview 20:51

In this video, we are uploading the code of the framework to GIT. GIT is a source control software that manages changes done by teams of developers, on the same software source.

We are using GIT Bash for this demonstration, however you can install any software, if you prefer a more visual approach rather than the command line interface.

A comprehensive guide on the most used git commands can be found here: https://education.github.com/git-cheat-sheet-education.pdf.

Launching Our Own GitLab Runner for Executing the Pipelines Preview 09:17

In this video, we are launching our own gitlab runner instance on our computer, which is the first step in developing the pipeline for our automation framework.

Running Tests in a GitLab Pipeline Preview 19:34

In this video, we are expanding the concepts of CI/CD in testing and we are defining our own pipeline in GitLab. In our pipeline, we are going to run the tests automatically, whenever a new push is performed into our master branch. This is helpful, so that we know that the existing tests are not failing due to a potential error in the newly-pushed code.

As a bonus, we are leveraging the GitLab Pages functionality, where we are going to upload our test report.

Link to the repo: https://gitlab.com/LaurentiuGabriel/automation-framework/

Link to the GitLab Pages URL: https://laurentiugabriel.gitlab.io/automation-framework/

Running Tests in Parallel Using Selenium Grid Preview 25:43

In this video we are exploring ways how to run tests in parallel.  The best article that describes the option for cucumber is right in the official documentation of Cucumber:

https://cucumber.io/docs/guides/parallel-execution/

In the video, we are using TestNG to run the tests, using the functionality of Selenium Grid to launch multiple Chromedrivers in parallel.

Running the Automated Tests Using Docker Containers in AWS Cloud Preview 08:20

In this video, we are running our automated test suit using a docker container running selenium, on a AWS Cloud machine.

Below you can find some useful links for replicating the setup on your resources:

Official documentation for Docker Installation: https://docs.docker.com/engine/install/

Selenium github page, explaining how to instantiate the docker container running Selenium Standalone: https://github.com/SeleniumHQ/docker-selenium

For this demonstration, a VM has been created in Amazon EC2 free tier. For more information on how to get a machine running on the same tier, please follow this link: https://aws.amazon.com/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc.

Introduction to API Testing Preview 03:09

In this video, we define the concepts that we are going to use throughout this bonus section.

Introduction to HTTP Preview 04:41

In this video we learn what HTTP is and why it is relevant to know its concepts for an automation tester.

Analyzing HTTP Requests in the Browser Preview 12:22

Here we see how we can retrieve the list of HTTP requests when visiting a website, directly from your browser.

Working with Postman Preview 12:37

Postman is a useful tool for performing HTTP requests. This video shows you how to login in the Online Store web application used in the previous section.

Types of API's Preview 04:11

In this video, we learn the differences between the various types of API's and how to approach each of them when it comes to automation testing.

Introduction to Swagger and API Documentation Preview 07:17

This video shows how the API under test looks like through Swagger documentation.

Automating REST Calls Using RestAssured Preview 30:16

This video introduces the RestAssured library, used to automate REST API's.

Automating API Calls Using Core Java Preview 16:53

You can achieve the same result without using a specialized API library, like RestAssured, through plain old Java objects. In this video, we are going to use HTTPUrlConnection object, which is part of standard Java API, for calling an API.

P.S.: attached code does not contain APPID or APPKEY parameters. You can obtain those by requesting them at: https://developer.edamam.com/.