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") }