首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SOAP :对服务请求使用来自XML的值

SOAP :对服务请求使用来自XML的值
EN

Stack Overflow用户
提问于 2017-03-04 02:32:44
回答 1查看 90关注 0票数 0

有些人能解释一下SOAP上实现以下场景的最佳方法吗?

将来自一个测试用例Web服务的响应值作为第二个测试用例Web服务的请求值加载。

在测试用例1中脚本断言

代码语言:javascript
运行
复制
import com.eviware.soapui.support.XmlHolder
def respXmlHolder = new XmlHolder(messageExchange.getResponseContentAsXml())
respXmlHolder.declareNamespace("ns1","http://www.moj.com/api/services/checkout")
def finsess = respXmlHolder.getNodeValue("//ns1:sessresp/ns1:sessionId")
log.info finsess

日志信息显示在70c8a6f80b6ff0c72502下面。

现在,如何将上面的会话as自动加载到Test 2 Web服务中,如下所示。

代码语言:javascript
运行
复制
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.moj.com/api/services/final">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:FinSessionRequest>
         <typ:correlationId>1234</typ:correlationId>
         <typ:sessionId>70c8a6f80b6ff0c72502</typ:sessionId>
         <typ:username>abcd</typ:username>
         <typ:password>1234</typ:password>
      </typ:FinSessionRequest>
   </soapenv:Body>
</soapenv:Envelope> 
EN

回答 1

Stack Overflow用户

发布于 2017-03-06 08:05:36

对于此任务,您可以使用属性传输测试步骤,而无需编写Groovy脚本。在SoapUI文档可以看到更多信息。您只需选择带有XPath的源XML元素,并类似地选择目标元素。在执行测试步骤(或测试用例)时,SoapUI将执行替换操作。我建议使用这种方式,因为它是透明的。

如果您确实需要使用Groovy脚本传输该值,则可以在断言脚本中设置测试套件属性值:

代码语言:javascript
运行
复制
def testSuite = context.getTestCase().getTestSuite()
testSuite.setPropertyValue("MyId", finsess)

然后将MyId放置到请求消息中:

代码语言:javascript
运行
复制
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.moj.com/api/services/final">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:FinSessionRequest>
         <typ:correlationId>1234</typ:correlationId>
         <typ:sessionId>${#TestSuite#MyId}</typ:sessionId>
         <typ:username>abcd</typ:username>
         <typ:password>1234</typ:password>
      </typ:FinSessionRequest>
   </soapenv:Body>
</soapenv:Envelope> 

只要这两个测试用例属于同一个测试套件,就可以工作。

卡雷尔

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42591395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档