尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何5分钟用Maestro跑通移动端E2E测试

如何5分钟用Maestro跑通移动端E2E测试 如何5分钟用Maestro跑通移动端E2E测试【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro每次发版前总有人盯着模拟器手动点一遍登录再口头报没问题。麻烦在于这条验证没法复现、没法进 CI。Maestro 是一个移动端 E2E 测试框架把测试路径写成十几行 YAML 流程一条命令就能在 Android 模拟器、iOS 模拟器或浏览器里完整跑完。项目定位一句话看懂 Maestro 是什么Maestro 是给测试和开发工程师用的开源移动端 E2E 测试框架步骤写成人类可读的 YAML运行时解释执行、免编译改一行就能立刻重跑。3步本地快速启动安装 Maestro CLI 并跑通第一条流程之所以只要三步是因为流程不参与任何构建写什么就跑什么没有编译和打包环节。第 1 步安装 CLI要求 Java 17 及以上用java -version确认curl -fsSL https://get.maestro.mobile.dev | bash执行后应看到下载进度条走完maestro -v能打印出版本号。第 2 步检查设备maestro list-devices执行后应看到已连接模拟器或设备的 ID 列表。没有设备也能继续Web 流程用本机浏览器即可。第 3 步在当前目录新建first_flow.yaml写入一个公共测试站的登录流程url: https://www.saucedemo.com/ --- - launchApp - tapOn: Username - inputText: standard_user - tapOn: Password - inputText: secret_sauce - tapOn: Login - assertVisible: Products然后执行机器上需装有 Chrome 或 Chromiummaestro --platform web test first_flow.yaml执行后应看到终端逐行点亮每条命令并标绿最后打印Flow completed successfully。主线任务从零看懂并改写这条登录流程7 行 YAML 和实际操作一一对应每个命令只干一件事。launchApp冷启动应用或打开入口页。放在流程开头保证每次运行都从干净的初始状态出发而不是接着上次残留的页面。tapOn: Username按可见文本定位元素并点击。用用户看到的东西而不是 resource-id 或 XPath是因为 Android、iOS、Web 三端的元素树结构互不相同文本是跨平台唯一稳定的锚点同页文本重复时可加point:指定相对位置。inputText: standard_user向当前获得焦点的输入框打字。同样绑定焦点而非控件 id——各框架的输入框实现差异极大焦点状态是它们唯一的公约数。assertVisible: Products断言元素出现。登录成功才会出现商品列表断言失败前会先轮询到超时这个内建的智能等待正是整个流程里不需要写 sleep 的原因。assertNotVisible反向断言本例没用上适合确认页面已跳转、旧元素消失。动态加载的页面在断言前插一行- waitFor: 目标文本显式等待即可。不建议改用加长全局超时来救场那只会把快速失败变成缓慢失败。接下来改流程做验证把密码故意写成secret_sauce_2重跑。终端会在assertVisible: Products处报错并打印 Debug output (logs screenshots) 的路径。打开该目录能看到失败时刻的截图——一眼就能判断是登录失败提示而不是网络或设备问题。失败时自动留证据是它比手动点更值的地方。进阶能力一键录制测试视频与多设备并行流程跑通后把test换成record即可maestro record first_flow.yaml执行后应看到调试目录里多出一个maestro-recording.mp4把整段运行渲染成 1920x1080 的视频。做演示或 bug 报告时一段视频比十张截图好沟通这条命令就是为此设计的。流程数量多了以后给maestro test flows目录/加--shard-split 2会把全部流程平均分到 2 台已连接设备上并行跑。按文件切分、每台设备各跑完整子集是它不会互相串状态的原因。maestro studio还能打开可视化编辑界面不过 Studio 客户端本身不在本仓库里这里只有调用入口。新手最常卡住的3个问题下面 3 条覆盖了第一次跑 Maestro 最常见的失败点都按现象→动作处理任何命令都提示 Java 版本不支持动作java -version确认是否 17 及以上默认 JDK 太旧时先切换JAVA_HOME再重跑。maestro test报告找不到设备动作先跑maestro list-devices看列表为空就先启动 Android 模拟器或 iOS 模拟器等设备 ID 出现再重跑Web 流程始终带--platform web。元素明明在屏幕上却报Element not found动作跑maestro print-hierarchy导出真实元素树逐字对比你写的文本与实际值。多数情况是文案不一致、多了空格或断言写得比动态内容加载还早。下一步想多看真实场景从仓库的 e2e/workspaces/ 里的 Wikipedia 与纯 Web 示例流程开始命令参数都能直接抄。要深入解释器和元素查询的实现入口在 maestro-orchestra/ 模块。建议先git clone https://gitcode.com/GitHub_Trending/ma/maestro把任一示例流程里的url换成你自己的页面跑一遍。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表