如何在Karate DSL中动态计算JSON响应的税率总和?
在Karate DSL中动态计算所有税率总和的方法
你完全不用手动逐个累加,Karate DSL提供了内置的karate.sum()函数,配合JSONPath就能轻松实现动态求和。
实现步骤
假设你的接口响应就是题目给出的JSON数组(Karate中默认存放在response变量里),可以直接用下面的代码计算总和:
* def totalRate = karate.sum(response..rate) * match totalRate == 50 // 验证总和:20+8+2+15+5=50
代码解释
response..rate:这是JSONPath表达式,作用是从response数组中提取所有对象的rate字段值,最终得到数值数组[20,8,2,15,5]karate.sum():Karate的内置函数,接收数值数组作为参数,返回数组所有元素的总和
完整Feature示例
如果要在Feature文件中使用,完整写法如下:
Feature: 计算税率总和 Scenario: 获取税率并计算总和 Given url "你的税率接口地址" When method get Then status 200 And def totalRate = karate.sum(response..rate) And match totalRate == 50
这样不管后续数组新增多少个税率项,代码都能自动计算总和,无需修改逻辑。
内容的提问来源于stack exchange,提问作者Vijay Kanth Perikala
相关产品推荐
相关产品推荐

