Introduction
Postman is a widely used API client that enables developers to test APIs and verify responses efficiently. While many developers use Postman for basic API requests, the platform offers a wide range of advanced features that can significantly simplify and accelerate the API testing process.
In this article, we will explore several advanced Postman techniques that help streamline API testing and improve productivity. These features include dynamic URLs, token-based authentication using variables, sending files in request bodies, using randomly generated variables, and managing path and query parameters effectively.
Prerequisites
Before reading this article, it is recommended that you have:
- Basic knowledge of APIs
- Basic familiarity with Postman
Advanced Features Covered
In this article, we will explore the following advanced Postman features:
- Dynamic URLs using environments
- Token-based authentication using variables
- Sending files in request bodies
- Randomly generated variables for test data
- Path parameters
- Query parameters
Each of these features helps make API testing more flexible, maintainable, and efficient.
Dynamic URLs Using Environments
When testing APIs, many developers paste the full URL directly into the request input field. However, this approach is not recommended. The best practice is to store the base URL in a Postman environment variable and reference it within requests.
This approach is particularly useful when switching between environments, such as local development, staging, or production. Instead of modifying every request URL, you only need to update the base URL in the environment.
Steps to Create an Environment Variable
- In Postman, go to the top left section of the sidebar.
- Click the plus (+) icon.
- Select Environment.
- Create a new environment.
You will see a table where you can define variable–value pairs.
Example:
Once this variable is defined, instead of writing the full URL such as:
http://localhost:3003/auth/login
you can write:
{{BASE_URL}}/auth/login
Now, if the backend server changes (for example switching from local development to a remote server), you only need to update the BASE_URL variable.
Token-Based Authentication Using Variables
Many developers manually copy the access token from the login response and paste it into every authenticated request. This approach is inefficient and prone to errors.
A better approach is to store the access token in an environment variable automatically after login. Once stored, it can be reused in all authenticated requests.
Steps
- Open the Scripts section in the Postman request page.
- Add a script to extract the token from the response.
Example:
pm.environment.set("ACCESS_TOKEN", pm.response.json().accessToken);
This script saves the access token into the environment variable ACCESS_TOKEN.
If you work with multiple roles (for example, admin and user), you can store multiple tokens:
- ACCESS_TOKEN_ADMIN
- ACCESS_TOKEN_USER
Using the Token in Requests
In the Authorization section of your request:
Choose Bearer Token
Use the variable:
{{ACCESS_TOKEN_ADMIN}}
Now, whenever you log in again and receive a new token, the variable updates automatically. There is no need to manually copy and paste tokens.
Sending Files in the Request Body
Files cannot be sent as part of a JSON request body in the raw section. Instead, Postman provides support for file uploads using form-data.
Steps to Send Files
- Go to the Body tab.
- Select form-data.
- You will see two columns:
- Key
- Value
In form-data, values can be either:
- Text
- File
There is a small dropdown selector in the key column where you can switch between Text and File.
If you choose File, Postman will allow you to:
- Upload a file from your system
- Select a file from Postman Cloud
For example, a request body might contain:
This format allows the backend API to receive both files and additional fields in the same request.
Randomly Generated Variables for Request Data
During API testing, developers often reuse the same data repeatedly, such as the same name, email, or city. This can create problems when testing systems that require unique values.
Postman provides dynamic variables that automatically generate random data for each request.
Examples include:
- $randomPhoneNumber
- $randomIP
- $randomBankAccount
- $randomEmail
- $randomFirstName
Example request body:
Using dynamic variables helps generate unique test data automatically, making it easier to test user creation, registrations, and other API operations.
You can find a full list of dynamic variables in the Postman documentation.
Path Parameters
Many APIs use path parameters, typically for resource identifiers such as IDs.
A common approach is to hardcode the ID directly in the URL. However, this makes testing less flexible.
For example:
/users/fac9a13a-3b01-4052-9965-fb2479b3150e
Instead, you can define the parameter using a variable - using colon and name of variable:
/users/:id
Postman will automatically create an input field in the Path Variables section where you can enter the value of id.
This makes it easy to test different resource IDs without modifying the request URL manually.
Query Parameters
Query parameters are commonly added manually in the URL using a question mark (?) followed by key–value pairs.
Example:
/users?role=admin&page=2
However, manually editing URLs can become difficult when multiple parameters are involved.
Postman provides a Query Params section that allows you to define query parameters using key–value pairs.
Example:
Postman automatically constructs the request URL for you. This approach improves readability and makes parameter management easier.
Conclusion
Postman provides powerful tools that go beyond simple API request testing. By using advanced features such as environment variables, automated token management, dynamic variables, and structured request parameters, developers can significantly improve the efficiency and maintainability of their API testing workflows.
In this article, we explored several practical techniques that simplify API testing, particularly for backend developers working with authentication, dynamic data, and flexible request configurations.
Mastering these features can greatly enhance your development and debugging process.
Contact
If you have any questions, feel free to reach out:
LinkedIn:
https://linkedin.com/in/dawit-girma-7b8867228/
Email:
GitHub:










Top comments (0)