[SoapUI] 设置最大等待时间,不断重复的去发送一个request,每次从response中获取一个status,直到这个status从一种状态变成另外一种状态

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

  

原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/6676840.html