我一直在使用空手道 v0.9.6。最近升级到1.1.0版本
一件事很麻烦,就像风箱一样,
* def responsevalue = response.body
* def length = responsevalue.length
* def number = []
* eval for(var i = 0;i < length; i++) if(response.body[i].availablenumber > 10000) number.add(response.body[i].Id)
Error:- org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (add) on [] failed due to: Message not supported.
我确定我遗漏了发行说明中的重要部分。我真的很感激这个问题的任何解决方案。
非常感谢!
首先我想说不推荐这样的循环。改用
filter()
操作:
* def number = response.body.filter(x => x.availablenumber > 10000)
参考:https://github.com/karatelabs/karate#json-transforms
无论如何,你需要做的改变是:
number.push()
而不是number.add()
:https://github.com/karatelabs/karate/wiki/1.0-upgrade-guide#java-api-s-for-maps -and-lists-are-no-longer-visible-within-js-blocks