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.
- Configure your collection
- Perform any functions required to be performed on every single call as part of the collection
- Collection Configuration Script
//Demonstrate a function call to confirm that the rospnse 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
- Collection Configuration Script
//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
- Collection Configuration Script
<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>
Collection Configuration Script<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>