在SOAP UI模拟响应脚本中访问请求XML

时间:2010-08-05 14:34:06

标签: xml groovy request soapui

我有一个模拟响应,需要返回请求中的值。例如,此请求可以包含:

<myReqest><myValue>123</myValue></myRequest>

我已经有了一个mockResponse:

<myResponse><yourValue>${theValue}</yourValue></myResponse>

我知道如何通过上下文变量设置$ {theValue}的值,但我无法弄清楚如何访问请求并解析它的值。

非常感谢任何帮助。

谢谢, 强尼

5 个答案:

答案 0 :(得分:3)

您可以使用脚本功能自定义您的回复。

在mockResponse窗口中,您可以单击脚本菜单。

在这里,您可以使用类似的东西(使用XPath来完全限定您要查找的元素):

context.theValue = 
mockRequest.getRequestXmlObject().selectPath("//Message/text()")[0];

当您调用MockResponse时,theValue变量应自动更新。

答案 1 :(得分:1)

SoapUI getting request parameters in mock service script的问题/答案几乎相同。 总结一下:

def req = new XmlSlurper().parseText(mockRequest.requestContent)
context.theValue = req.myRequest.myValue

答案 2 :(得分:1)

使用Dispatch SEQUENCE,MokcResponse可以是:

<myResponse><yourValue>${#MockResponse#Request#//myValue}</yourValue></myResponse>

答案 3 :(得分:0)

我不完全确定上下文,您使用的是哪种工具?

我们使用Liquid XML Studio,它有一个Web Services Test Client,这使得手动调用Web服务非常简单,这种听起来就像你想要做的那样,但也许你正试图自动化这个过程进行测试?

请提供更多信息。

西蒙

答案 4 :(得分:0)

如果您正在使用SoapUI Pro,只需将光标放在要插入值的位置,然后右键单击并通过“获取数据...”子菜单从请求中选择参数。但是,此功能仅适用于Pro版本。使用免费软件版本,你应该遵循khylo的答案。

罗伯特

相关问题