空手道框架作为规则引擎

Karate Framework as a Rules Engine

我有一个 api 项目需要根据一组规则验证有效负载。为此,我编写了一个空手道功能文件,其中包含传入请求 json 有效载荷所需的所有断言。然后特征文件 returns true 或 false 取决于满足的条件。该机制目前在我的本地运行良好。

是否推荐将此方法用于生产用例?这种格式的空手道框架是否能够处理在很短的时间内出现的大量请求?

空手道的开发者,我真的很喜欢你的问题,因为它证实了我个人的看法,空手道让 JSON 的工作变得容易。

为什么我不推荐将此用于生产用途,因为 Karate 嵌入了一个 JS 引擎,可以使用“脚本注入”攻击作为目标。空手道专为 运行 宁“本地”用户而设计,没有内置保护措施来防止通过 JSON 有效负载进行的任何恶意攻击。

另一个问题是性能,我个人很有信心,因为 Karate 与 Gatling 一起使用,并且多年来已经进行了一些工作来提高性能。但归根结底,空手道确实在解释模式下使用了 JS 引擎。因此,您需要 运行 自己进行性能测试或负载测试,以验证 Karate 是否可以处理您期望的容量。

也许您可以为空手道做出贡献来解决上述两个问题!