51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1890|回复: 1
打印 上一主题 下一主题

[在学] SOAP UI 打断言的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-26 14:33:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
老师你好,我用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/528
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2018-4-26 17:16:41 | 只看该作者
[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}'))
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 01:12 , Processed in 0.075957 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表