我正在尝试编写一个测试来验证我的服务器拒绝大于 1MB 的请求:
Scenario: large requests are rejected
Given url 'https://my.server.com/anything'
And request "x".repeat(1048577)
When method post
Then status 413
该测试失败并显示javax.net.ssl.SSLException: Broken pipe (Write failed)
异常,因为服务器读取Content-Length
头并立即拒绝请求/在读取有效负载之前以 413 响应。
我通过 cURL 验证了服务器行为:
$> printf 'x%.0s' {1..1048577} | curl -i --data @- https://my.server.com/anything
HTTP/1.1 413 Request Entity Too Large
是否可以使用空手道测试此功能?
这当然可能是空手道不适合的情况。您可能无法完全控制一些“特殊”标头,例如Content-Length
- 我们受到底层 Apache HTTP 客户端的限制。
我不确定即将推出的 1.0 系列是否会支持这一点并允许您覆盖Content-Length
标头:https://github.com/intuit/karate/wiki/1.0-upgrade-guide
但如果需要,欢迎您进行调查并提交 PR。
作为解决方法,您可以使用空手道中的 cURL:https://stackoverflow.com/a/64352676/143475
另请参阅这个答案:https://stackoverflow.com/a/73230200/143475
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)