Comparison of Two Property Values In Two Different Properties Steps
Hey,
I created a test a long time ago that always passed - essentially I had two REST requests and I wanted to compare an attribute value from each of these REST requests to confirm they were identical. I couldn't find any OTB functionality to support a comparison of results from separate test steps so I used a bit of groovy. HOWEVER - my test always passes and I've realised its actually incorrect and I don't know why - so would like some guidance please?
OK - my test case hierarchy is as follows:
REST1 step
PropertyTransfer (grabs GUIDProcCode from REST1 result and passes it to Properties1 step
Properties1 step (holds Propertyname= GUIDProcCode, Propertyvalue=Xs45-cvs78)
REST2 step
PropertyTransfer (grabs WEIRDGUIDCode from REST2 result and passes it to Properties2 step
Properties2 step (holds Propertyname= WEIRDGUIDCode, Propertyvalue=Xs45-cvs78)
GroovyStep - details as follows:
def fn = testRunner.testCase.getPropertyValue('GUIDProcCode') def fn2 = testRunner.testCase.getPropertyValue('WEIRDGUIDCode') assert fn == fn2, "values are identical, SoapUI is great"
Now I always thought the test executed fine cos tbh i could see the groovy step passed and I could also see the values written to the 2 different properties steps were identical.
HOWEVER - I've just started looking at this script cos I need to do something similar and I've realised this groovy step ISN'T doing what I think it's doing.
When I run the groovy debugger I noticed it saying
fn (java.lang.Object) = null
fn2 (java.lang.Object) = null
so I'm guessing its not finding those property values after all!
I was wondering about the following lines
def fn = testRunner.testCase.getPropertyValue('GUIDProcCode') def fn2 = testRunner.testCase.getPropertyValue('WEIRDGUIDCode')
first thing I notice is that I'm not specifying WHICH Properties steps - the GUIDProcCode is in Properties 1 step, the WEIRDGUIDCode is actually stored in Properties 2 step. I did try storing them in the one step, but the script didn't execute properly and SmartBear told me I had to split them out due to the sequence of execution.
I've had a read of various soapui.org pages and they dont appear to state I need to specify the actual Properties step name, however groovyguy helped me out yonks ago and gave me some code as follows:
def propertiesStep = context.testCase.testSteps["Properties"];
and I tried altering the script to the following:
def propertiesStepGUIDProcCode = context.testCase.testSteps["Properties1"]; def fn = testRunner.testCase.getPropertyValue('GUIDProcCode') def propertiesStepWEIRDGUIDCode = context.testCase.testSteps["Properties2"]; def fn2 = testRunner.testCase.getPropertyValue('WEIRDGUIDCode') assert fn == fn2, "values are identical, SoapUI is great"
And it didn't work! not surprising considering my coding skills
Can anyone advise? am I totally on the wrong track here? am mI missing somethign totally stupid?
Many thanks to all!
richie
Hi palatha3,
It's always better to address license questions to our Support Team. Could you please contact them and explain the issue you have? You can reach out to them here: