• Post category:StudyBullet-7
  • Reading time:11 mins read


Become an automation expert by learning Java, Selenium, Cucumber, Junit, Docker and other technologies!

What you will 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.

Make use CI/CD pipelines with Gitlab in running your tests.

Become a full stack Software Development Engineer in Test

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:


Get Instant Notification of New Courses on our Telegram channel.


  • 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!

English
language

Content

Introduction

Introduction

BONUS: Java for Beginners

Installing the JDK
Choosing an IDE
Primitive Data Types
Reference Data Types
Arrays
Operators
If Statements
For Loops
While Loops
Strings
Working with User Input
Switch Case Statements
Objects and Classes
Methods
Method Parameters
Constructors
Getters and Setters
Access Modifiers
Static Keyword
Abstract Classes
Final Keyword
Interfaces
Polymorphism
Collections
Generics and Lists
Sets
Maps
Equals
The toString() Method
Handling Exceptions
Working with Files
Anonymous Inner Classes
Inner Classes
Enums

BONUS: Design Patterns in Java

Introduction to the Design Patterns
The Builder Pattern Problem Statement
How to Implement the Builder Pattern
Introduction to the Factory Pattern
Factory Pattern Demo
Introduction to the Abstract Factory Pattern
Introduction to the Singleton Pattern
Singleton Pattern Demo
Introduction to the Prototype Pattern
Prototype Pattern Demo
The Object Pool Pattern
Implementing the Object Pool Pattern
Quiz about the Creational Patterns
The Structural Patterns
Introduction to the Adapter Pattern
Implementing the Adapter Pattern
Introduction to the Bridge Pattern
Implementing the Bridge Pattern.mp4
The Filter Pattern
Introduction to the Composite Pattern
Implementing the Composite Pattern
Introduction to the Decorator Pattern
Implementing the Decorator Pattern
Introduction to the Facade Pattern
Implementing the Facade Pattern
Introduction to the Flyweight Pattern
Implementing the Flyweight Pattern
Introduction to the Proxy Pattern
Implementing the Proxy Pattern
Quiz about the Structural Patterns
The Behavioural Design Patterns
Introduction to the Chain of Responsibility Pattern
Implementing the Chain of Responsibility Pattern
Introduction to the Command Pattern
Implementing the Command Pattern
Introduction to the Interpreter Pattern
Implementing the Interpreter Pattern
Introduction to the Iterator Pattern
Implementing the Iterator Pattern
Introduction to the Mediator Pattern
Implementing the Mediator Pattern
Introduction to the Memento Pattern
Implementing the Memento Pattern
Introduction to the Observer Pattern
Implementing the Observer Pattern
Introduction to the State Pattern
Implementing the State Pattern
Introduction to the Strategy Pattern
Implementing the Strategy Pattern
Introduction to the Template Method Pattern
Implementing the Template Method Pattern
Introduction to the Visitor Pattern
Implementing the Visitor Pattern
Quiz about the Behavioural Patterns

Learning about Selenium Webdriver

Getting Started with Selenium Webdriver
Locators
Getting Text from a WebPage
Clicking on a WebPage
Send Text to a WebPage
Working with Tables
Types of Waits
Handling Exceptions
Using the JavascriptExecutor
Alerts in Selenium
Working with iFrames
Bonus: How to Handle Select in Selenium WebDriver
Bonus: Performing Special Actions
Selenium Quiz

Designing a New Automation Framework

Introduction
Page Object Model
Managing the Framework’s Driver
Getting Values Dynamically from Files
Small Refactorization of the Code
Adding the Website’s Pages – Part 1
Adding the Website’s Pages – Part 2
Adding the Website’s Pages – Part 3
Adding Password Encoding Capability
Adding Test Cases in Junit – Part 1
Adding Test Cases in Junit – Part 2
Adding Test Cases in Junit – Part 3
Assertions in Junit
Bonus: AssertThat() Explained
Using Parameterized Tests in Junit
JUnit vs TestNG -Which one to pick?
Capturing Screenshots with Selenium Webdriver
Adding SpingFramework Support
Adding BDD Tests with Cucumber – Part 1
Adding BDD Tests with Cucumber – Part 2
Adding Reporting Capabilities Using ExtentReports
Adding Logging Capabilities Using Log4j
Adding Full Logging Capabilities Assignment
Adding the Code to GIT
Launching Our Own GitLab Runner for Executing the Pipelines
Running Tests in a GitLab Pipeline
Running Tests in Parallel Using Selenium Grid
Running the Automated Tests Using Docker Containers in AWS Cloud