Postman: The Complete Guide – REST API Testing
RESTful APIs (or simply REST API) are everywhere nowadays but at the same time they are getting more complex to get started with: different HTTP methods,, headers, cookies, dealing with file uploads or authentication with api keys, tokens, OAuth and so much more.
But before you start investing time writing code to retrieve the data the API is offering, why not test the request first to make sure everything is working as expected?
This is where the Postman App comes in! Postman allows you very quickly create a request with the required HTTP method and parameters, submit the request and easily inspect the results.
Postman can help if you are developing APIs as well! I have created this course for testing engineers and well as for software developers. Postman can help you during the development of your API as well as after the API is completed, by running tests that make sure your API is still working as intended.
In the first part of the course we will start exploring the features of Postman and continue by writing API tests with the intention of integrating them in a CI server where the tests will run on a current basis.
But this is not the normal course you take part in. Because your needs may be different and because I hate leaving you wondering what to do next, the second part of the course will include user questions and answers to problems that were not yet covered in the course or that are more specific and may not interest everybody.
So let’s look at what you are going to learn:
Start with simple requests and advance towards more complex scenarios
Learn to deal with authentication / authorization mechanisms like Basic Auth, API Keys, or OAuth.
Start writing API tests
Organize tests in collections and share them with your team
Run API tests in Jenkins or any other CI server
You ask, I answer
So after this course you will know how to use Postman as a pro.
Excited to learn Postman? Sign-up up today!
Introduction and first steps in Postman
In this lecture, I wanted to give you an overview of the entire course.
Let's just recap what you have learned in this lecture.
Creating with API requests
In this lecture we look at all the aspects involved when creating a request with Postman. We will cover different HTTP methods, how to manage complex URL parameters and path variables, different headers and body types.
This video will show you how to easily create Postman request by importing them directly from your browser.
Let's have a closer look at responses in this lecture.
This lecture discusses how to deal with cookies in Postman.
So the API you are calling is not working? Don’t panic and keep calm because in this lecture I will show you a couple of tips on how to troubleshoot the most common problems in Postman.
Saving requests ensures that you can later run the again or share them. In this lecture we deal with exactly that.
Writing tests and scripts
In this section your are going to start writing tests but at the same time explore more features of Postman such as variables and environments for adding a dynamic behaviour to your requests, workflows and scripts for more advanced scenarios.
Let's write a simple test together and understand how everything works.
In this and the following lectures, you will be testing a real-world API and at the same time discover more and more feature of Postman.
We will take trello.com’s API (which is an online tool for managing lists and tasks) and create and test a few requests.
In this tutorial, I wanted to explain the difference between path params and query params and will exemplify this in Postman.
Now let's refactor the tests that we have written so far, so that they are easier to read.
Writing tests and scripts using variables
Variables allow you can create more dynamic requests.
Postman allows you to save repetitive information in a variable (which is very similar to what a variable is in any programming language). The main motivation for using variables would be to not repeat yourself.
This lectures explain what are global variables and what is their scope.
This lecture discusses environment variables, which are defined inside environments, are quite similar to global variables but they have a more narrower scope, which means they are more specialised.
Postman 6.2 introduces a new feature called sessions, which allows you and your team to work more effectively through the addition of session-specific collection, environment, and global variables also called session variables.
In this video, I will show you how to configure and use session variables.
Bulk editing has been removed in Postman 6.2 but in this video I will show you a way on how you can achieve the same result.
This lecture deals with pre-request scripts, which are similar to test scripts except as the name implies, pre-request scripts give you a chance to modify the request but before the actual HTTP request is made.
In case you are confused about the different variable types in Postman (global, collection, environment, local, data variables), this lecture is a good way to get an overview.
In this video i will show you how to setup different URLs for different servers / environments.
This lectures deals with debugging tests and scripts using the Postman Console.
Overview of the assertions section.
Let's understand what are the prerequisites for writing assertions.
Short introduction to the Chai JS assertion library used in Postman.
Let's make sure you have a good understanding of the basics when using the Chai Assertion Library.
Sometimes it is needed to test headers and cookies as well. This lecture deals with that.
Automatically running tests
In this short lecture I wanted to give you an overview of what you will learn in this entire section.
What we want to achieve is to run the entire collection (one request after another) and to get an overview of successful or failed tests. There are multiple ways to automate things and next I will give you an overview.
The collection runner is included in Postman and facilitates the first step toward automation. It is a useful way to run the entire collection or just a subset of it (by selecting a specific folder) without any other external tools.
Postman Monitors allows you to run your collection at regular intervals. While this is a Pro feature, you can still try it out with a free account (currently you can make 1000 API calls per month).
This video shows how you can update fro Newman v3 to Newman v4 and briefly presents what has changed.
This lecture explains how you can use a 3rd party reporter to generate nicer HTML reports.
This lecture looks into customizing HTML reports generated by Newman.
Running Newman with other CI servers / tools
In this lecture explains how you can use Gitlab CI to automate the execution of Postman tests. It will be using the official Newman Docker image.
This videos deals with running Postman tests in TeamCity with the help of Newman.
Short introduction to Docker.
Workflows and Scenarios
Running a request multiple times with different data sets
In this video I will show you how you can take advantage or pre-request scripts and workflows to submit the same request over and over again but with different data each time.
In this lecture you can learn the basics of using external data files to generate multiple iterations in Postman.
In this lecture continues the previous lecture and shows how to adapt the tests and scripts when using external data files and data variables.
In this lecture continues the previous lectures and shows more advanced use-cases for data variables and iterations.
Workspaces provide a way to organise Postman collections in order to make it easier to manage. Team workspaces allow you to collaborate on a number of collections with other team members in a seamless way.
Anytime somebody makes a change, this will be reflected in your Postman App almost instantly.
This lectures gives an overview on how you can share you Postman collection by using Git.
This lectures shows you hands-on how you can share you Postman collection by using Git.
In this lecture we will go over the basics of team workspaces, will create a team workspace, add a collection and invite others to collaborate on it.
This lectures explains the basics of teams, users, workspaces and permissions when using Team workspaces.
This lecture explains how to manage permissions when using Team Workspaces.
What is a mock server? A mock server is a fake API that simulates a server response, usually for testing purposes. A mock server allows you to mock any server or service that can be accessed by using HTTP.
Let's first understand what are the use-cases for using a mock server:
API Design, prototyping and development (1)
API testing (2)
Learn how to create your first mock server with Postman.
I have an Angular application which needs to data from the backend which is not ready yet. Using mock server I will demonstrate how to continue with the development.
As with any software tool, there are always limitation or disadvantages. So let's what a look at what you should be aware of.
File uploads (testing, automatic uploads, uploading multiple files)
In this lecture I will show you how to debug an upload script and demonstrate it with Postman which can also make requests encoded as "multipart/form-data" so that you can send also a file.
We continue the file upload project and move towards automatically running tests by using Newman.
We will also look into uploading multiple files in a single test-run.
Authentication / Authorization
Basic access authentication is a method in which the client provides a username and password while making a request to a protected resource.
Basic authentication is one of the simplest methods of implementing authentication.
I recently encountered it while dealing with microservices, so it is old and simple but still effective.