cancel
Showing results for 
Search instead for 
Did you mean: 

groovy script to take session id from login test case and use it in other cases?

SOLVED
Highlighted
New Contributor

groovy script to take session id from login test case and use it in other cases?

 
1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Community Hero

'

In the groovy script, the previous step response can be read using below statement. Assuming the step name is step1, rename as per your need. Below script gets the sessionId and store it at test suite level (assuming that sessionId might needed across the test suite, if you want it for all suites, then you can even store it at project level, up to you).

 

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

holder = groovyUtils.getXmlHolder( "step1#Response" )

def sessionId = holder.getNodeValue( "//*:result/*:Session" )

context.testCase.testSuite.setPropertyValue('SESSION_ID', sessionId)

 

Next step is to use the stored sessionId in various places: Property Expansion

In the other steps except groovy:

      ${#TestSuite#SESSION_ID}

In the groovy step:

     context.expand('${#TestSuite#SESSION_ID})



Regards,
Rao.

View solution in original post

4 REPLIES 4
Highlighted
Community Hero

The question has to be more precise, what steps are being used, if possible with a sample request / response involved and which values needs to be extracted etc.,



Regards,
Rao.
Highlighted
New Contributor

Hi,

I need to extract the session id field from the soap response and use it in other soap requests. I need a groovy script which does this automatically

 

<ns1:result>
<ns1:Session>STVpJAutmzqKZ1PL5gaWQjqlAUgfKqodIm99pZkPz0kaXv_3coSUoGxYhpXpmUAUgd_t0Ub8hPa0MKjMvFFJ49qyDrGUWs3fFTBmA7Zq1hT6JCB_BoyD3ikS4NOT1e3aekZg6Cc41B5Id2VyZagnaR7xVAh7B9c9aSbn3tWOGOL_5pKql3PgneM_PIZYCfhtPIvREMxj2tp_83GLZD2CjzH_t_8kSMm9iOK8IQ2AMpVk1ZkjaKRk6WyxTqSIrshS</ns1:Session>
</ns1:result>

 

Highlighted
Community Hero

'

In the groovy script, the previous step response can be read using below statement. Assuming the step name is step1, rename as per your need. Below script gets the sessionId and store it at test suite level (assuming that sessionId might needed across the test suite, if you want it for all suites, then you can even store it at project level, up to you).

 

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

holder = groovyUtils.getXmlHolder( "step1#Response" )

def sessionId = holder.getNodeValue( "//*:result/*:Session" )

context.testCase.testSuite.setPropertyValue('SESSION_ID', sessionId)

 

Next step is to use the stored sessionId in various places: Property Expansion

In the other steps except groovy:

      ${#TestSuite#SESSION_ID}

In the groovy step:

     context.expand('${#TestSuite#SESSION_ID})



Regards,
Rao.

View solution in original post

Highlighted
Community Hero

You may also refer documentation for more details on Property Expansion here.
https://www.soapui.org/scripting---properties/property-expansion.html

Here is another resource on some code snippets.
https://www.soapui.org/scripting-properties/tips-tricks.html


Regards,
Rao.
New Here?
Join us and watch the welcome video:
Announcements
TechCorner Leaderboard
Want a fun and easy way to learn ReadyAPI and show off your skills? Try solving weekly TechCorner challenges and get into the Leaderboard!


Challenge Status

Get a full Raw JMS request

Participate!

Compare an expected JSON value and actual response in Events

Participate!

Fetch value/data from JSON response using Groovy Script

See replies!

Get data from Petstore and add it to Excel sheets

Participate!
Top Kudoed Authors