空手道:如何在没有 url 编码的情况下发送查询参数
Karate : How to send query param without url encoding
我目前正在使用 Karate dsl 编写自动 REST API 测试,在尝试一种破坏性测试时遇到问题。发送无效的查询参数。
我遵循这个 post 的建议,谁只使用 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
首先,您正在按照规范尝试使用非法字符,因此您可能需要手动“URL-编码”URL - 您似乎已经意识到了这一切,基于你问题中的 link 。也许您的服务器不符合规范。
建议您尝试升级到 1.0 并参考这个未解决的问题:https://github.com/intuit/karate/issues/1561
除此之外的任何事情都需要您提供帮助/贡献代码。
我目前正在使用 Karate dsl 编写自动 REST API 测试,在尝试一种破坏性测试时遇到问题。发送无效的查询参数。
我遵循这个 post
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
首先,您正在按照规范尝试使用非法字符,因此您可能需要手动“URL-编码”URL - 您似乎已经意识到了这一切,基于你问题中的 link 。也许您的服务器不符合规范。
建议您尝试升级到 1.0 并参考这个未解决的问题:https://github.com/intuit/karate/issues/1561
除此之外的任何事情都需要您提供帮助/贡献代码。