top of page
Writer's pictureReka Narayanasamy

Postman Data Driven Testing using CSV file and JSON file -Newman HTML Report and Jenkins

In this blog , we will learn how to do Data Driven Testing using CSV file and JSON file by passing 3 sets of data to register 3 user. Then we will generate Newman HTML report and run the Postman Collection in Jenkins .




Postman


Postman is a standalone software testing API (Application Programming Interface) platform to build, test, design, modify, and document APIs. It is a simple Graphic User Interface for sending and viewing HTTP requests and responses.


Why is Postman tool used?

Postman can be used to write functional tests, integration tests, regression tests, and more. Postman's Node. js-based runtime contains support for common patterns and libraries that you can use to build tests quickly.


What is Postman and how it works?


Postman enables you to create and send API requests. Send a request to an endpoint, retrieve data from a data source, or test an API's functionality. You don't need to enter commands in a terminal or write any code. Create a new request and select Send, and the API response appears right inside Postman.


API testing is a type of software testing that analyzes an application program interface (API) to verify that it fulfills its expected functionality, security, performance and reliability. The tests are performed either directly on the API or as part of integration testing.


Postman Collection

  • Postman Collection is called as suite

  • Each collection has many Requests

  • Every Request is called as 1 Test Case

  • Execute all the Test as one Suite by Test Runner



In this blog we will using the below website to do Data Driven Testing

https://reqres.in/

Post Request


Request Body/Request Payload

Request/api/register
{     "email": "eve.holt@reqres.in",     "password": "pistol" }

Response Body

Response200
{     "id": 4,     "token": "QpwL5tke4Pnpja7X4" }

Setting global variable endpoint

Endpoint is given in this format {{endpoint}} in URL

Here we pass the request body in Request Body -> JSON format

When we send the request , it gives us the Resposnse Body


Data Driven using json file , Here we have to give set of data in JSON format

reqres.json

[
  {
    "endpoint":"api/register/reka",
    "email":"reka@reqres.in",
    "password":"pondy"

  },
  {
    "endpoint":"api/register/raja",
    "email":"raja@reqres.in",
    "password":"france"

  },
  {
    "endpoint":"api/register/arthi",
    "email":"arthi@reqres.in",
    "password":"jersey"

  }
]



Data Driven using CSV file , Here we have to give set of data in EXCEL format


reqres.csv

endoint

email

password

api/register/reka

reka@reqres.in

plano

api/register/raja

raja@reqres.in

france

api/register/arthi

arthi@reqres.in

jersey

Since we are going to take data from csv file and json file , we have to pass request body as below in json format , where email and password will be taken from externa file


{
    "email": "{{email}}",
    "password": "{{pasword}}"
}




Here we have to give set of Tests Scripts in Tests for validating the response


Validation Points

  • Status Code

  • Header Presence

  • Header Content Type

  • Response body has email


Validation Scripts


//checking status code 
pm.test("Status code is 201", function () {
    pm.response.to.have.status(201);
});

//verify content type header is present or not
pm.test("verify content-Type header present",function(){
    pm.response.to .have.header("Content-Type");
})

//verify exact value of content type
pm.test("content-Type value",function(){
    pm.expect(pm.response.headers.get("Content-Type")).to.eql("application/json; charset=utf-8")
})

//checking for email 
tests["Verify Email"]=responseBody.has("email")



Then to run the Single Request multiple times for multiple users we have to Run Collection




  • Here we have to run the tests Iterations : 3 times as we have 3 users

  • Time gap between each request is Delay : 3 ms

  • We have to specify the type of File we are going to use JSON File

  • Click preview and check the data

  • Click Run

If you want to run only one Request


If u want to run multiple request in Single run


Preview of JSON file to be used for running the tests.


After you click run , you can see the test has run 3 times for each user and Validation of Response body is done for each user

You can view the summary and Results

Register success and created for 3 users

Status Code 201

Summary


Results

Register Success for multiple request







You can check in console the Request Body and Response Body for each user

Console Request Body




Console Response Body for Each user




Similarly you can do Data driven using CSV File , Preview the file and Execute the Test





Preview with CSV File



Lets see how to generate Newman report

To Export the postman collection , you can click export





To Share the Report you can click share then click API and copy the Postman API URL



To run the postman collection in command prompt , You can use the path of the Exported Postman Collection or Postman API URL



To Generate Newman HTML Report , run the command in command prompt




Reports will be saved in Newman folder





To Generate Newman HTML Report




Running the Postman collection in Jenkins

Select FreeStyle Project


Build Steps

newman run --disable-unicode C:\Users\Reka\Desktop\New\postman\postman_export_collections\DataDrivenReqRes.postman_collection.json -r htmlextra


Running Postman Collection In Jenkins

Build Success



Conclusion:


I hope, This article will help you to understand How to do Data base Testing in Postman and generate HTML Report and run the Postman Collection in Jenkins .

You can execute Get Request , Post Request , Put Request and Delete Request in Postman .


You must have got an idea on the topics explained in this blog. Lets explore more and learn New Topics.


Happy Learning





1,613 views

Recent Posts

See All
bottom of page