It is possible to configure Postman to Chain Multiple Requests together in order to "Pass" Values from an earlier response into the Body of another call.
Info | ||
---|---|---|
| ||
Copy this collection https://www.getpostman.com/collections/84bd69624f94b6457011 | ||
- Configure your collection
- Perform any functions required to be performed on every single call as part of the collection
Code Block language js theme Midnight firstline 1 title Collection Configuration Script linenumbers true //Demonstrate a function call to confirm that the response is a 200 Response/ Successful response. pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); //All responseses are required to be converted to JSON in Order to be read, and Passed through as values. //This is perfermed on an individual call level, but outputting this as a JSON Response in your developer tools will help identify the correct required variable var responseJson = xml2Json(responseBody); console.log(responseJson);
Configure your Login Procedure and assign Variables required
Code Block language js theme Midnight firstline 1 title Login "Tests" Code linenumbers true //In Order to refer to the JSON Response the Variable must be declared on a Local Request Level. var responseJson = xml2Json(responseBody); //Set a Global Variable for Session Information. //Variables can also be declared on a Environment & Collection level //pm.environment.set //pm.collection.set //pm.globals.set("variable_key", "variable_value") //variable_value == variable.path.element //variable == responseJson['s:Envelope']['s:Body'] //path == LoginResponse.LoginResult //element == AccountID pm.globals.set("AccountID",responseJson['s:Envelope']['s:Body'].LoginResponse.LoginResult.AccountID); pm.globals.set("DistributorID",responseJson['s:Envelope']['s:Body'].LoginResponse.LoginResult.DistributorID); pm.globals.set("Expires",responseJson['s:Envelope']['s:Body'].LoginResponse.LoginResult.Expires); pm.globals.set("Key",responseJson['s:Envelope']['s:Body'].LoginResponse.LoginResult.Key); pm.globals.set("UserID",responseJson['s:Envelope']['s:Body'].LoginResponse.LoginResult.UserID);
Subsequent calls can now use information from the response and output this into subsequent calls
Code Block language xml theme Midnight firstline 1 title Find Location Body linenumbers true <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cha="http://www.opensys.com.au/ChainIT/4.0/ChainITDataServices"> <soapenv:Header/> <soapenv:Body> <cha:FindLocation> <cha:session> <cha:AccountID>{{AccountID}}</cha:AccountID> <!--Mandatory:--> <cha:DistributorID>{{DistributorID}}</cha:DistributorID> <!--Mandatory:--> <cha:Expires>{{Expires}}</cha:Expires> <!--Mandatory:--> <cha:Key>{{Key}}</cha:Key> <!--Mandatory:--> <cha:UserID>{{UserID}}</cha:UserID> <!--Mandatory:--> </cha:session> <cha:countryCode>AU</cha:countryCode> <!--Mandatory:--> <cha:searchValue>3131</cha:searchValue> <!--Mandatory:--> </cha:FindLocation> </soapenv:Body> </soapenv:Envelope>
Code Block language xml theme Midnight firstline 1 title ConsignmentTrackingSearch Body linenumbers true <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cha="http://www.opensys.com.au/ChainIT/4.0/ChainITDataServices"> <soapenv:Header/> <soapenv:Body> <cha:ConsignmentTrackingSearch> <cha:session> <cha:AccountID>{{AccountID}}</cha:AccountID> <!--Mandatory:--> <cha:DistributorID>{{DistributorID}}</cha:DistributorID> <!--Mandatory:--> <cha:Expires>{{Expires}}</cha:Expires> <!--Mandatory:--> <cha:Key>{{Key}}</cha:Key> <!--Mandatory:--> <cha:UserID>{{UserID}}</cha:UserID> <!--Mandatory:--> </cha:session> <cha:consignmentDate>28/11/2017</cha:consignmentDate> <!--Mandatory:--> </cha:ConsignmentTrackingSearch> </soapenv:Body> </soapenv:Envelope>
Code Block language xml theme Midnight firstline 1 title GetQuote3 linenumbers true <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cha="http://www.opensys.com.au/ChainIT/4.0/ChainITDataServices"> <soapenv:Header/> <soapenv:Body> <cha:GetChargeQuote3> <cha:session> <cha:AccountID>{{AccountID}}</cha:AccountID> <!--Mandatory:--> <cha:DistributorID>{{DistributorID}}</cha:DistributorID> <!--Mandatory:--> <cha:Expires>{{Expires}}</cha:Expires> <!--Mandatory:--> <cha:Key>{{Key}}</cha:Key> <!--Mandatory:--> <cha:UserID>{{UserID}}</cha:UserID> <!--Mandatory:--> </cha:session> <cha:shipperID>117810</cha:shipperID> <cha:effectiveDate>2018-08-27</cha:effectiveDate> <cha:senderLocation>VILLAWOOD</cha:senderLocation> <cha:senderPostcode>2163</cha:senderPostcode> <cha:senderCountryCode>AU</cha:senderCountryCode> <cha:senderIsResidential>0</cha:senderIsResidential> <cha:receiverAddress1>1 Warehouse Road</cha:receiverAddress1> <cha:receiverAddress2/> <cha:receiverLocation>MELBOURNE</cha:receiverLocation> <cha:receiverPostcode>3000</cha:receiverPostcode> <cha:receiverCountryCode>AU</cha:receiverCountryCode> <cha:receiverIsResidential>0</cha:receiverIsResidential> <cha:items>1</cha:items> <cha:weight>5</cha:weight> <cha:volume>0.01</cha:volume> <cha:time>0</cha:time> <cha:distance>0</cha:distance> <cha:serviceList/> <cha:containsDGs>0</cha:containsDGs> </cha:GetChargeQuote3> </soapenv:Body> </soapenv:Envelope>
...