Solved
Forum Discussion
HimanshuTayal
6 years agoCommunity Hero
Hi nmrao ,
My Request is of REST Type and below is the sample code, currently i am using Thread. sleep, but instead i want to wait till my request gets run.
def runStatus = appAssignStep.run(testRunner, context);
Thread.sleep(4000)//want to replace this with dynamic wait
verifyResponseValue(appAssignStep.getPropertyValue("Response"))
nmrao
Champion Level 1
6 years agoNot sure why you want to run REST request from a groovy script instead of having a REST Request step. Any specific reason?
If the assertion is added REST Request, are not those executed directly instead of verifying them in Groovy Script?
Any ways, it appears that you do not need to wait or use sleep.
See if the below snippet of code helps (follow comments)
import static com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus.* import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep import com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep import com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep /* Your code before run method comes here */ def result = step.run(testRunner, context)
def isStepRequestType = { model -> [WsdlTestRequestStep, RestTestRequestStep, JdbcRequestTestStep, HttpTestRequestStep].any { model.class == it} }
switch(result.status) { case FAILED: log.error "${step.name} is executed, but failed" break case [OK, UNKNOWN] : log.info "${step.name} execution is finished successfully" if (isStepRequestType(step)) { def response = result.responseContent assert response, 'Response is null or empty'
log.debug response //Add other assertions on response as needed - verification part } break //last statement in case default: log.info result.status break }