SoapUI将来自XML的null与JSON响应中的null进行比较

时间:2017-07-11 14:37:58

标签: json xml groovy null soapui

我有一个测试用例,我连接数据库并查询一些数据,将结果保存到属性,然后向API发出请求,并将保存的属性与JSON响应进行比较。

除非结果为null,否则此方法有效。

这是数据库的XML结果。

enter image description here

我将结果保存在断言中的脚本

import com.eviware.soapui.support.XmlHolder
def holder = new XmlHolder(messageExchange.responseContent)
context.testCase.setPropertyValue('SECONDARYPHONE', holder.getNodeValue('//*:SECONDARYPHONE'))
context.testCase.setPropertyValue('FAX', holder.getNodeValue('//*:FAX'))

然后在API的JSON请求中获取

{
   "portalId": 87776,
   "name": "iOS Robotics",
   "address1": "Update your company address",
   "address2": "under Settings > My Company",
   "city": "Reston",
   "state": "VA",
   "zip": "20191",
   "primaryPhone": "unknown",
   "secondaryPhone": null,
   "fax": null
}

一个断言步骤

import net.sf.json.groovy.JsonSlurper
def jsonResponse = new JsonSlurper().parseText(messageExchange.responseContent)

log.info('Second')
log.info(context.testCase.getPropertyValue('SECONDARYPHONE'))

log.info('json')
log.info(jsonResponse.secondaryPhone)

assert jsonResponse.secondaryPhone == context.testCase.getPropertyValue('SECONDARYPHONE')

我得到了

  

断言jsonResponse.secondaryPhone == context.testCase.getPropertyValue(' SECONDARYPHONE')| | | | | | | | | | | null | | | | com.eviware.soapui.impl.wsdl.WsdlTestCasePro@12ff4536 | | | [ThreadIndex:0,RunCount:0,ExecutionID:5cf927e7-817f-4785-9152-f35e634cfe58] | |假| net.sf.json.JSONObject@162d059c(toString()抛出net.sf.json.JSONException)net.sf.json.JSONObject@2419444e(toString()抛出net.sf.json.JSONException)

在这种情况下如何检查和比较空值?

1 个答案:

答案 0 :(得分:1)

这是因为,jdbc结果的值为empty,而json的第二个电话为null

因此,检查jdbc结果对于任何属性/属性是否为空,然后检查不相等;否则检查是否平等。

另一种选择是 - 在第一个脚本中,如果元素的jdbc响应值为空,则将其保存为null