im试图为CSM wsdl编写脚本,其中可能包含请求的多个版本。 每个请求上都有一个唯一的标记,这就是我正在使用的要针对其返回特定请求的条件。
例如:我有2个基于CSM wsdl的请求,firt具有OrderItemStatus作为唯一标记,第二个具有Description,其值为“ desc123”,现在对于要在请求中接收到的任何标记,我想返回Response1或回应2。
这是我尝试过的:
def temp="XX";
def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context)
def xml=new XmlSlurper().parseText(mockRequest.requestContent)
xml.breadthFirst().each{
def v=it.toString()
log.info("==============="+it.name()+"==================="+it.text());
if(it.name()=="Description" || "OrderItemStatus"){ -- Here im searching for what tag is preset on the request
temp=it.text(); - Here is where im saving value of the tag.
log.info("===================matching tag=========================="+it.text());
}
}
//log.info("*temp**"+temp);
if(temp=='Close'){ -- This condiiton is ignored, it always returns Response_01.
log.info("if Response_01");
mockOperation.setDefaultResponse("Response_01");
}else if(temp=='desc123'){
log.info("else if Response_02");
mockOperation.setDefaultResponse("Response_02");
}else{
log.info("else Generic");
mockOperation.setDefaultResponse("Generic");
}
我面临的问题是,无论是否在请求中找到带有“ Close”值的OrderItemStatus,它总是返回,它始终返回Response_01。 谢谢!