Ask a Question

How to get Endpoint from the Request

SOLVED
ranujn
Contributor

How to get Endpoint from the Request

I wanna to get full Endpoint from the request. I passing endpoints dynamically for each step that I need to record it.

I tried below options to get complete url (Constant one + dynamically passed) but its just giving me only the constant endpoint

1) def endpoint = (testRunner.testCase.testSteps["GET"].testRequest.response.rawResponseData)
new String(endpoint)

The Output is something like this - [B@7f0b1367

2) def endpoint = (testRunner.testCase.getTestStepByName("GET").getTestRequest().getResponse().getRawRequestData())

new String(endpoint)

The output is something like this - [B@38b1c3e8
3) endpoint = testRunner.testCase.getTestStepByName("GET").getHttpRequest().getEndpoint()

Output is something like this - https://customer-tst.api-pa.com

4) endpoint = context.testCase.getTestStepByName('GET').getPropertyValue("Endpoint")

Output is something like this - https://customer-tst.api-pa.com

So basically I am failed to get complete URL. Can someone please help me to get a solution for this.

17 REPLIES 17

When I started to fetch the value like this only but I tried this with the Response specific value, It started to throw me the error 

 

Script I use to get the response - GenerateToken#Response#$['data']['token']

 

The error I got is attached here. It seems like a syntax error which can work in the REST request parameter but not in the groovy script.

 

 

 

 

 

 

 

avidCoder
Super Contributor

Please attach the error you got.

This is the error message I got :

Thu Jan 24 14:02:27 AEDT 2019:ERROR:org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script3.groovy: 29: unexpected token: data @ line 29, column 126.
'${GenerateToken#Response#$['data']['to
^
org.codehaus.groovy.syntax.SyntaxException: unexpected token: data @ line 29, column 126.

avidCoder
Super Contributor

What are you trying to achieve here?

 

${GenerateToken#Response#$['data']['to

 

I suppose, GenerateToken is the 'Request Name' and you are fetching token out of them. Could you please share the xml/JSON from which you are trying to fetch the token?

Here is the response in JSON format

 

{
"data" : {
"token" : "sidayf8r4jhrdsuf97adif09rujkfhw.8regiu6sy9s7d6fsa87s87439ykhkhfjdsbfsdf"
}
}

avidCoder
Super Contributor

Ok. Then, you can try this code:-

 

//Conside API_Name is name of the testStep.
def response = context.expand('${API_Name#Response}')
def token = response.data.token

I tried below code

 

//Conside API_Name is name of the testStep.
def response = context.expand('${API_Name#Response}')
def token = response.data.token

but it is also throwing an error message:-

 

Thu Jan 31 14:46:44 AEDT 2019:ERROR:groovy.lang.MissingPropertyException: No such property: data for class: java.lang.String

This error message is coming for the last line def token = response.data.token

 

avidCoder
Super Contributor

@ranujn 

 

You gave me this response right?

 

{
"data" : {
"token" : "sidayf8r4jhrdsuf97adif09rujkfhw.8regiu6sy9s7d6fsa87s87439ykhkhfjdsbfsdf"
}
}

And I provided the code based on that. If you are getting the error. In that case, "data" attribute is not there in your response. You can pass the reponse to JsonSlurper. please ad few more lines of code:-

 

 

 

import groovy.json.JsonSlurper

def slurper = new groovy.json.JsonSlurper()
def response = context.expand('${API_Name#Response}') def slurp = slurper.parseText(response)
def token = slurp.data.token //Considering "data" and "token" as JSON attributes.

 

 

cancel
Showing results for 
Search instead for 
Did you mean: