Testing REST APIs with Serenity BDD and RestAssured
Including Serenity Screenplay and Cucumber
REST APIs are an increasingly important part of modern software architectures. And in a world where speedy delivery is of the essence, comprehensive automated tests are not an option.
From a testing perspective, understanding REST APIs and how to use them is vital, even if you aren't writing tests for an API directly. Testers can reduce the need for slow and expensive automated web tests by using REST APIs to bypass the web UI layer for test preparation or for verifying test results, or in cases where repeatedly exercising the UI would not be justified.
Fortunately, writing acceptance tests for REST APIs is not a difficult task.
In this course, you will learn not only what a REST API is, and how REST APIs work, but you will also learn how to write high quality, expressive REST API tests using Rest Assured and Serenity BDD. You will see how RestAssured provides a clean, fluent API that makes reading and maintaining your REST API test code much easier. And you will learn how Serenity BDD integrates with RestAssured to provide powerful test reporting for REST API tests.
You will also learn how to write BDD executable specifications for REST APIs using Cucumber, and how this can provide rich living documentation for your web services, that can be used by teams using a web service to better understand what theaweb service does in business terms.
What you will learn
Introduction
What you will learn
Serenity REST Starter Project
Setting up your environment
The application domain - a real-time trading data platform
Writing your first REST API Test - reading the market price of a share
Test your learning
Using Path and Query Parameters
Using JSONPath to get data from the response
Making assertions about the response
Getting headers and cookies from the response
A new demo application - BDD Trader
Posting JSON data to a REST end-point
Serialising and deserialising Java objects
Deleting resources with DELETE requests
Updating resources with PUT requests
Implementing a scenario using POST and GET queries
Refactoring the tests for better reporting
Writing BDD scenarios for REST APIs
Cucumber and Rest Assured - Part 1
Cucumber and Rest Assured - Part 2
Your first REST API Screenplay test
Modelling REST end-points
Modelling REST requests
Making assertions with REST Questions
John Ferguson Smart