karate - 使用 Json Parse 错误消息在空手道中发布 400 错误请求错误的请求
问题描述
我正在尝试在请求的正文中发布一个 json。在此之前我正在阅读它,然后使用空手道框架中的 set 方法更新几个键。但是测试通过但在控制台中我可以看到它显示 400 bad request 错误
与 Postman 相比,我验证了所有必需的参数。邮递员中设置的相同 Post 请求按预期工作。
Background:
* json foojson = read ('foo.json')
* set foojson.foo = 'foo1'
* set foojson.foo4[0].foo7 = 'fooo8'
Scenario:
Given url
And headers
And json foo1json = foojson
And request foo1json
And print request
When method post
Then status 200
请找到如下的 Json 示例
{
"foo": "",
"fooA": "",
"fooB": "",
"fooFoo": [
{
"foo1": "foo A",
"foo2": "foo AA",
"foo3": "foo AAAA",
"foo4": {
"foo5": " ",
"foo6": "foo AAAA",
"foo7": "foo AAAA"
},
"foo8": "foo AAAA",
"foo9": 0,
"foo10": 0,
"foo11": [
]
}
],
"fooC": "foo AAAA",
"fooD": [
],
"fooE": ""
}
实际的 :
场景在这里失败
scenarios: 1 | passed: 0 | failed: 1 | time: 2.2143
但跟踪显示以下内容:
DEBUG com.intuit.karate - response time in milliseconds: 2156.14
1 < 400
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Headers: Origin,Accept,X-Requested-With,Content-Type,Content-Disposition,Access-Control-Request-Method,Access-Control-Request-Headers,X-HTTP-Method-Override,
1 < Access-Control-Allow-Methods: POST, GET, HEAD, OPTIONS, PUT, PATCH, DELETE
1 < Access-Control-Max-Age: 3600
1 < Cache-Control: no-cache
1 < Connection: keep-alive
1 < Content-Security-Policy: child-src 'self'
1 < Content-Type: application/json;charset=UTF-8
具体错误如下:
{"timestamp":1557310988561,"traceId":"","path":"[POST] "", "errors":[{"httpStatusCode":"BAD_REQUEST","code":"BAD_REQUEST", "message" :"JSON 解析错误:无法反序列化
foo
超出 START_OBJECT 令牌的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法foo
在 [Source: (PushbackInputStream); 处反序列化超出 START_OBJECT 令牌\n 的实例;行:1,列:1]"}]}
请让我知道是否有人可以帮助我
解决方案
与 Postman 相比,我验证了所有必需的参数
这是一个非常无益的说法。现在,关于这个错误:
无法从 START_OBJECT 令牌中反序列化 foo 的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException
很明显服务器已经抛出了这个错误,看起来空手道已经正确发送了 JSON,但是你没有提供请求,所以没有提供信息的人无法判断。
看起来空手道确实在您的服务器中发现了一个错误——这就是API 测试的重点:) 所以请再次检查。
如果您仍然认为空手道存在问题,请按照以下流程操作:https ://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
推荐阅读
- node.js - 当我执行 docker 命令时,我得到“无效的参考格式”错误
- reactjs - Katalon 适合 React Native 吗?
- php - Yajra 数据表内联编辑
- python - 将数字附加到变量名称的末尾
- python - 如何在 Sklearn 管道中使用 SMOTE 来解决 NLP 分类问题?
- reactjs - ReactJS:创建动态项目列表,每行 3 个项目(materialUI)
- javascript - Jest 覆盖率不足
- node.js - 如何将上传到表单的文件写入磁盘?
- azure - 如何在 Azure 上使用 Spark 和数据工厂来加载和转换 2 个包含数据的文件
- python - 难以在 2 层 RNN 中正确设置批量大小