0

我们的项目需要彻底的 REST API 测试。因此,我们使用 SOAP-UI Pro 进行 REST Web 服务测试。

我想测试以下场景:

存储“XML”文件并确保获取相同的“XML”文件。

需要使用响应 'XML' 验证 'request-XML',其中一些 'XML-tags' 是动态的,例如:

请求“XML”是:

<c:field xmlns:c="http://iddn.icis.com/ns/core">  
   <c:id>http://iddn.icis.com/fields/low</c:id>   
   <c:version>1</c:version>   
   <c:created-on>2012-08-13T11:01:39Z</c:created-on>   
   <c:type>field</c:type>
   <c:name>low</c:name>
   <c:value type="integer" /> 
   <c:description xml:lang="en">
      <c:name>low</c:name>
   </c:description>
</c:field>

在获取时,我们需要验证我们是否正在获取上述“XML”。

我试图通过使用“断言内容”进行验证,但它失败了,因为<c:created-on>2012-08-13T11:01:39Z</c:created-on>每次我们存储它时值都会发生变化。

如何在“SOAP-UI”测试中处理动态响应“XML”标签?

注意:我是 Groovy、x-path 和 X-query 以及 SOAP UI 的新手。

4

1 回答 1

1

您可以尝试使用下一个脚本定义断言测试脚本,也许这会对您有所帮助

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( "Request#Request" );
def holder2 = groovyUtils.getXmlHolder("Responses#ResponseAsXml")

def stringList=[]
def stringList2=[]

for( node in holder['//name] )
{  
  stringList =stringList+node 
}


for( node2 in holder2['//name'] )
{ 
  stringList2 =stringList2+node2 
    if (node2 in stringList ) assert true
    else assert null
}


log.info "Request>" + stringList
log.info "result>"+ stringList2
于 2012-10-04T09:27:33.337 回答