import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( "checkProgressOfRunExport#ResponseAsXml" ) //Check whether the data is null or it doesn't contains state
def data = holder.getNodeValue("//data[1]/text()") //If the running status is not 1 after 3 minutes, it means the test step timeout
def waitingTime = Integer.parseInt(context.expand('${#TestCase#runningTime}'))
log.info "The running time is : " + waitingTime +"s"
if(waitingTime == 180){
testRunner.testCase.setPropertyValue("runningTime", "0")
assert false, "Wait to run export, time is out after 3 minutes"
} //Parse running status
def status = "1"
if((data!=null)&&(data.indexOf("running")!=-1)){
status = data.split("running=\"")[1].split("\"")[0]
log.info "The running status is : "+status
} //Run the step [checkProgressOfRunExport] every 2 seconds
if(status!="0"){
waitingTime+=2
testRunner.testCase.setPropertyValue("runningTime", waitingTime.toString())
sleep(2000)
testRunner.gotoStepByName("checkProgressOfRunExport")
}else{
//Set the running time to default value "0"
testRunner.testCase.setPropertyValue("runningTime", "0")
}