Discover The Best All-Round Java Test Automation Framework

Serenity BDD is one of the most popular Java test automation libraries, and for good reason!

If you are writing automated web tests in Java, using Serenity BDD correctly can reduce the amount of code you need to write by well over 50%, slashing the amount of code you need to maintain yourself. Serenity BDD produces powerful test reports that you can use both as as evidence of your testing activities and documentation of your application. And with over a million downloads a month, regular releases and a vibrant open source community, it's a solid bet for your test automation framework!

This in-depth video training is designed and delivered by John Ferguson Smart, the author and lead maintainer of Serenity BDD.  Constantly updated with the latest Serenity BDD features, this course will give you a unique insight on how to use Serenity BDD the way it is intended. You'll discover:

  • How to write well-structured automated web tests with Serenity BDD, to maximise reuse and minimise maintenance costs

  • How to use Page Objects and Action Classes to make your test code more concise and more expressive, so you can write tests faster AND spend less time maintaining them later on;

  • How to choose effective locator strategies using XPath and CSS, including Serenity BDD's powerful dynamic locators

  • How to handle waits and asynchronous applications in Serenity BDD, making your tests more stable and robust

  • How to use data-driven testing with Serenity to get higher coverage and better reporting

  • How to run tests in parallel and get feedback faster

  • How to run your Serenity BDD tests remotely on Selenium Grid and services such as SauceLabs and BrowserStack

  • How to tailor your Serenity BDD reports, so they tell your stakeholders EXACTLY what they need to know

  • How to integrate Serenity BDD with JUnit 5, and get all the power of the latest and greatest version of JUnit

  • And much more

But more importantly, you'll discover the mindset behind the Serenity BDD framework. You'll see live examples of how the framework author uses Serenity BDD to write automated web tests faster and more reliably, and learn how to use the same techniques yourself.

After all, who better to teach you Serenity BDD than the author of the framework himself?

By the end of the course, you'll be able to build automated testing frameworks for your web applications quickly and effectively from scratch, harnessing the full power of Serenity BDD test automation framework.

Course curriculum

  • 1

    Welcome to the course!

    • A message from your instructor

    • How to use this course

  • 2

    Setting Up Your Environment

    • What You Need

    • Installing or Updating Java

    • Installing Maven

    • Installing Git and GitHub

    • Installing and Setting Up IntelliJ

    • Installing and Setting Up Eclipse

  • 3

    First Steps With Serenity BDD

    • Creating Your First Serenity Project

    • Your First Serenity BDD Test Case

    • Organising a Serenity Test Into Steps

    • Creating Reusable Steps Using Parameters

    • Organising Our Tests Into A Requirements Hierarchy

  • 4

    Locating Elements On A Page

    • Introduction To Locator Strategies

    • Locating Elements By ID

    • Locating Elements Using CSS Classes

    • Locating Elements By CSS

    • Locating Elements By Link Text

    • More Advanced CSS Expressions

    • Locating Elements With XPath

    • Locating Elements using Web Elements

  • 5

    CSS In Depth

    • Introduction to CSS Selectors

    • Locating Elements By Tag, Class or ID

    • Exercise - using CSS to locate simple elements

    • Locating Elements by Attribute Value

    • Exercise - Using CSS to Locate Elements by Attribute Value

    • Locating Child Elements

  • 6

    XPath In Depth

    • Introduction to XPath

    • XPath Predicates and Functions

    • Locating Elements by Attribute and Text Content

    • Working With Collections In XPath

    • Navigating the Page Structure With XPath

    • When Should I Use XPath?

  • 7

    Serenity BDD Action Classes

    • How and Why to Organize Your Test Cases From the User's Perspective

    • Action Classes In Action

    • Action Classes And The Serenity Reports

  • 8

    Page Objects In Serenity BDD

    • The Page Object Model

    • Page Objects In Serenity BDD

    • Page Objects vs Action Classes

  • 9

    Interacting With Web Elements In Serenity BDD

    • Working With Simple Input Fields

    • Working With Multiple Input Fields

    • Working With Checkboxes

    • Working With Radio Buttons

    • Working With Dropdown Lists

    • Hover And Other Mouse Actions

    • Configuring URLs

  • 10

    Making Assertions In Serenity BDD

    • Assertion Fundamentals

    • Writing Fluent Assertions With AssertJ

    • Reporting Assertions In Serenity

  • 11

    Handling Wait Conditions

    • Implicit and Explicit Waits In Serenity BDD

    • Waiting For Elements To Disappear

    • Waiting For Elements To Appear

  • 12

    Configuring Your Browser In Serenity BDD

    • Configuring Chrome

    • Configuring Firefox

    • Configuring Microsoft Edge

    • Practical Example: Downloading files to a temporary directory

  • 13

    Data Driven Tests

    • Basic Data-Driven Tests

    • Using Test Data From A File

  • 14

    Running Serenity On A Remote Server

    • Introduction To Remote Testing With Selenium

    • Running Serenity Tests On Selenium Hub

    • Configuring Different Target Environments

    • Running Serenity Tests on Saucelabs

    • Running Serenity Tests on BrowserStack

    • Configuring Custom Driver Capabilities

    • Advanced Driver Configuration (example with LambdaTest)

    • Running Serenity BDD Tests in Parallel

  • 15

    Serenity BDD and JUnit 5

    • Introduction to JUnit 5

    • Writing a JUnit 5 Test Case

    • Organising JUnit 5 Test Cases

    • Data Driven Testing In JUnit 5

  • 16

    Exercise - Testing The TodoMVC Application

    • TodoMVC Exercises

    • Introduction

    • Exercise 1 - Adding A Single Task

    • Exercise 2 - Adding Multiple Tasks

    • Exercise 3 - Completing A Task

    • Exercise 4 - Filtering Completed Tasks

    • Exercise 5 - Deleting Items

    • Exercise 6 - Data Driven Tests

    • Exercise 7 - Handling Multiple Environments