2012-03-28 102 views
0

我正在尝试编写一个groovy脚本,它从第一个testStep的响应中获取结果并将其用于下一个testStep。 我的Web服务将返回一个POST后如下回应:在soapUI中测试REST Web服务

<Response xmlns="http://xxxxxx.xxx.xxxxx.xxx/cal-service/v1/users/"> 
    <individual_id>83ecf411-0e3b-4e6b-9bc4-d4b5f6efed54</individual_id> 
</Response> 

我试图抓住并将它传递给我的测试套件下一个测试。

我是新使用Groovy和soapUI的,但我开始是:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 
def responseHolder = groovyUtils.getXmlHolder("messageExchange.responseContent") 

def individualId = responseHolder.getNodeValue("individual_id") 
log.info(individualId) 

我收到以下错误,当我运行测试套件,并达到Groovy脚本:

+1

想你忘记了错误...... – 2012-03-28 07:46:33

回答

0

我不在你的帖子中看不到你的错误,但是从请求中获得一些东西 - 这就是你如何去做的。 groovy脚本会从你的请求中返回id。

def id = context.expand('${REST Test Request#ResponseAsXml#declare namespace ns1=\'http://lshlx082a.sys.cigna.com/cal-service/v1/users/'; //ns1:individual_id[1]}') 

return id; 

将“REST测试请求”部分替换为REST测试步骤的名称。

注意:我试着用我自己的命名空间,所以我可能会错误地剪切和粘贴你的命名空间和声明。但这是一般的方法。

+0

谢谢您的回答。我只是没有成功尝试过。我有一些REST测试步骤,我正在尝试对我的测试进行脚本编写以使过程自动化。从测试步骤获取ID并将其传递给下一个步骤的一般过程是什么?我需要使用财产转移吗?另外我的其他服务的响应是JSON,我如何才能解析响应以验证使用Groovy获得了正确的结果。另一个问题是什么时候使用脚本断言,并在那里写groovy与使用Groovy脚本? 希望我有道理。非常感谢帮助。 – 2012-04-02 19:00:22

+0

通常,如果我将数据从一个步骤移动到另一个步骤,则不使用财产转移。在这些情况下,从前一步骤到下一步骤的数据更简单。 至于断言,为了可读性,我在最后将它们放在一个单独的步骤中。这将是Groovy步骤或断言步骤(4.5版本)。有关可读的soap UI测试的更多信息,请参阅我的博客文章:[使用SOAP UI的BDD](http://developingquality.blogspot.se/2011/11/bdd-with-soap-ui.html)。 就JSON而言,[这个链接](http://groovy.codehaus.org/modules/http-builder/doc/json.html)可能是一开始。 – 2012-04-05 04:30:33

+0

另外,您是否可以发布或邮寄我的服务回复?那么我绝对可以帮助你。 – 2012-04-05 04:32:00

0

您可以使用属性转移步骤responces之间传输值