如何解决在空手道Netty场景中匹配请求中的键值对
我正在为Karate Netty模拟服务编写功能,并且尝试使用Scenario来匹配请求中的键值对。
例如:
在这样一个具有嵌套对象数组的请求中,我希望在任何Id值均为null时触发此功能:
{
"Array": [
{
"Id": "legitId"
},{
"Id": null
}
],}
场景:pathMatches('path / to / my / endpoint')&& methodIs('post')&& request.Array.contains('Id':null)
文档说我可以在场景中使用JS表达式,但是我很难找到nashorn可以解析的东西来做到这一点。我已经尝试过JSON.stringify和indexOf,其中一些在空手道测试中用于匹配的语法仍然没有运气。我还尝试对Array索引使用通配符来表示类似Array [*]。Id == null,但这也不可行。
解决方法
好消息,在Karate 0.9.6中,您可以使用JsonPath和karate.match()
:
Scenario: karate.match("request.Array[*].Id contains null").pass
有关更多详细信息:https://github.com/intuit/karate/issues/1202#issuecomment-653632397
另请参阅此其他答案,以获取有关使用自定义功能的想法。 Background
中定义,以便在需要时更轻松:https://stackoverflow.com/a/59415796/143475
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。