Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
titleNote

Copy this collection https://www.getpostman.com/collections/84bd69624f94b6457011




  1. Configure your collection
  2. Perform any functions required to be performed on every single call as part of the collection

  3. Code Block
    languagejs
    themeMidnight
    firstline1
    titleCollection Configuration Script
    linenumberstrue
    //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);


  4. Configure your Login Procedure and assign Variables required


  5. Code Block
    languagejs
    themeMidnight
    firstline1
    titleLogin "Tests" Code
    linenumberstrue
    //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);


  6. Subsequent calls can now use information from the response and output this into subsequent calls


    1. Code Block
      languagexml
      themeMidnight
      firstline1
      titleFind Location Body
      linenumberstrue
      <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
      languagexml
      themeMidnight
      firstline1
      titleConsignmentTrackingSearch Body
      linenumberstrue
      <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
      languagexml
      themeMidnight
      firstline1
      titleGetQuote3
      linenumberstrue
      <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>


...