51Testing软件测试论坛

标题: SOAP UI 打断言的问题 [打印本页]

作者: 忘却    时间: 2018-5-11 13:26
标题: SOAP UI 打断言的问题
老师你好,我用soapui做测试,添加断言判断:这个id是通过post方法传进来的,现在通过get方法,判断传递的参数id跟get的id值一样。
def root = net.sf.json.JSONSerializer.toJSON(messageExchange.responseContent)
log.info root.get("id")
assert root.id.equals(context.expand('${Properties1#id}'))
log.info context.expand('${Properties1#id}')
运行报错:assertroot.id.equals(context.expand('${Properties1#id}')) | | | | | | 53 false | 53 |[ThreadIndex:0, RunCount:0] net.sf.json.JSONObject@5d98453d (toString() threwgroovy.lang.GroovyRuntimeException
但是单独运行:
def root = net.sf.json.JSONSerializer.toJSON(messageExchange.responseContent)
log.info root.get("id")
log.info context.expand('${Properties1#id}')
结果是pass的,出来的id是一样的。怎么就是加了assert那句话就不对了呢?
部分response json数据:
{
   "id": 53,
   "defaultRoleId": 1,
   "loginId": "test55",
   "password":"8F0E2F76E22B43E2855189877E7DC1E1E7D98C226C95DB247CD1D547928334A9",
   "name": "user name",
   "email": "xxx@xxx.com",
   "phone": "123456789",
   "repository": "DB",
   "deleted": "N",
   "departmentList": [   {

请老师看一下,

在学课程
SoapUI让你轻松玩转WebService接口测试直播
http://www.atstudy.com/course/538


作者: 学掌门网校    时间: 2018-5-14 11:52
  [ThreadIndex:0, RunCount:0] net.sf.json.JSONObject@5d98453d (toString() threw groovy.lang.GroovyRuntimeException
从这句报错信息可以判断,是类型不匹配导致断言出错,
表面上看内容是一样,但是两者类型不匹配,可以用groovy中的.class来查看数据类型

log.info root.id.class                    //非String类型
log.info context.expand('${Properties#pid}').class         //String类型
需要把assert语句替换成如下形式:
assert root.id.toString().equals(context.expand('${Properties1#id}'))





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2