You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库无数据时如何终止场景?现有代码误终止含数据的构建

问题原因及修复方案

你的代码逻辑出错是因为误用了Karate的#notnull语法——它是断言专用关键字,不能直接拿来做变量相等性比较。

当数据库返回数据时,dbData是一个非空对象,但你写的dbData != '#notnull'是把dbData和字符串'#notnull'做比较,结果必然是true,所以不管有没有数据都会执行karate.abort(),导致构建终止。

正确写法有两种:

方式一:用karate.exists()判断对象是否存在

* def dbData = db.readRow("SELECT top 1 * FROM table where data = 'x'")
* if (!karate.exists(dbData)) karate.abort()

方式二:直接判断是否为null

* def dbData = db.readRow("SELECT top 1 * FROM table where data = 'x'")
* if (dbData == null) karate.abort()

这两种写法都能正确识别数据库是否返回数据:当无数据时dbData为null,触发abort跳过当前场景;有数据时则继续执行后续步骤。

内容的提问来源于stack exchange,提问作者TestingCodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:22:05