Test Automation Framework [ Spring Boot + Selenium + BDD ]

Spring Boot Test Automation: Enhanced Framework with Selenium - Unleash the Power!

4.61 (818 reviews)
Udemy
platform
English
language
Software Testing
category
instructor
Test Automation Framework [ Spring Boot + Selenium + BDD ]
6,135
students
10.5 hours
content
Apr 2024
last update
$84.99
regular price

What you will learn

By the end of the course, You will be able to develop an awesome Test Automation framework

Expertise to become Lead SDET / Automation Architect

Executing tests in multiple test environments like DEV / QA / STG / PRD

Localization Testing using Spring Property Sources

Parallel test execution in local / remote grid

Data Driven Testing using Spring Data JPA

Cucumber

Automatic window/frame switching using Aspect oriented programming (AOP)

Spring Boot & Cucumber BDD integration

Why take this course?

*** Course Project Updated for latest Spring Boot 3.2.0 + Selenium 4.16 ***

Unlock the potential of Spring Boot in your Test Automation Framework and achieve more with less code. In this course, you'll harness Spring Boot's power to create a robust test automation framework for functional tests using Selenium and Cucumber.

Key Learning Points:

  1. Dependency Injection: Automate object creation in Page Objects and test classes effortlessly with Spring's support.

  2. WebDriver Manager: Seamlessly manage web driver life cycles using Spring Boot.

  3. Page Objects & Page Fragments: Create reusable page components and inject them into Page Objects.

  4. Parallel Test Execution: Implement multi-threading, web driver management, and parallel test execution with clear thread-specific scope.

  5. Test Execution in Multiple Environments: Manage environment-specific properties like URLs and user credentials via property files.

  6. Localization Testing: Validate language keywords for applications supporting multiple languages with Spring Boot.

  7. Data Driven Testing using Spring Data JPA: Execute tests by reading data from spreadsheets with ease using Spring Data JPA.

  8. Cucumber Feature Files: Embrace Behavior-Driven Development (BDD) by writing Cucumber feature files to drive tests.

  9. Handling External Resources: Access external resources such as properties and files within the framework.

  10. Automatic Window/Frame Switching: Effortlessly switch between windows/frames using annotations like @Window.

  11. Aspect-Oriented Programming (AOP): Automatically capture screenshots in your tests using AOP.

  12. Local vs. Remote Grid: Execute tests locally or on remote Selenium grids by easily switching Spring profiles.

And much more to supercharge your test automation capabilities!

Content

Introduction

Let's Develop A Simple MicroService
Coverage, Prerequisites & Assumptions

Resources For Reference

Course Material
Source Code

Spring Boot Basics

Dependency Injection - Introduction
Spring Initializer - Project Setup
Exploring Our Project
Dependency Injection Without Spring Boot
Dependency Injection With Spring Boot
Dependency Injection Using Setter Methods
Field Injection
Don't Forget @Component
Value Injection - Introduction
Value Injection - Demo
Value Injection With Default Values
Value Injection Using Setter Methods
Dependency Injection - Constructor vs Setter vs Field
How To Autowire Objects From External Libraries - Part 1
How To Autowire Objects From External Libraries - Part 2
@Bean vs @Component
Can I Autowire All?
Spring Bean Lifecycle - Overview
Spring Bean Lifecycle - Demo
Inversion Of Control
Summary
Quiz
Assignment
Assignment Hint

Spring Boot - Integrating With Selenium

Integrating With Selenium - Introduction
Adding Selenium Maven Dependencies
Maven Dependencies
ChromeDriver Bean
Creating Base Class
Google Page - Search Component - Part 1
Google Page - Search Component - Part 2
Google Page - Search Result
Google Page Object
Google Test Class
ScreenShotUtil - Spring Component - Part -1
ScreenShotUtil - Spring Component - Part -2
Lazy Bean
Unique Bean Issue
Injecting Unique Bean - @Primary
Injecting Unique Bean - ConditionalOnProperty
Injecting Unique Bean - ConditionalOnMissingBean
Injecting Unique Bean - ConditionalOnExpression - Part 1
Injecting Unique Bean - ConditionalOnExpression - Part 2
Injecting Unique Bean - @Qualifier
WebDriver - Who Is Going To Manage?
[Optional] - WebDriverFactory
Spring Profile - Introduction
Executing Tests In Dev / QA / STG / PRD Environments Using Spring Profile
Running Selenium Grid
Executing Tests In Local / Remote Grid Using Spring Profile - Part 1
Executing Tests In Local / Remote Grid Using Spring Profile - Part 2
Refactoring!
Summary
Assignment 1
Quiz

Spring Boot - Bean Scope & Parallel Testing

Bean Scope Introduction
Parallel Testing Issue
[Optional] - TestNG Suite
[Optional] - JUnit users
Understanding Bean Scope Issue With Simple Demo
Bean Scope - Singleton vs Prototype
Custom Annotations
WebDriver Bean Scope With Prototype
Creating Custom Scope For WebDriver
Browser Scope - Demo
Bean Scope Issue With ScreenShotUtil
Spring Application Context - Overview
Spring Application Context - Demo
WebDriverFactory Using Application Context
@Component Beans using Application Context
Refactoring
WebDriverWait Bean Scope
Summary

Spring Boot - Files & Properties

Introduction
Accessing Resources From Local Disk
Accessing Resources From External URL
Downloading Resources
Quick Note On AWS S3 Resources
ResourceLoader For Dynamic Resources
PropertiesLoaderUtils For Dynamic Properties
Spring Boot - @PropertySource
Google Flight Application - Test Requirement - Part - 1
Google Flight Application - Test Requirement - Part - 2
Google Flight Application - Page Object
Localization - Language Properties For Flight Application
Google Flight Application - Test Class
Google Flight Test - Demo
Google Flight Test - Localization Testing Via Command Line
Spring Boot - @TestPropertySource - Part - 1
Spring Boot - @TestPropertySource - Part - 2
Summary

Spring Boot - Aspect Oriented Programming

Cross Cutting Concern - Introduction
Our Business Requirement
WindowSwitchService - Implementation
Main Page Object Creation
Page Object Creation For Additional Windows
Window Switch - Test Class Creation
Window Switch Test - Chrome vs Firefox
Custom @Window For Aspect Oriented Programming
@Aspect - Window Switch Aspect
Aspect Oriented Programming - Final Demo - Part 1 - With Firefox
Aspect Oriented Programming - Final Demo - Part 2 - With Chrome
Aspect Oriented Programming - Terminologies - [Optional]
Aspect Oriented Programming - Assignment - [Optional]
Aspect Oriented Programming - Assignment Solution - [Optional]
Summary

Spring Data JPA - Data Driven Testing

Spring Data Introduction
Spring Data In Test Automation
Spring Data - Terminologies
Our Business Requirement
Maven Dependency & Project Setup With H2
Entity Class Creation
Repository Interface
Page Object Creation For Visa Registration Page
User Repository - Demo
Visa Test - Demo - Part 1
Visa Test - Demo - Part 2
Data Driven Testing - Query By First Name Starting With
Data Driven Testing - Query By DOB Range
Parameterizing Data Provider
Summary
[Optional] - Spring Data JPA Courses

Spring Boot - Logging

Logging Introduction
Logging With Log Levels In Page Objects And Test Classes
Log Level Demo
Writing Into A Log File
Summary

Spring Boot - Integrating With Cucumber BDD

Introduction
Behavior Driven Development - Overview - [Optional]
Maven Dependency & Intellij Plugins
Maven Dependencies
Cucumber Feature File For Google Test
Steps Definition Creation For Google Test - Part 1
Steps Definition Creation For Google Test - Part 2
Google Search Feature - Demo
Feature File Creation For Visa Registration Page
Step Definition Creation For Visa Registration Test
Spring Boot - Multiple Step Definitions Issue
Cucumber Runner Creation
Cucumber Runner For JUnit
Quick Note On @TestPropertySource
Attaching Screenshots For Failed Tests
Running Tests In Parallel
Limiting Thread Counts For Scenarios
JUnit
Cucumber Tags
Quitting WebDriver After Scenario
Running Features Via Command Line - With Browser Option
Running Features Via Command Line - With Tags
Running Features Via Command Line - With Grid
Running Features Via Command Line - Filtering Tags
Quick Note On Data JPA With Cucumber
Summary

Spring Boot - Miscellaneous

Note For This Section
Docker Integration
Docker Entrypoint
Problem With Extent Report
Fix For Extent Report

Reviews

Renat
April 9, 2023
Hi, Sir! Thank you for the course. If it is possible, please update section 10: Spring Boot - Integration With Cucmber BDD, with latest versions for io.cucmber(java/testing/spring)
Giovane
November 2, 2022
This course is amazing! It has exactly the content I was looking for and Vinoth explains it very well, detailed but not repetitive. I will definitely watch his other courses as well.
Ashwin
September 13, 2022
Kudos to Vinoth !!! This is one the best cource on how one can levarage Spring features in Automation Testing.
Sivaram390
July 26, 2022
I would love to give more than 5 stars for showing up this wonderful approach in SpringBoot for automation. Its like a Kickstarter for Spring. But one request for the instructor, please approach little slowly. Sometimes I used to check the video if its running in 1.5x speed. Jokes apart, he is one of the best in Udemy.
Satej
June 1, 2022
Well organized flow, useful content and practically applicable. Instructor's way of explanation is superb.
Süleyman
May 18, 2022
It was very effective course. I have also watched almost all of the contents released by you on udemy. Thanks a lot.
Varvara
April 7, 2022
The course instructor doesn't explain the concepts of Spring in a good depth, he seems to have some idea of how it works, but not clear enough to provide a solid explanation and then illustrate it with the coding examples. A lot of additional googling and struggle to to get closer to understanding. Also, in some of the lectures he is making very strange statements making it sound as something that students them-selves must already know while he never have shown his part of implementation. I refer to lecture 37 about ScreenshotUtil, Part 1 and autowiring of TakesScreenshot interface.
Manjeeri
February 19, 2022
Thank you Vinoth sir for explaining Spring framework in a simple way.Before watching your course, I struggled so much to understand the concept of @autowired and @component,now i know concept of various annotations in spring framework which is very neccessary to understand to go further
Noel
December 31, 2021
Very good learning experience on how to spring bootify your test automation framework, great knowledge and experience on display. A section on API testing would be a nice sequel! :-)
Ganesh
December 27, 2021
I have always followed a number of lectures from Vinod and he exactly covers everything in "what you will learn". this has boosted by confidence and great job.
Suryajit
August 26, 2021
I couldn't thank you enough for this course. My only regret is that I didn't come across this course few months back before switch my job.
Hung
August 26, 2021
Besides the knowledge gaining from SpringBoot, I have learned the automation techniques which could apply to non-Springboot framework.
Luis
August 24, 2021
This course was great. It was well organized and explained. I learned a great deal. Thank you very much.
Bill
July 30, 2021
This course is absolutely excellent. It brings together all the test technologies I've been trying to use really cleanly.
Azhar
May 25, 2021
Great course. Contents are well covered. Would be great if you could cover data retrieval from yml files using springboot configuration.

Coupons

DateDiscountStatus
3/21/202250% OFF
expired
4/24/202250% OFF
expired

Charts

Price

Test Automation Framework [ Spring Boot + Selenium + BDD ] - Price chart

Rating

Test Automation Framework [ Spring Boot + Selenium + BDD ] - Ratings chart

Enrollment distribution

Test Automation Framework [ Spring Boot + Selenium + BDD ] - Distribution chart
3168808
udemy ID
5/26/2020
course created date
7/24/2020
course indexed date
Bot
course submited by