如何在soapui中使用groovy测试两个不同的Web服务,并使用groovy脚本比较响应

时间:2017-05-25 12:53:55

标签: xml groovy soapui

我的情况是需要比较共享相同Soap请求的两个不同Web服务的两个Soap响应,

1 个答案:

答案 0 :(得分:0)

在这样的groovy中以一种简单的方式:

def res1 = context.getTestCase().getTestStepByName('The NAME OF SERVICE CALL STEP1').getPropertyValue('Response')
def res2 = context.getTestCase().getTestStepByName('The NAME OF SERVICE CALL STEP2').getPropertyValue('Response')

//reformat xmls to avoid space difference and to remove comments (groovy parser do this)
def xmlParser = new XmlParser()

res1 =  XmlUtil.serialize( xmlParser.parseText(res1) )
res2 =  XmlUtil.serialize( xmlParser.parseText(res2) )

assert res1==res2

但是比较xmls并不是那么简单,因为名称空间前缀,元素顺序......可能不同。

在这种情况下,您可以在arsing之后但序列化之前将一些函数写入normalize xml ...