SoapUI 模拟响应 - 脚本返回 null

SoapUI Mock Response - Script returned null

请高人指点下问题

我已经设置了一个 Mock Response,它成功地响应了传入的请求。我正在尝试使用 'SCRIPT' 调度方法从入站请求中提取某些详细信息。

我添加了以下行,但是当我执行它时returns 'Script returned [null]'

def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )

我是否遗漏了什么,因为我可以看到请求到达 'Request' window。

非常感谢,

当我使用 XmlHolder 解析 SoapUI 响应时,我在响应中使用了不同的 属性 来提供 XmlHolder。

例如

holder = new XmlHolder( messageExchange.responseContentAsXml );

在此之后,您可能必须在提取感兴趣的值之前定义一些命名空间。

以下纯粹是一个伪示例,试图帮助您移动...

holder.namespaces["ns1"] = "urn:someOrg:app:userDetails:domain:1";

def userId = holder.getNodeValue("//ns1:userDetailsArray[1]/ns1:user[1]/ns1:id[1]");
def userName = holder.getNodeValue("//ns1:userDetailsArray[1]/ns1:user[1]/ns1:name[1]");

试试这个

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 
def holder = groovyUtils.getXmlHolder("mockRequest#Request")

其中 mockRequest 是您的请求名称,

如果您希望响应被提取为 XML

,您可以将 mockRequest#Request 更改为 mockRequest#Response

另外,如果要从 XML 中选取任何值,您可以使用下面的

  def value= holder.getNodeValue( '//*:tagname/*:tagname1' )

这将从响应中获取值