我有一个测试用例,我连接数据库并查询一些数据,将结果保存到属性,然后向API发出请求,并将保存的属性与JSON响应进行比较。
除非结果为null,否则此方法有效。
这是数据库的XML结果。
我将结果保存在断言中的脚本
中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)
在这种情况下如何检查和比较空值?
答案 0 :(得分:1)
这是因为,jdbc结果的值为empty
,而json的第二个电话为null
。
因此,检查jdbc结果对于任何属性/属性是否为空,然后检查不相等;否则检查是否平等。
另一种选择是 - 在第一个脚本中,如果元素的jdbc响应值为空,则将其保存为null
。