karate - 进行网络自动化时如何使用空手道 DSL 与 chrome 中的网络选项卡进行交互
问题描述
我正在使用空手道 DSL 编写 UI 自动化脚本。在某些时候,我需要从 chrome 中的网络调用中获取价值。我想与 chrome devtools 网络选项卡中的一个 web 服务调用进行交互,并获取该 web 服务的 json 响应。
我需要这个,因为我必须从该特定调用中提取值并将其传递给我的自动化脚本的下一步。我已经看到与 sessionStorage 相关的问题(Is there a way to get a sessionStorage using Karate DSL?)但我想知道如何使用脚本命令或任何其他方式对网络调用执行相同的操作?
解决方案
我要推荐的第一件事是不要忘记空手道的核心是一个 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 - 它适用于高级用户,但也许您是其中之一 :)
推荐阅读
- c++ - 我们需要捕获程序关闭并允许用户避免关闭
- mediawiki - MediaWiki MonoBook 皮肤仅显示正文部分
- java - 构建 Android Bundle 的问题 - 引发错误“文件 'root/lib/commons-io-2.4.jar' 使用保留文件或目录名称 'lib'”
- java - 如何制作自定义 Swing 容器?
- java - 变量前面的减号是否使第一个变量为负?
- javascript - 在对象的对象内部搜索并替换值
- css - 当属性值更新时,React 子组件 css 停止工作
- ruby - Ruby 中所有魔法指令的列表
- php - PHP 启动:composer 安装/更新后打开 index.php 失败
- r - 修复丢失的数据 - 如何将表格转换为与 KalmanRun 一起使用的 ts 对象?