尧图精选

如何在 Midscene YAML 脚本中把 aiQuery 与 aiAssert 结果输出到 JSON 文件

🕒 发布时间:2026/9/15 14:02:00 📁 来源:尧图网络
如何在 Midscene YAML 脚本中把 aiQuery 与 aiAssert 结果输出到 JSON 文件【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene如果你用 Midscene 的 YAML 脚本跑网页或移动端自动化通常只关心流程本身但有时还需要把脚本里aiQuery查到的数据和aiAssert断言的结果落盘方便后续脚本解析或归档。Midscene 的 YAML 脚本支持在目标环境配置中设置output字段指定一个 JSON 文件路径运行时会把带name的aiQuery/aiAssert步骤结果写入该文件。本文以 Web 场景为主线给出可照做的配置与执行步骤并在末尾说明其他平台Android、iOS、HarmonyOS、Computer的对应配置位置。准备条件执行 YAML 脚本需要 Midscene CLI。按 YAML 脚本运行器文档 的要求终端运行的 Node.js 版本需为20.19、22.12或24。部分 CLI 执行路径使用 Rstest/Rspack 工具链会拒绝20.17.0这类较旧的 Node 20 补丁版本遇到Unsupported Node.js version报错时升级 Node.js 后重装依赖即可。全局安装 CLI推荐npm i -g midscene/cli也可以按项目安装npm i midscene/cli --save-dev之后用npx midscene执行。配置模型服务的环境变量。可以在运行 CLI 的目录放一个.env文件dotenv 方式值前不要加export例如MIDSCENE_MODEL_BASE_URLreplace with your model service URL/v1 MIDSCENE_MODEL_API_KEYreplace with your API Key MIDSCENE_MODEL_NAMEreplace with your model name MIDSCENE_MODEL_FAMILYreplace with your model family.env放在你执行命令的目录即可不必与 YAML 文件同目录这些值默认不会覆盖已有的全局环境变量除非加--dotenv-override。配置output与步骤的name一个 YAML 脚本由目标环境部分page、browser、web、android、ios、harmony、computer之一不要混用、可选的agent部分和tasks部分组成。以 Web 为例output写在page或browser/web部分下page: url: https://www.bing.com # 输出 aiQuery/aiAssert 结果的 JSON 文件路径可选 output: ./results.json tasks: - name: 搜索天气 flow: - ai: 搜索 今日天气 - sleep: 3000 - name: 提取并断言结果 flow: - aiQuery: 提取搜索结果中展示的温度格式为 JSON 对象 name: temperature - aiAssert: 结果中展示了天气信息 name: weather_assert errorMessage: 页面未出现天气信息其中几个关键点output: ./results.json中的路径是读者自行指定的它决定结果 JSON 写到哪文档中写作output: path-to-output-file按需替换为你的目标路径。aiQuery的name是查询结果在 JSON 输出中的 key。文档提示写aiQuery的提示词时记得在 prompt 里描述输出结果的格式上例要求返回 JSON 对象。aiAssert的name是可选的给断言一个名称后该名称会作为 JSON 输出中的 keyerrorMessage也是可选的断言失败时打印该错误信息。文档对name的说明是带有name的步骤会把结果写入当前 YAML 运行结果和 JSON 输出中。所以想让某个结果出现在输出 JSON 里就给它加name。其他平台的目标部分同样支持output写法一致只是所在段落不同android: deviceId: s4ey59 output: ./results.json # 或 ios: / harmony: / computer: 部分下同样写 output: JSON 文件路径android的deviceId可选默认使用第一个连接的设备ios需要 WebDriverAgent 可用wdaPort默认 8100harmony依赖hdc连接的设备computer面向桌面自动化。这些平台各自的完整选项见 使用 YAML 格式的自动化脚本 中对应小节。执行脚本midscene ./bing-search.yaml # 如果 Midscene 是项目内安装 npx midscene ./bing-search.yamlCLI 会打印执行进度结束后生成可视化报告。验证结果执行完成后的检查点均来自 YAML 脚本运行器文档 的Analyze command-line output一节确认output指定的 JSON 文件已生成如上面的./results.json其中包含aiQuery/aiAssert步骤写入的结果步骤用什么name结果就出现在对应的 key 下。输出目录中还包含由--summary指定的 JSON 汇总默认index.json含所有脚本的执行状态与统计每个 YAML 文件对应的单独执行结果JSON每个脚本的可视化 HTML 报告。aiAssert失败时脚本会按流程报错并可打印你配置的errorMessage此时可结合 HTML 报告定位是哪一步断言未通过。限制与边界output是各目标环境段落里的可选字段不配置就不会有这份结果 JSON 输出。通过 JavaScript 调用agent.runYaml()时YAML 文件中只有tasks字段会被解析执行——agent 已在 JS 里初始化output、agent等脚本级配置不会生效。需要把结果落到 JSON 文件时走 CLI 执行。文档提示当前 YAML 自动化属于老版方案Midscene 已推出 Beta 阶段的 Midscene Test 新方案新测试项目可另行参考其概览文档本文内容针对老版 YAML 脚本运行器。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →