如何对JSON响应值设置断言?Karate框架校验数值大于2失败解决
问题根因
你的代码存在两个问题导致校验不生效:
- 返回的
result是包含单个JSON对象的数组结构,原断言没有匹配外层的数组结构,和实际返回格式不匹配 #?是Karatematch关键字专属的模糊匹配语法,不能直接用在assert语句中
修复方案
你可以任选以下两种写法之一实现校验:
写法1:先提取数值再直接断言(更直观易读)
* def noOfRows = result * print 'Total number of rows ', result // 提取数组第一个元素的"1"字段值 * def rowCount = noOfRows[0]['1'] * assert rowCount > 2
写法2:保留模糊匹配语法,补全结构对齐
* def noOfRows = result * print 'Total number of rows ', result // 匹配规则和返回的数组结构对齐即可 * match noOfRows == [{ "1": '#? _ > 2' }]
内容的提问来源于stack exchange,提问作者patel
相关产品推荐
相关产品推荐

