In web development, handling file downloads is a major requirement for various APIs. Postman is a powerful tool used for API testing and provides the process of testing file uploads. In this article, we will see how we can test file downloads with the help of Postman.
Prerequisites:
- Node and NPM/Yarn installed.
- Knowledge of Node JS and Express JS
- Understanding of APIs.
- Overview of POSTMAN
Table of Content
Have you ever wondered how seamlessly files travel from the virtual world to your device? Behind this digital symphony lies a crucial process – testing file downloads. In the field of API testing, Postman emerges as a powerful tool, and understanding how to test file downloads with it is a valuable skill. Let’s unravel the mystery together.
Postman’s Built-in Functionalities
- Send a Request: Use the HTTP request method (usually GET) to the API endpoint that provides the file for download.
- Save Response as Binary: In the Postman interface, navigate to the ‘Body’ section of the response, click ‘Save Response’, and choose the binary option. Save the file with the appropriate extension.
- Validate Download: Manually open the downloaded file and verify its content or integrity.
Steps to Create Project for testing File Download:
Step 1: Create a new directory for your project. Open a terminal and run the following commands:
mkdir express-file-download-example
cd express-file-download-example
Step 2: Run the following command to initialize a new Node.js project and create a package.json file.
npm init -y
Step 3: Install Express by running the following command.
npm install express
Step 4: Create a new file named app.js in your project directory.
Project Structure:
The updated dependencies in package.json file will look like:
"dependencies": {
"express": "^4.18.2"
}
In Postman, you can save the response manually. However, in a real-world scenario, you might want to automate this process using Postman scripts or additional tools. This example provides a basic structure for testing file downloads.
Step 5: Add following code in App.js:
//app.js const express = require( "express" );
const app = express(); app.get( "/download" , (req, res) => {
// Simulate file content for testing
const fileContent = "This is the content of the downloaded file.\n" ;
res.setHeader(
"Content-Disposition" ,
"attachment; filename=example_document.txt"
);
res.setHeader( "Content-Type" , "text/plain" );
res.send(fileContent);
}); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server is running on http: //localhost:${PORT}`);
}); |
Step 6: Open a terminal and run the following command to start your Express server.
node app.js
Your server should start and listen on port 3000.
Explanation:
This Node code uses the Express framework to set up a server. It responds to GET requests at the ‘/download’ endpoint by sending a simulated text file for download. The server sets headers to indicate that the response should trigger a file download, with the filename ‘example_document.txt’. It runs on either the specified port from the environment variable or defaults to port 3000, and a message is logged to the console upon successful startup. In summary, the code establishes a basic server serving a downloadable text file at a specific endpoint.
Testing File Download API using Postman:
Step 1: Open the Postman application or use the Postman web version (https://www.postman.com/).
Step 2: Create a new collection named GFG by clicking + icon on the collection section.
Step 3: Now click on the + icon in GFG to create a new GET request.
Step 4: Set the request type to GET and Enter the URL:
http://localhost:3000/download
Output: