Postman Tutorial Part 53 – Extracting Value From XML Response in Postman
As a part of Postman Tutorial – End to End , in this post, we will learn how can we extract value from XML response in Postman.
Already, we learnt how can we send a XML and parameterized XML payload in Postman. In this post we will learn to extract values form XML response and assert.
Extracting or parsing XML response in Postman is little tricky. Let’s learn it.
Consider XML response as below :-
12 Amod Mahajan 1000 true 2021-01-01 2022-01-01 Lunch
First you need to convert above XML response to JSON.
var response = xml2Json(responseBody)
This “response” will be root node similar to tag in html DOM. Now we need to travel node by node. For example:- To reach node “firstName”, you need to start from root node -> created-booking – > booking -> firstname. It is similar to absolute XPath.
syntax:- rootNode[“node1”][“node2”][“node3”]
// Convert xml response to json response var response = xml2Json(responseBody); // We need to travel node to node and each node will be in [] var firstName= response["created-booking"]["booking"]["firstname"] console.log("Booking ID is : " + bookingID)
Let’s write whole code for above XML response :-
pm.test("Verify booking id is not null and an integer", function() { // Convert xml response to json response var response = xml2Json(responseBody); // We need to travel node to node and each node will be in [] var bookingID = response["created-booking"]["bookingid"] pm.expect(bookingID).to.not.equal(null); // Since type of bookingID is string to converting to int first. // You can know type of variable using typeof(var) method pm.expect(parseInt(bookingID)).to.be.a("number"); }); pm.test("Verify booking is created with expected values passed in request", function() { var jsonReq = xml2Json(pm.request.body.raw); var response = xml2Json(responseBody); pm.expect(jsonReq["booking"]["firstname"]).to.eql(response["created-booking"]["booking"]["firstname"]); pm.expect(jsonReq["booking"]["lastname"]).to.eql(response["created-booking"]["booking"]["lastname"]); pm.expect(jsonReq["booking"]["totalprice"]).to.eql(response["created-booking"]["booking"]["totalprice"]); pm.expect(jsonReq["booking"]["depositpaid"]).to.eql(response["created-booking"]["booking"]["depositpaid"]); pm.expect(jsonReq["booking"]["bookingdates"]["checkin"]).to.eql(response["created-booking"]["booking"]["bookingdates"]["checkin"]); pm.expect(jsonReq["booking"]["bookingdates"]["checkout"]).to.eql(response["created-booking"]["booking"]["bookingdates"]["checkout"]); pm.expect(jsonReq["booking"]["additionalneeds"]).to.eql(response["created-booking"]["booking"]["additionalneeds"]); }) pm.test("Verify booking is created with expected values from environment file", function() { var response = xml2Json(responseBody); pm.expect(pm.environment.get("firstname")).to.eql(response["created-booking"]["booking"]["firstname"]); pm.expect(pm.environment.get("lastname")).to.eql(response["created-booking"]["booking"]["lastname"]); pm.expect(pm.environment.get("totalprice")).to.eql(response["created-booking"]["booking"]["totalprice"]); pm.expect(pm.environment.get("depositpaid")).to.eql(response["created-booking"]["booking"]["depositpaid"]); pm.expect(pm.environment.get("checkin")).to.eql(response["created-booking"]["booking"]["bookingdates"]["checkin"]); pm.expect(pm.environment.get("checkout")).to.eql(response["created-booking"]["booking"]["bookingdates"]["checkout"]); pm.expect(pm.environment.get("additionalneeds")).to.eql(response["created-booking"]["booking"]["additionalneeds"]); })
Import above example collection from here.
If you have any doubt, feel free to comment below.If you like my posts, please like, comment, share and subscribe.#ThanksForReading
#HappyLearning