Hello, I have a series of test steps which pass the response to the next. I need to take a full enriched response and remove the last '}' so I can append additional request parameters for the next test request. Is there an easy way to do this? maybe via groovy?
So I am wanting to pull in the response from OpenCalaisRequest#Response and to run the next test step, then add additional parameters. So the next test input would look something like the below, however, I need to strip or remove the final json bracket '}' in order to add the additional finchRequest parameters for it to be valid json:
"${OpenCalaisRequest#Response}",
"finchRequest": {
"finchOutput":false,
"documentSentiment": true,
"instanceSentiment": true,
"sentimentModel": "financial3",
"entities":["*"],
"salience":true,
"salienceModel":"News",
"languageCode":"en"
}
}
I assume I would have to add an assertion script to OpenCalaisRequest test step to manipulate the input for the next test step which includes finchRequest parameters? Any help is appreciated.
Solved! Go to Solution.
The code snippet, which I gave earlier, it shouldn't go into property transfer step,
we have to insert a groovy step after your REST request call and paste that code, do necessary modifications as per your project(Ex: Name changing etc..)
Code:
//import library to parse JSON
import groovy.json.JsonSlurper
def response = testRunner.testCase.getTestStepByName("OpenCalaisRequest").getPropertyValue("Response")
def responseJSON = new JsonSlurper().parseText(response)
//verify the slurper isn't empty
assert!(responseJSON.isEmpty())
testRunner.testCase.setPropertyValue("finchresponseJSON",responseJSON.toString().replaceAll("\\{", "\n"))
Use "finchresponseJSON" from testcase level into your next request. it looks like ${#TestCase#finchresponseJSON}, so it passes your whole JSON response without "{ and }"
Hi @lfales
We can achieve this by below groovy snippet, you can copy "finchresponseJSON" to your next request without "{ or }" .
Code:
//import library to parse JSON
import groovy.json.JsonSlurper
def response = testRunner.testCase.getTestStepByName("OpenCalaisRequest").getPropertyValue("Response")
def responseJSON = new JsonSlurper().parseText(response)
//verify the slurper isn't empty
assert!(responseJSON.isEmpty())
def finchresponseJSON =responseJSON.toString().replaceAll("\\{", "\n")
@lfales :
You can try below piece of code to remove last "}" from your response:
str = str.substring(0, str.length() - 1);
Let me know if more help is required
Click "Accept as Solution" if my answer has helped,
Remember to give "Kudos" 🙂 ↓↓↓↓↓
When I attempt to add this snipet to the property transfer for property 'text', the transferred values gives back the following: [Use bracket notion ['my prop'] if your property contains blank characters. position: 2]. Really new to property transfers so maybe applying this incorrectly?
The code snippet, which I gave earlier, it shouldn't go into property transfer step,
we have to insert a groovy step after your REST request call and paste that code, do necessary modifications as per your project(Ex: Name changing etc..)
Code:
//import library to parse JSON
import groovy.json.JsonSlurper
def response = testRunner.testCase.getTestStepByName("OpenCalaisRequest").getPropertyValue("Response")
def responseJSON = new JsonSlurper().parseText(response)
//verify the slurper isn't empty
assert!(responseJSON.isEmpty())
testRunner.testCase.setPropertyValue("finchresponseJSON",responseJSON.toString().replaceAll("\\{", "\n"))
Use "finchresponseJSON" from testcase level into your next request. it looks like ${#TestCase#finchresponseJSON}, so it passes your whole JSON response without "{ and }"
@lfales :
Not in Properties transfer, you can use this either in Script assertion or adding a groovy script.
Click "Accept as Solution" if my answer has helped,
Remember to give "Kudos" 🙂 ↓↓↓↓↓
I was able to add a groovy step with the code and setup to pass to next REST call but I don't want to remove all the '{' in the OpenCalaisResponse I only want to remove the last '}' so I can add a comma and the additional finchRequest parameters. The response we are parsing is fairly long ~575 lines and some longer. How might adjust the script to remove that last '}' in the previous response?
Hey @lfales
As Himanshu mentioned, it removes last character (In your case it is "}") and adding "," to it. And please add this to a groovy script not in "Property Transfer Step"
Code:
def response = testRunner.testCase.getTestStepByName("OpenCalaisRequest").getPropertyValue("Response")
testRunner.testCase.setPropertyValue("finchresponseJSON",(response.toString().substring(0, response.toString().length() - 1)+ ","))
Use "finchresponseJSON" from testcase level into your next request. it looks like ${#TestCase#finchresponseJSON}.
User | Count |
---|---|
6 | |
5 | |
4 | |
2 | |
1 |
Subject | Author | Latest Post |
---|---|---|