REST Assured API Automation from scratch + Framework + CI
- Offered byUDEMY
REST Assured API Automation from scratch + Framework + CI at UDEMY Overview
Duration | 23 hours |
Total fee | ₹399 |
Mode of learning | Online |
Credential | Certificate |
REST Assured API Automation from scratch + Framework + CI at UDEMY Highlights
- 30-Day Money-Back Guarantee
- Certificate of completion
- Full lifetime access
- Learn from 27 downloadable resources and 7 articles
REST Assured API Automation from scratch + Framework + CI at UDEMY Course details
- Become an Expert in REST API automation using REST Assured
- Develop production ready framework using clean code practices and integrate with CI
- Serialization & De-serialization with Complex POJOs [Live practice]
- Become confident and lead the API Automation effort in your project from scratch
- In-depth understanding of REST Assured Fundamentals from scratch
- OAuth2.0 Live Examples - Google and Spotify API
- Rest API Authentication Mechanisms with Live Examples
- Learn how to use POSTMAN for REST API Execution
- Learn how to Automate POSTMAN APIs using REST Assured
- Learn how to mock REST APIs using POSTMAN Mock Server
- Learn about Jackson Databind API [Annotations, Serialization and De-serialization]
- Learn basics of TestNG, Maven, Jenkins, Git
- Learn Allure Reporting and generate feature rich reports
- Learn how to use Lombok to greatly reduce Boiler plate code
- Confidently work with complex JSONs in request and responses
- How to match full JSON body using Jackson and JSON Assert libraries
- Automate session/Form based authentication + CSRF token using a demo application
- Hamcrest Assertions
- Automating tests using both the BDD and non-BDD styles
- Java Programming Basics
- Learn how to write clean test cases by following most of the industry best practices
- Learn how to integrate the framework with GitHub
- Learn how to auto-trigger automation from Jenkins using GitHub Web Hooks, SCM Polling and Build Frequency
- 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 EssentialsPostman EssentialsJSON EssentialsHTTP EssentialsPostman Mock ServerJava Programming BasicsGroovy JsonPathJayway JsonPathGroovy Vs JaywayRest Assured - SetupRest Assured - Getting StartedRest Assured - LoggingRest Assured - Handling HeadersRest Assured - Automate GetRest Assured - Hamcrest AssertionRest Assured - Hamcrest Collection MatchersSerialization & De-serialization: ConceptSerialization & De-serialization: POJOsSerialization & De-serialization: Role of Jackson APISerialization & De-serialization: HashMap to JSON objectSerialization & De-serialization: ArrayList to JSON arraySerialization & De-serialization: Jackson AnnotationsSerialization & De-serialization: Jackson ObjectMapperSerialization & De-serialization: Jackson ObjectNodeSerialization & De-serialization: Jackson ArrayNodeSerialization & De-serialization: Complex POJO ExampleSerialization & De-serialization: Full JSON body matchingSerialization & De-serialization: Parameterization using TestNG Data providerRest Assured - Request SpecificationRest Assured - Response SpecificationRest Assured - Automate Post, Put, DelRest Assured - Multiple ways to send request payloadRest Assured - Complex JSON in request bodyRest Assured - Request ParametersRest Assured - Multipart Form DataRest Assured - Form URL EncodedRest Assured - File upload and downloadRest Assured - JSON Schema ValidationRest Assured - Logging FiltersRest Assured - ConfigsAuthentication schemes - Form/Session Based AuthenticationAuthentication schemes - Session FilterAuthentication schemes - CSRF TokenAuthentication schemes - Handling CookiesAuthentication schemes - OAuth2.0Authentication schemes - OpenID ConnectAuthentication schemes - OAuth Vs Open ID ConnectAuthentication schemes - ID TokenAuthentication schemes - OAuth Authorization Grant FlowAuthentication schemes - OAuth Implicit Grant FlowAuthentication schemes - OAuth Client Credentials FlowAuthentication schemes - Basic AuthenticationAuthentication schemes - Digest AuthenticationAuthentication schemes - Bearer TokenAuthentication schemes - APIKeyGoogle OAuth 2.0 - Configure and setup client app for authorization code grant flowGoogle OAuth 2.0 - Fetch auth code, access token and refresh tokenGoogle OAuth 2.0 - Renew access tokenGoogle OAuth 2.0 - Automate Get User Profile APIGoogle OAuth 2.0 - Automate Send Email APIGoogle OAuth 2.0 - Implicit grant flow implementationGoogle OAuth 2.0 - Open ID connect flow implementationSpotify OAuth 2.0 - Configure and setup client app for authorization code grant flowSpotify OAuth 2.0 - Fetch auth code, access token and refresh tokenSpotify OAuth 2.0 - Renew access tokenSpotify OAuth 2.0 - Automate Playlist APIFramework goals accomplished in this course:Scalable and extensibleReusable Rest Assured specificationsReusable Rest Assured API requestsSeparation of API layer from test layerPOJOs for Serialization and DeserializationSingleton Design PatternLombok for reducing Boilerplate codeBuilder pattern for Setter methods in POJOsRobust reporting and logging using AllureAutomate positive and negative scenariosSupport parallel executionData driven using TestNG Data ProviderAutomated access token renewalMaven command line executionIntegration with GitIntegration with JenkinsTech stack and tools covered in this course:Rest AssuredTestNGJavaAllure ReportsHamcrestJackson APILombokWhat else is included in the course.All the code & notes used in the lectures is available for downloadYou will get my full support in the Q&A
REST Assured API Automation from scratch + Framework + CI at UDEMY Curriculum
Welcome!
Welcome to the course
Important: How to get a better learning experience
Important: When you need my help
API Essentials
What is API?
What is Rest API?
What is JSON?
REST Vs HTTP
API Request Anatomy
Quiz
Postman Essentials
Install
Walkthrough
Generate API Key
API documentation
Execute GET Request
JSON Essentials
JSON Syntax and Data Types
Fetch JSON using Groovy's GPath
Fetch JSON using JayWay's JsonPath
Groovy's GPath Vs JayWay's JsonPath
Quiz
HTTP Essentials
HTTP Concepts: Safe, Idempotent and Cacheable
GET
HEAD
POST
PUT
DELETE
OPTIONS
PATCH
Status Codes
Status Codes - Live Examples
Quiz
Postman Mock Server
Setup Mock Server with Multiple Examples
Use Mock Server to Practice All HTTP Status Codes
Quiz
JAVA Programming Essentials
Section Intro
Java Basics - Part 1
Java Basics - Part 2
Java Basics - Part 3
Java Basics - Part 4
Control Structures
OOP - Inheritance and super keyword
Access modifiers
OOP - Encapsulation
OOP - Polymorphism
OOP - Abstraction using abstract class
OOP - Abstraction using interface
Exception handling
File operations
Rest Assured - Setup
What is Rest Assured?
Setup Pre-requisites
Setup JAVA JDK
AVOID JAVA 8, 9 OR 10
Create project using IntelliJ
Eclipse - TestNG plugin download issue - Must watch before proceeding
Create project using Eclipse
Quiz
Download Resources
Download Code from here
Download the Slide Deck from here
Rest Assured - Getting Started
Why static imports?
Method chaining concept
Automate GET Request - Assert Status Code
Automate GET Request - Assert Response body
Automate GET Request - Extract Response
Automate GET Request - Extract Single Field
Hamcrest Assertion on Extracted Response
What is Hamcrest and Why it is popular?
Hamcrest Collection Matchers - Part 1
Hamcrest Collection Matchers - Part 2
Hamcrest Collection Matchers - Part 3
Hamcrest Collection Matchers - Part 4
Quiz
Rest Assured - Logging
Request and Response Logging
Log if Error
Log if Validation Fails
Blacklist Headers
Quiz
Rest Assured - Handling Headers
What are Headers?
Set Mock Environment for Headers
Multiple Headers in Request
Multiple Headers in Request - Using Headers
Multiple Headers in Request - Using Map
Multi Value Header
Response Headers - Assert
Response Headers - Extract
Response Headers - Extract Multi Value Header
Quiz
Rest Assured - Request Specification
What is Request Specification?
How to Reuse Request Specification?
BDD to non-BDD
Request Specification Builder
Default Request Specification
Query Request Specification
Quiz
Rest Assured - Response Specification
Create Response Specification
Response Specification Builder
Default Response Specification
Quiz
Rest Assured - Automate POST, PUT and DELETE
POST - BDD Style
POST - non-BDD Style
PUT
DELETE
Quiz
Rest Assured - Send Request Payload Multiple Ways
Send as a File
Send Nested JSON Object as a Map
Send JSON Array as a List - Create Mock Request
Send JSON Array as a List - Build Test Case
Send JSON Array as a List - Content Type Encoding
Quiz
Rest Assured - Send Complex JSON as Request Payload
Create a Mock Request with Complex JSON as Request Payload
Send Complex JSON using Map and List
Assignment - Automate Complex JSON
Rest Assured - Handling Request Parameters
Postman Echo Introduction
Single Query Parameter
Multiple Query Parameters
Multi Value Query Parameter
Path Parameter
Quiz
Rest Assured - Multipart Form Data
What is Multipart Form Data?
Automate Multipart Form Data
Quiz
Rest Assured - File Upload and Download
Upload File
Download File
Quiz
Rest Assured - Form URL Encoding
What is Form URL Encoding?
Automate Form URL Encoded Request Payload
Quiz
Rest Assured - JSON Schema Validation
What is JSON Schema?
Automate JSON Schema Validation
Class Path Options
Quiz
Rest Assured - Filters
Log Request and Response Specification to the Console
Log to File
Reuse Filters
Serialization and De-serialization
Serialization and De-serialization in Java
Serialization and De-serialization in Rest Assured
Object Mapping Support
Serialize Map to JSON Object using Jackson
Serialize List to JSON Array using Jackson
Serialize Jackson Object Node to JSON Object
Serialize Jackson Array Node to JSON Array
What is POJO?
Simple POJO: Create Mock Request
Simple POJO: Serialization
Simple POJO: De-serialization
Workspace POJO: Serialize and De-serialize
Workspace POJO: Parameterize Tests using TestNG Data Provider
Quiz
Assignment - Create POJO and serialize this JSON
Jackson Annotations
Not Null
Non Default
Non Empty
JSON Ignore and JSON Ignore Properties
Complex POJO - Live Practice
API Walkthrough
Create POJOs
Build Payload and Serialize
De-serialize and Assert Full Body [JSON Assert]
Challenges
Handle Different Data Types in Request and Response
Assert Field with Different Data Types
Automate One More Test Case
Coding challenges
Fetch all nested keys and values from a given JSON array
Fetch values of fields with same key name
Authentication and Authorization
Authentication Vs Authorization
Different Authentication Schemes
Basic Authentication
Digest Authentication
Bearer Authentication
API Key Authentication
What is OAuth?
What is OpenID Connect?
Quiz
OAuth Flows
OAuth Terminologies
Authorization Code Grant Flow
Implicit Grant Flow
Client Credentials Flow
Quiz
Google OAuth2.0
Introduction
Create Gmail Account
Create Client App
Enable Gmail API
Create Consent Screen
Create Client Credentials
Authorize App
Fetch Access Token and Refresh Token
Renew Access Token
Execute Get User Profile API
Execute Send Email API
Quiz
Google OAuth2.0 - Implicit Grant Flow and OpenID Connect
Implicit Grant Flow
OpenID Connect - ID Token [JWT Token]
Assignment - Let's learn more about the JWT Token
Google OAuth2.0 - Automate
Get Profile API
Send Email API
Assignment - Automate Gmail APIs: Delete/Get/List/Modify
Form Based Authentication
What is Session Based Authentication?
What is Form Based Authentication?
What is CSRF Token?
Setup Demo App
Demo App Walkthrough
Automate Post
Fetch Session ID using Session Filter
Automate Get Profile
HTML Validation
Quiz
Rest Assured - Handling Cookies
What is a Cookie?
Demo Application Cookie Flow
Sending Cookie
Sending Cookie using Cookie Builder
Sending Multiple Cookies
Fetch Single Cookie
Fetch Multiple Cookies
Quiz
Framework - Roadmap
Roadmap
Download Code from here
Framework - Spotify OAuth2.0
Introduction
Authorization API Intro
Register a Client App
Authorize App
Fetch Access Token and Refresh Token
Renew Access Token
Execute Create a Playlist API
Execute Get a Playlist API
Execute Update a Playlist API
Framework - Automate Tests
Automate Create a Playlist API
Automate Get a Playlist API
Automate Update a Playlist API
Automate Negative Scenarios
Framework - Create POJOs
Why Refactoring?
Create POJO Classes
Update Test Cases to use POJOs
Builder Pattern with POJOs
Framework - Create Reusable Methods
Create Spec Builder
Create Playlist API Reusable Methods
Create Rest Assured Reusable Methods
Framework - Token Manager
Renew Token Automatically
Check Token Expiry
Create Reusable Method
Create Reusable Spec
Framework - Routes
Create Routes
Framework - Property Loaders
Create Property Loader Utility
Create Config Loader - Singleton Design Pattern
Create Data Loader
Framework - Test Class Refactoring
Optimize Code
Framework - Lombok
Introduction
Setup
Implement without Builder
Implement with Builder
Framework - Allure Reporting
Introduction
Install
Add Dependency
Generate Reports
Add Display Name
Add Description
Add Links
Add Behaviors
Add Steps
Add Filter
Custom Folder Path
Framework - Maven Command Line
Execute using Maven
Framework - Important Optimizations
Use OAuth method to supply token
Java Faker API
Java Enum to store Status Codes
Enable Parallel Execution
Enable for Multiple Environments
Framework - Integration With GitHub
Create GitHub Repository
Git Clients - Various Options
Commit Code to GitHub Repository
How to Push Subsequent Changes?
Framework - CI
Install Jenkins on Windows
Install Jenkins on Mac
Create Automation Jenkins Job
Jenkins Auto Trigger: SCM Polling
Jenkins Auto Trigger: Build Frequency
Jenkins Auto Trigger: GitHub Web Hooks
Bonus Lecture
Bonus Lecture - What to learn next?