cancel
Showing results for 
Search instead for 
Did you mean: 

Property Transfer: HTTP response header

Highlighted
New Contributor

Property Transfer: HTTP response header

Hi all,

I have been trying to use the header of a http response of a test step A as a parameter for the next test stepB.

I tried to update a request parameter of A by treating the response with a groovy script, and also by means of a property transfer...

Somebody to bring light to me?

Thanks in advance
8 REPLIES 8
Highlighted
Contributor

Re: Property Transfer: HTTP response header

Not sure if this is what you're looking for:

//Takes one of the elements of the response Header
def value = testRunner.testCase.testSteps["Request"].testRequest.response.responseHeaders["Set-Cookie"]

//Read this value into a parameter
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
groovyUtils.setPropertyValue("Properties", "LTPA", value.toString())

You can then use this parameter in later test steps.
Highlighted
New Contributor

Re: Property Transfer: HTTP response header

It worked, thanks! 
Highlighted
Not applicable

Re: Property Transfer: HTTP response header

It worked for me, too.  But I want to make sure I understand how this is working.  I had to change the string "Properties" to be the string name of the request in which I wanted to set the property.  So are the first two parameters to the setPropertyValue() method actually requestName, then propertyName?

Also, what is "LTPA"?  It works, but I don't know why.  I was trying to set the Cookie HTTP Request Header parameter, and it worked, but I don't understand how I was supposed to know "LTPA" would do that.

Actually, I had expected that by checking the box for "Maintain HTTP Session" that none of this would be necessary.  But checking that box did not cause the first response's 'Set-Cookie' value to be used in the second request's 'Cookie' attribute in the HTTP request header.  Is that an incorrect assumption?  if so, what does that checkbox do?

(I'm using an evaluation verions of SOAPUI Pro 3.5 Build dist-88-2010-03-02)

Thanks.

def cookie_vals = testRunner.testCase.getTestStepByName("Request1").httpRequest.response.responseHeaders["Set-Cookie"]
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
groovyUtils.setPropertyValue("Request2", "LTPA", cookie_vals.toString())
Highlighted
Contributor

Re: Property Transfer: HTTP response header

Sorry, in retrospect I should have probably been much clearer in my reply.

Yes, you're spot in with your belief of what the two parameters are.
In the example below I'm storing the read in value to a Property rather than using it directly in a Request.  I have my Properties Test Step named "Properties" and one of the Properties within this is named "LTPA".  It is to this so named property that the read in value will be stored.
Highlighted
Occasional Contributor

Re: Property Transfer: HTTP response header

First off, thank you.

I was able to transfer and id from the POST Header to a GET in the test case. The only remaining problem is that it inserts the id into the GET with [] around it. So when I try to actually run the GET, it fails because its looking for [idvalue] instead of just "idvalue".
Highlighted
Visitor

Re: Property Transfer: HTTP response header

@bennythedroid : As you are getting value with square bracket [], it means that it is a array of string, can you please have a try with using index, like:

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
groovyUtils.setPropertyValue("Request2", "LTPA", cookie_vals.[0])

Highlighted
Community Hero

Re: Property Transfer: HTTP response header

Please avoid duplicate postings. And there is no point in doing so.


Regards,
Rao.
Highlighted
New Contributor

Re: Property Transfer: HTTP response header

@bhajanmehta 
I'm also facing a similar issue.


def value = testRunner.testCase.testSteps["GetToken"].testRequest.response.responseHeaders["Authorization"]
def tc = testRunner.testCase.testSuite.getTestCaseByName("JTY")
tc.setPropertyValue("_csrf", "$value")

 

I'm able to get the value to the required property but in [ ]. 
Can someone please help me in how to get rid of those square brackets from value.

New Here?
Join us and watch the welcome video:
Announcements
Top Kudoed Authors