Search code examples
testingautomated-testskarate

Math operation on JSON response in karate DSL


From the below response, How can I calculate the total rate dynamically?

[
  { 
 "name": "Income Tax",
 "rate": 20 
  },
  {
 "name": "Sales Tax",
 "rate": 8 
  },
  {
 "name": "Property Tax",
 "rate": 2 
  },
  {
 "name": "Corporate Tax", 
 "rate": 15 
  },
  {
 "name": "Excise Tax",
 "rate": 5 
  }
]

I have tried adding each rate value but I’m looking for smart answer?


Solution

  • Here you go:

    * def total = 0    
    * def response = [ { "name": "Income Tax", "rate": 20 }, { "name": "Sales Tax", "rate": 8 }, { "name": "Property Tax", "rate": 2 }, { "name": "Corporate Tax", "rate": 15 }, { "name": "Excise Tax", "rate": 5 } ]
    * response.forEach(x => total = total + x.rate)
    * print total