【发布时间】:2021-04-26 20:52:15
【问题描述】:
我目前正在使用空手道 dsl 编写自动化 REST API 测试,但在尝试一种破坏性测试时遇到了问题。发送无效查询参数。
我遵循这篇文章Karate: Query Param values are getting encoded 的建议,谁只使用 url,但它似乎不适用于查询参数:
Scenario: Destructive testing - Illegal characters in parameters or payload
* def buildURL = 'http://127.0.0.1/identity/client?query={"idClient":{"$eq":9223372036854775807}}'
Given url buildURL
When method GET
Then status 400
错误:
java.net.URISyntaxException: Illegal character in query at index 39: http://127.0.0.1/identity/client?query={"idClient":{"$eq":9223372036854775807}}
我对 url 路径进行了相同类型的测试,它可以正常工作,但对于查询参数,这种方式似乎不起作用。
明确地说,我的目标是发送查询参数或至少是字符 { 而不使用 url 编码
有什么办法解决这个问题吗?
提前致谢
空手道版本:0.9.6
【问题讨论】:
-
感谢@Peter Thomas 的快速回复。我更新到 1.0.1。我也理解当你按照规范说非法字符时我做了什么。我很困惑,因为 Postman 允许发出此请求并且不对大括号进行编码并返回没有正文的 400 但现在我明白这是不允许的。再次感谢并感谢您在空手道方面所做的出色工作
标签: karate