
Maximize your learning in the REST Assured API automation course by using Udemy features: ask or search questions, adjust video resolution and playback speed, and rate your experience.
Explain API as an application programming interface that connects front end and back end via a common interface, letting clients like web and mobile apps access data.
Explain rest api and its representational state transfer design, highlighting six constraints - client-server, stateless, cache, uniform interface, layered system, and code on demand.
Explore JSON, the JavaScript object notation used with rest APIs to exchange data as lightweight, language-agnostic key-value pairs and nested structures.
Differentiate http from rest: http is the hypertext transfer protocol and rest is an architectural design that uses http methods to transfer data.
Explore the anatomy of a rest api request by examining a sample url, base url, endpoint, path parameters, and http methods such as get and post, using Postman.
Install and sign in to Postman on your operating system, explore the launch pad, and prepare to create your first request as you begin learning Postman features for API automation.
Configure Postman api requests by setting the url, http method, query parameters, headers, authorization, and json body. Use environments, variables, collections, mocks to organize requests, run tests, and examine responses.
Generate and manage your Postman API keys, copy or regenerate them, and set a key as an environment variable to use across multiple API requests.
Explore the Postman api to manage workspaces, collections, environments, and monitors using an api key, and learn how to automate these tasks with the Rest Assured library.
Execute a get request in Postman to fetch workspaces, using an API key header and an environment variable, then retrieve workspace details by ID and prepare for Rest Assured automation.
Explore JSON syntax and data types—strings, integers, arrays (including null arrays), null values, booleans, and nested objects—and learn to fetch data using JSON path in REST Assured.
Learn to parse json with Groovy's JsonSlurper and GPath expressions to fetch fields like first name, address, and phone numbers, then use Rest Assured for validation.
Learn to use Java jsonpath with Rest Assured by adding the jsonpath dependency, querying json objects with dot notation, filters, and functions, and compare with Groovy XPath for api automation.
Compare Groovy's jsonpath with Java's jsonpath, noting Rest Assured defaults to Groovy's xpath syntax and requires a separate dependency for Java jsonpath to fetch data such as phone numbers.
Explore core http concepts from the rest assured api automation course, including safe, idempotent and cacheable methods, RFC 7231 guidance, and how these properties affect request behavior and caching.
Learn how the get http method fetches the current representation of a resource, with no request body, a response body, safe and idempotent behavior, and server-side caching.
Explore the head method in REST Assured API automation, transferring status and headers without a resource or response body to check file size or API availability before a get request.
Explains the post method, using a request body to create or update a resource and return a response body, noting it is not safe or idempotent.
Master the put http method that replaces a resource with the request payload, may create it if it doesn't exist, and remains idempotent though not safe or cacheable.
Learn how the delete method removes the target resource identified by the URL, with an optional body and usually no response body. It is not safe or cacheable, but idempotent.
Explore the options method to reveal allowed http methods and headers for a resource. This pre-flight, read-only and idempotent request guides subsequent api calls.
Understand how the patch method performs partial updates by sending only changed fields, unlike put’s full replacement, with a practical mock api example updating a post title.
Examine HTTP status codes from 1xx to 5xx, learn that 200 ok signals success, and review errors like 400 bad request, 401 unauthorized, 404 not found, and 500 server error.
Explore live examples of HTTP status codes using Postman, including 401, 404, and 400, and learn to validate both success and failure scenarios in Rest Assured API automation.
Set up a mock server with Postman to automate api responses even when the backend isn’t ready, then demonstrate 200 and 503 examples using Rest Assured.
Practice all HTTP status codes using a Postman mock server and validate them with Rest Assured automation. Create examples such as 403 forbidden and assert the response status and message.
Explore core Java object-oriented programming concepts and syntax, including classes, methods, constructors, strings, enums, and control structures; master inheritance, abstraction, interface, polymorphism, encapsulation, and exception handling with file operations.
Master essential Java basics, including setting up IntelliJ or Eclipse, creating a Java project, and organizing code into packages with proper naming and the main method.
Explore Java basics, including primitive and reference types, variables, constructors, and methods with examples. Learn initialization, the new keyword, static main, and constructor overloading to illustrate object creation and polymorphism.
Learn to use the static keyword, call static methods without an instance, and compare static with non-static variables. Explore final constants and access enums and constants across classes.
Learn Java string basics: define string variables, concatenate with concat, convert to uppercase, extract substrings, and compare with equals. Practice parsing strings to integers and converting integers to strings.
Learn core Java control structures for API automation, including if-else, loops (for, while, for each), switch with enums, and best practices like break and default cases.
Apply Java inheritance with the extends keyword to let a subclass inherit superclass methods and fields. Use the super keyword to distinguish or invoke the superclass parameterized constructor when needed.
Master Java access modifiers—public, protected, private, and default—and control access to classes, attributes, and methods, with best practices like private attributes and public getters/setters.
Explore encapsulation as wrapping data and actions in a class, using private attributes and public getters and setters to hide data, control access, and enable read-only or write-only access.
Explore polymorphism in object-oriented programming through method overriding and overloading, revealing runtime (dynamic dispatch) versus compile-time (static) polymorphism, with salary examples for full-time and contractor employees.
Learn abstract class-based abstraction in Java, combining abstract and regular methods, preventing direct instantiation, and enforcing subclass implementation. See circle and square illustrate partial abstraction, area calculation, and info output.
Explore how interfaces deliver 100% abstraction by acting as blueprints for color, area, and info. Implementing classes override abstract methods, while Java 8 adds default and static interface methods.
master java exception handling by distinguishing compile-time (checked) versus runtime (unchecked) exceptions, and implementing handling with try-catch, throws, finally, and try-with-resources; explore user-defined exceptions with custom messages.
Learn Java file operations: create, read, write, and delete files using file reader, file input stream, file writer, and file output stream, with relative paths and OS-agnostic file separator.
Discover Rest Assured, a Java library that automates RESTful APIs with a human readable DSL using given when then, and see how Groovy, JUnit, TestNG, Cucumber, and Hamcrest fit together.
Identify the rest assured setup prerequisites, including Java JDK 8 or 11, TestNG, and a choice of IntelliJ or Eclipse; configure Maven to manage dependencies and plugins.
Set up Java JDK on Windows by downloading the Oracle JDK, installing it, configuring JAVA_HOME and PATH, and verifying the installation with java -version.
Set up a Rest Assured Maven project in IntelliJ, add Rest Assured and test dependencies in pom.xml, configure static imports, and run a sample test using given-when-then with TestNG.
Set up Eclipse and create a Maven project, add REST Assured and test dependencies, and run a dummy test to validate the API automation framework.
demonstrates how static imports for rest assured improve test readability by allowing given, when, then without class prefixes, and contrasts this with non-static imports.
Master how method chaining in Rest Assured returns the request specification after each call, letting you chain given, when, headers, and parameters to build requests.
Automate a get request using rest assured to validate a 200 status code against the api.postman.com workspaces endpoint, including header setup and a given-when-then flow with pre-assertion logging.
Validate a GET response body by extracting workspace names and types with Groovy xpath, then assert them with hamcrest matchers in a single rest assured body check.
Extract the full Rest Assured response, including headers, cookies, and body, for processing and driving subsequent requests. Use the extracted data for assertions with Hamcrest or other libraries.
Extract a single value from a REST Assured response using dot path, JsonPath options, and Groovy's XPath approaches to retrieve the workspace name.
Learn to assert extracted responses in REST Assured using Hamcrest, with static imports, assertThat and equalTo to validate the workspace name and handle assertion failures.
Master hamcrest, a powerful assertion library for unit testing with JUnit and REST Assured, enabling human-readable, type-safe matchers and descriptive error messages for collection matching.
Learn to use hamcrest collection matchers to validate a collection’s contents, ensuring exact size and order with contents, and handle variations with contains in any order or hash items.
Learn to validate collections in rest assured using hamcrest collection matchers, including empty checks, has size, and every item starts with a string, with groovy size comparisons.
Apply Hamcrest collection matchers to maps by checking keys and entries, using has key, has value, and has entry. Learn Groovy Json object handling and use not for emptiness checks.
the lecture demonstrates using allOf and anyOf to combine hamcrest matchers, tests strings and numbers, and highlights methods like starts with, contains, is blank, and is equal ignoring case.
Course Updates:
Nov 2023: This course fully supports latest Rest Assured version 5.3.2, latest Java 21 and latest versions of all supporting libraries.
Why learn Rest Assured and REST API automation?
REST Assured API is one of the most popular library when it comes to automating the REST APIs. Most of the today's web applications are backed by the Micro services architecture and the REST APIs. Make no mistake, REST is gaining a lot of popularity amongst the developer community.
As a QA engineer, it becomes very important to test the REST APIs as a working API is crucial for a product. With great adoption of OAuth 2.0 and Open ID Connect authentication mechanisms, it also becomes important to build an in-depth understanding of these authentication mechanisms. To speed up product delivery, the industry is gradually moving towards end to end continuous integration (CI) and continuous development process (CD). So it becomes critical that the backend API services are automated to facilitate and speed up this process.
This is where the role of a QA engineer becomes of utmost importance to be able to automate the backend API services. This is why you would want to learn everything about the REST Assured library to confidently automate the REST APIs and lead the effort single handedly. And, you have come to the right place!
Why this is the right course for you?
This REST Assured course is a one stop solution for all your API automation needs. This course will take you from the beginner level, all the way to be able to design and implement industry standard production ready API automation framework. By the end of the course, you will be confident enough to call yourself as an expert in the REST API automation space.
This is probably the only course that covers serialization and de-serialization in great detail and that too with complex POJO examples.
This is the only course that explains many of the authentication and authorization schemes in REST API, in a simple manner and with live examples. For OAuth2.0, we have covered two famous APIs - Google and Spotify.
This is the only course that values your precious time. Lectures are short, crisp and to the point. I have spent a great amount of time editing the videos so that you don't have to waste your time just to learn a simple concept.
This course covers many topics you will not find in other courses, for e.g. Lombok, Jackson Databind API, JSON Assert, Hamcrest assertions, etc.
Before we start learning REST Assured and many of its cool features, I'll spend a great amount of time to explain you about the API basics, the HTTP concepts, what is REST, the HTTP methods, POSTMAN, Mocking APIs, JSON and JSON Path and also the basics of Java Programming language. These are the essentials one must become familiar with before jumping on with the REST Assured automation.
I'll explain you each and every REST Assured concept with live coding and I'll not just write the code. I'll also explain you what happens behind the scenes. This is the best way to learn something new. "Why" and "How" are more important than "What"!
You will learn how to think like an automation lead, plan and design the automation framework, optimizing the code, write clean tests and follow good programming practices. For e.g. you will always see me formatting the code (I hate poorly formatted code). It's a small thing, but is very important!
I'm VERY RESPONSIVE in the Q&A section. I respond to queries within 24 hours. If the time zone difference is not that huge, I can respond within 3-12 hours.
So, "Rest Assured", by the end of this course, you will become an expert!
What topics are covered in this course?
Here's the list of all the important concepts covered in this course:
API Essentials
Postman Essentials
JSON Essentials
HTTP Essentials
Postman Mock Server
Java Programming Basics
Groovy JsonPath
Jayway JsonPath
Groovy Vs Jayway
Rest Assured - Setup
Rest Assured - Getting Started
Rest Assured - Logging
Rest Assured - Handling Headers
Rest Assured - Automate Get
Rest Assured - Hamcrest Assertion
Rest Assured - Hamcrest Collection Matchers
Serialization & De-serialization: Concept
Serialization & De-serialization: POJOs
Serialization & De-serialization: Role of Jackson API
Serialization & De-serialization: HashMap to JSON object
Serialization & De-serialization: ArrayList to JSON array
Serialization & De-serialization: Jackson Annotations
Serialization & De-serialization: Jackson ObjectMapper
Serialization & De-serialization: Jackson ObjectNode
Serialization & De-serialization: Jackson ArrayNode
Serialization & De-serialization: Complex POJO Example
Serialization & De-serialization: Full JSON body matching
Serialization & De-serialization: Parameterization using TestNG Data provider
Rest Assured - Request Specification
Rest Assured - Response Specification
Rest Assured - Automate Post, Put, Del
Rest Assured - Multiple ways to send request payload
Rest Assured - Complex JSON in request body
Rest Assured - Request Parameters
Rest Assured - Multipart Form Data
Rest Assured - Form URL Encoded
Rest Assured - File upload and download
Rest Assured - JSON Schema Validation
Rest Assured - Logging Filters
Rest Assured - Configs
Authentication schemes - Form/Session Based Authentication
Authentication schemes - Session Filter
Authentication schemes - CSRF Token
Authentication schemes - Handling Cookies
Authentication schemes - OAuth2.0
Authentication schemes - OpenID Connect
Authentication schemes - OAuth Vs Open ID Connect
Authentication schemes - ID Token
Authentication schemes - OAuth Authorization Grant Flow
Authentication schemes - OAuth Implicit Grant Flow
Authentication schemes - OAuth Client Credentials Flow
Authentication schemes - Basic Authentication
Authentication schemes - Digest Authentication
Authentication schemes - Bearer Token
Authentication schemes - APIKey
Google OAuth 2.0 - Configure and setup client app for authorization code grant flow
Google OAuth 2.0 - Fetch auth code, access token and refresh token
Google OAuth 2.0 - Renew access token
Google OAuth 2.0 - Automate Get User Profile API
Google OAuth 2.0 - Automate Send Email API
Google OAuth 2.0 - Implicit grant flow implementation
Google OAuth 2.0 - Open ID connect flow implementation
Spotify OAuth 2.0 - Configure and setup client app for authorization code grant flow
Spotify OAuth 2.0 - Fetch auth code, access token and refresh token
Spotify OAuth 2.0 - Renew access token
Spotify OAuth 2.0 - Automate Playlist API
Framework goals accomplished in this course:
Scalable and extensible
Reusable Rest Assured specifications
Reusable Rest Assured API requests
Separation of API layer from test layer
POJOs for Serialization and Deserialization
Singleton Design Pattern
Lombok for reducing Boilerplate code
Builder pattern for Setter methods in POJOs
Robust reporting and logging using Allure
Automate positive and negative scenarios
Support parallel execution
Data driven using TestNG Data Provider
Automated access token renewal
Maven command line execution
Integration with Git
Integration with Jenkins
Tech stack and tools covered in this course:
Rest Assured
TestNG
Java
Allure Reports
Hamcrest
Jackson API
Lombok
What else is included in the course?
All the code & notes used in the lectures is available for download
You will get my full support in the Q&A