2010-08-05 90 views
7

我有一个模拟响应,它需要返回请求中的值。例如,该请求可以进来:在SOAP UI模拟响应脚本中访问请求XML

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

我已经有一个mockResponse:

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

我知道如何通过上下文变量设置为$ {theValue}价值,但我可以”不知道如何访问请求并解析它的值。

任何帮助将不胜感激。

感谢, 强尼

+0

你可以发布更多的代码? – 2010-08-05 16:43:40

+0

只需注意您的XML格式不正确。 标记与结束标记不匹配。 – Paddyslacker 2010-09-03 18:44:11

回答

0

我不能完全肯定的背景下,该工具是您使用?

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

请提供更多信息。

Simon Simon

3

您可以使用脚本功能来自定义您的响应。

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

在这里,你可以把类似的信息(使用XPath完全限定你正在寻找的元素):

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

当调用MockResponsetheValue变量应自动更新。

+0

xpath的+1。这是Pro版本真正发光的地方,它内置了一个XPath工具,使得这种事情变得非常简单。 – 2010-08-23 12:41:30

+0

这几乎适用于我,但结果被包装在xml-fragment标签中。 – 2014-02-25 00:22:08

0

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

罗伯特

1

使用调度顺序MokcResponse可以是:

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