首页 > 解决方案 > 进行网络自动化时如何使用空手道 DSL 与 chrome 中的网络选项卡进行交互

问题描述

我正在使用空手道 DSL 编写 UI 自动化脚本。在某些时候,我需要从 chrome 中的网络调用中获取价值。我想与 chrome devtools 网络选项卡中的一个 web 服务调用进行交互,并获取该 web 服务的 json 响应。

我需要这个,因为我必须从该特定调用中提取值并将其传递给我的自动化脚本的下一步。我已经看到与 sessionStorage 相关的问题(Is there a way to get a sessionStorage using Karate DSL?)但我想知道如何使用脚本命令或任何其他方式对网络调用执行相同的操作?

标签: karate

解决方案


我要推荐的第一件事是不要忘记空手道的核心是一个 API 测试工具。也许您需要做的就是手动拨打电话并获得响应。您应该能够抓取 HTML 并获取所需的主机和参数。

也就是说 - 这里记录了一个新功能(仅适用于 Chrome):https ://github.com/intuit/karate/tree/develop/karate-core#intercepting-http-requests - 并且在 0.9.6 中可用.RC2

它可能无法直接解决您想要的问题,但在空手道模拟中,您应该能够设置一个值以供以后使用,例如通过使用 Java 单例或写入临时文件。

如果您需要一些奇怪的更具体的东西,请向空手道贡献代码。最后,有一种实验方式,您可以实际向 Chrome DevTools 会话发出原始请求:https ://github.com/intuit/karate/tree/develop/examples/ui-test#devtools-protocol-tips - 它适用于高级用户,但也许您是其中之一 :)


推荐阅读