During the development of my project we had to develop multiple REST endpoints.
A call to each of these REST endpoints needed to be authenticated by passing an oauth-token in their header.
Post development we had to change the core REST endpoints code to incorporate design changes.
In such situations it is necessary to do a quick regression test before pushing the code to QA.
In the following groovy snippet in soap ui we do the following:
1. Get the oauth token from the first test step
2. Parse the JSON reponse (refer to my previous post)
3. Iterate through each of the test steps and set the headers for each of them
A call to each of these REST endpoints needed to be authenticated by passing an oauth-token in their header.
Post development we had to change the core REST endpoints code to incorporate design changes.
In such situations it is necessary to do a quick regression test before pushing the code to QA.
In the following groovy snippet in soap ui we do the following:
1. Get the oauth token from the first test step
2. Parse the JSON reponse (refer to my previous post)
3. Iterate through each of the test steps and set the headers for each of them
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import groovy.json.JsonSlurper; | |
import com.eviware.soapui.support.types.StringToStringMap; | |
//get the response from the test step that makes the call to get the authentication token | |
def authResponse = testRunner.testCase.getTestStepByName("GetToken").getPropertyValue("response"); | |
//parse the json response | |
def authResponseJSON = new JsonSlurper().parseText(authResponse); | |
//access the access_token property in the respose | |
def oauthToken = authResponseJSON.access_token; | |
//create a new empty map for headers | |
def headers = new StringToStringMap(); | |
//create a key value pair in the headers mao | |
headers.put("OAuth-Token", oauthToken); | |
//obtain the list of test steps | |
def steps = context.testCase.getTestStepList(); | |
//iterate thru each of the test steps and set the oauth token to each of the steps | |
steps.each{ | |
// This block will loop through the test steps and set headers for each of them | |
if (it.name != 'GetToken' && it.name != 'TransferOauthToken') | |
it.testRequest.setRequestHeaders(headers); | |
} |