karate - 我可以使用空手道来测试带有多个后续斜杠的 URL 吗?
问题描述
当路径包含多个斜杠时,我正在尝试使用空手道检查我们服务器的行为,所以我有一个类似的测试
Scenario: Multiple slashes
* url 'http://localhost'
Given path '///some//path///'
When method get
Then status 404
运行此程序时,空手道输出/日志包含所有斜杠:
12:04:52.307 [pool-1-thread-1] DEBUG com.intuit.karate - request:
1 > GET http://localhost///some//path///
1 > Host: localhost
但根据服务器日志(本演示仅使用 Apache),实际请求只有单斜杠:
127.0.0.1 - - [23/Aug/2021:12:04:52 +0200] "GET /some/path/ HTTP/1.1" 404 488 "-" "Apache-HttpClient/4.5.13 (Java/11.0.4)"
所以我有几个问题:
- 斜线规范化是预期的(和记录的?)行为吗?
- 我可以在某个地方关掉它吗?
- 如果斜线被折叠,日志不应该包含实际的(规范化的)请求,以便我看到真正发送到服务器的内容吗?
解决方案
你可以看看这个帖子是否回答了你的问题,结合path
关键字(滚动到最后):https ://github.com/intuit/karate/issues/1561
如果不是,您可以假设这不受直接支持。就我个人而言,我认为这样的用例不值得用空手道自动化。
解决方法是通过集成任何 Java 库(通过空手道互操作)或使用 cURL(hack)来进行自己的 HTTP 调用:https ://stackoverflow.com/a/64352676/143475
欢迎您为空手道贡献代码。
推荐阅读
- java - waitForAngularRequestsToFinish() -- 有什么用?
- ruby - 测试:使用自我,预期:1 次收到参数:0 次
- c++ - 高斯曲线计算 (C++)
- yii2 - 在 ActiveQuery init() 中获取当前模型别名 Yii2
- sql - 如何将 XML 子节点作为字符串与父属性一起获取?
- python - 功率谱密度-scipy.signal
- javascript - Wicket:弹出内容不会出现在 Chrome 浏览器中
- python - python Sklearn中的SVC分类器支持向量类
- php - 方括号是否使变量为空?
- python - 根据条件复制数据帧的行