ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Midscene.js 多设备自动化指南:一份配置文件并行 Android 与 iOS

2026/9/12 14:03:09 拓冰建站 浏览量
Midscene.js 多设备自动化指南:一份配置文件并行 Android 与 iOS Midscene.js 多设备自动化指南一份配置文件并行 Android 与 iOS【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene.js 是面向 E2E 测试的 GUI 自动化框架用自然语言描述操作它来驱动屏幕。它的 CLI 批量模式可以一次提交多个 YAML 脚本并行驱动 Android 与 iOS 真机并自动生成汇总文件与 HTML 执行报告。这篇笔记走完整流程先让单台设备跑绿再谈多机并行、脚本间传值与排障。真机测试的排队问题手里只有两三台真机时用例逐台串行跑一轮几十分钟起步失败后还得人工回看停在哪一步。批量执行器源码见 yaml-batch-executor.ts解决两件事让多个脚本按设定并发同时运行单个文件失败时不终止整批并把每个脚本的结果状态成功 / 失败 / 部分失败 / 未执行统一写入汇总文件。如何安装 Midscene.js 多设备依赖一条命令装齐npm install midscene/cli midscene/android midscene/ios再加三个前置条件adb devices能看到 Android 设备USB 调试已开iOS 需先启动 WebDriverAgentWDA 是 iOS 自动化依赖的服务进程用MIDSCENE_MODEL_NAME、MIDSCENE_MODEL_BASE_URL、MIDSCENE_MODEL_API_KEY环境变量配置模型。用npx midscene --version确认 CLI 可用。 单设备最小脚本怎么跑通先不碰并发写一个最小脚本确认单机能绿android: deviceId: emulator-5554 tasks: - name: open map flow: - aiAction: 打开地图应用并搜索人民广场 - aiAssert: 结果页包含目的地名称npx midscene ./case/android-map.yaml这条跑通后设备、模型、脚本语法都排除了嫌疑之后失败可以直接怀疑批量调度。执行完打开它生成的 HTML 报告核对每步截图与断言结果。Android 与 iOS 如何并行批量执行把多个脚本放进一个 index.yaml跨平台的文件都列在files里concurrent: 2 continueOnError: true files: - case/android-map.yaml - case/ios-battery.yaml - case/android-order.yaml用npx midscene --config batch/index.yaml执行。三个关键配置并发数 concurrent 怎么定同时运行的脚本上限默认 1 即串行。三台真机建议 2~3调得再高不会更快只会让模型请求撞上速率限制。失败后 continueOnError 怎么配默认 false首个失败即停止调度新脚本其余标记为 notExecuted。批量回归想收齐全部结果就设为 true。shareBrowserContext 的适用边界只对 Web 目标脚本有效多个脚本共用一个浏览器上下文。批次里混入 android/ios 脚本时开启它会直接报错移动设备批量里不要写这一项。一条易踩的合并规则index.yaml 里的全局android.deviceId会被合并进所有脚本。多台设备要区分时设备号写在每个脚本内部而不是全局配置。命令行参数可覆盖文件配置npx midscene batch/index.yaml --concurrent 2 --continue-on-error。执行结束会生成汇总 JSON逐文件记录时长、resultType、error 字段。配合每个脚本的 HTML 报告能直接看出哪台设备在哪个步骤失败。脚本间怎么传值两个内置通道setup 文件在 index.yaml 写setup: case/android-login.yaml它在所有主脚本之前执行setup 失败会中止整批且不受 continueOnError 影响。适合先登录、再跑订单用例这类必须成立的前置。环境变量插值批量配置文件支持${VAR}占位CLI 会先加载 .env。中间值写成环境变量后续脚本就能读到。另外查询步骤可以带命名字段aiQuery 后的name:把结果落到输出 JSON供后续流程消费。最短批量形态setup: case/android-login.yaml files: - case/android-order.yaml - case/ios-order-check.yaml 多设备执行常见报错怎么处理按现象排查整批全部 notExecuted→ setup 失败主脚本未启动。先修 setup 文件再重跑。启动即报 shareBrowserContext 只支持 Puppeteer Web→ 移动设备批次误开了该选项。删掉这一行。所有文件跑在同一台设备→ index.yaml 全局配置合并了 deviceId。在每个脚本里显式写设备号。iOS 用例卡在连接→ WDA 未运行或已崩溃。重启 WebDriverAgent 后重跑。adb 找不到设备序列号→ 设备端未确认授权弹窗。重新插拔用adb devices核对。想看详细日志→ 运行时带DEBUGmidscene:*环境变量输出完整调度过程。批量执行器负责的是多设备并行的调度与汇总设备连接状态adb、WDA仍需要自行维护。想读调度细节batch-runner.ts 与 execution-summary.ts 是入口下一步可以试着在批次里加retry: 1观察失败脚本的自动重试行为。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考