为什么karate-tf在POST请求时从输入json中删除1个父块



我需要在以下前提条件下执行POST请求:json有两个父概念,它们的概念名称相同,但属性不同,如

{
"dictionary": {
"concept": {
"c1": {
"logicalName": "c1",
"isNull": true
},
"c1": {
"logicalName": "c1",
"isNull": false
}
}
}}

但在发布请求后,我观察到具有json属性的第一个概念";isNull":true被删除。但我预计在这种情况下,系统将失败,并显示正确的错误代码和正确的验证消息。

我用常规的cURL和文件中相同的输入json进行了双重检查——一切看起来都很好。

为什么空手道从json输入中删除1个块?你能给我建议吗?

谢谢

这是无效的JSON。如果您希望Karate不解析JSON;"阴性测试";,请使用text

* url 'https://httpbin.org/anything'
* text body =
"""
{
"dictionary":{
"concept":{
"c1":{
"logicalName":"c1",
"isNull":true
},
"c1":{
"logicalName":"c1",
"isNull":false
}
}
}
}
"""
* header Content-Type = 'application/json'
* request body
* method post

即使请求日志可能显示";有效的";JSON,您可以运行上面的请求并看到响应";回声;实际的请求-这将是你想要的。

14:47:03.100 [main] DEBUG com.intuit.karate - response time in milliseconds: 1219
1 < 200
1 < Date: Mon, 12 Jul 2021 09:17:03 GMT
1 < Content-Type: application/json
1 < Content-Length: 871
1 < Connection: keep-alive
1 < Server: gunicorn/19.9.0
1 < Access-Control-Allow-Origin: *
1 < Access-Control-Allow-Credentials: true
{"args":{},"data":"{n   "dictionary":{n      "concept":{n         "c1":{n            "logicalName":"c1",n            "isNull":truen         },n         "c1":{n            "logicalName":"c1",n            "isNull":falsen         }n      }n   }n}", "more": "..."}

最新更新