做移动端 UI 自动化的团队,多数第一个想到的是 Appium。我这边接触过的几乎都是这样。框架本身够用。等到维护压不住,才会认真找别的做法。
时间和环境花在哪
环境要先配齐:手机驱动、SDK、服务端、客户端连接,还要处理机型差异和系统版本差异。环境不稳的时候,测试同学的大部分时间花在设备为什么连不上,功能验证排在后面。
脚本是第二块。基于元素定位的方案,写的时候要选定位方式,跑的时候要处理等待和弹窗,改版之后还要回头修。一个控件一调,可能让一批用例一起失效。用例越多,要改的越多,最后常常是堆了很多用例,真正在跑的不多。
| 维度 | 传统脚本方案 | 用对话 + 工作流 |
|---|---|---|
| 起步成本 | 要搭环境、写代码 | 说清楚步骤即可开跑 |
| 用例表达 | 代码块 + 断言 | 自然语言描述 |
| 改版影响 | 元素定位失效需改脚本 | 按屏幕内容执行,更抗改版 |
| 多机型 | 逐套环境分别配 | 设备分组统一选 |
| 结果查看 | 测试报告框架 | 执行历史统一记录 |
这条路盖不住完整的测试工程。它针对的是快速验证和重复回归。工具是 iEasyRun,装在自己电脑上就能跑,支持安卓、iOS、鸿蒙,多台手机放在一起管。
用对话说步骤,再用工作流存下来
先按 安装选型页 装好工作站和手机端程序,在 设备 页确认测试机在线。离线设备只能看,不能跑。
然后到 对话 页新建会话,选中在线测试机,用大白话把用例讲一遍。说清楚三件事:
- 前置条件:从哪个界面开始,需要先登录还是先清数据。
- 操作步骤:先点哪、再输入什么、等什么界面出现。
- 预期结果:界面应该出现什么文字、跳转到哪个页面。
对话页底部有「咨询 | 执行 | 细化」,按用例清楚到哪一步来选。
执行:步骤你已经清楚,直接发指令,AI 马上规划,并在真机上操作。
细化:只知道要测什么,步骤还没想全。先多轮把界面、顺序、边界条件补全,整理成可执行步骤,再切到「执行」。
咨询:只问写法,不控测试机。
一条可以照抄起步的描述:
打开应用,用测试账号登录,进入「我的」页面,点击头像进入个人资料,修改昵称为 test001,保存后返回上一页,确认昵称显示为 test001。
细化时沉淀下来的描述,可以存到 提示词 页。同一条用例下次再跑,直接调出来。
对话适合试。某条用例连续几次都跑得稳,就存下来,免得每次重新描述。
在 工作流 页的工作流库里新建一条,进画布编辑。常见步骤有「启动自动化环境」「等待」「打开应用」「手势-滑动」,把用例排成固定顺序。
| 画布能力 | 在测试场景里的用途 |
|---|---|
| 校验 | 上线前检查步骤连线与参数,避免跑一半才暴露配置错误 |
| 排版 | 步骤变多后自动整理布局,用例结构一眼看清 |
| AI 工作流协作 | 让 AI 帮忙生成或补充步骤,长用例不必从零搭 |
| 试跑 | 选一台测试机先验证模板,再推广到整组设备 |
账号、昵称、关键词这类每次可能变的内容,留成参数,不要写死在模板里。运行时再传入。一条「修改昵称」模板可以做正常值,也可以跑边界值。
配好之后先试跑一台测试机。试跑结果进执行历史,和正式执行的记录格式一样,方便对照。
执行历史怎么看,多机型怎么分组
结果汇总在 执行历史 页。每条记录有四项:任务来源(对话会话、定时任务,还是工作流试跑)、执行状态(成功、失败或进行中)、目标设备、错误信息。失败时看错误信息里的日志摘要。
多机型回归时,按目标设备筛选,能看出是哪台机器、哪个系统版本出了问题。
报错里的词可以直接对上处理动作:
机型少的时候,差异还不明显。设备一多,就难对上是哪一台。在 设备 页按四步走:扫描、入库、起别名、分组。
测试机可以按两种方式分组。
按系统版本,比如「安卓 13」「安卓 14」「iOS 17」,用来看兼容性差在哪。
按用途,比如「冒烟机」「回归机」,把执行频率不同的机器分开。
分好组之后,下发回归任务时按组选设备,一次覆盖组内所有在线手机。每台独立执行同一条用例模板。新来一台测试机,入库并归到对应分组,后面的任务会带到它。
流程稳定后,用 定时 页把回归放到固定时间。配置工作流定时,选模板和目标分组,设好时间规则,到点自动执行。三条前提和别的定时任务一样:电脑上的工作站保持开启,调度在本地,没有云端;目标设备在线,或者到点能自动连上;走 USB 的设备,到点时连接仍然可用。
适合做什么,什么还得用原来的框架
适合交给它的,是关键路径冒烟、发版前的重复回归、多机型一致性验证、界面元素和文案在不在屏幕上。这些步骤明确,要反复跑,对响应速度要求不高。
仍然用原来那套的,是要精确断言数值和接口返回的测试、复杂并发和性能指标、以及要嵌进 CI、产出结构化测试报告的场景。iEasyRun 提供的是真机操作和执行记录,没有完整的测试报告框架。回归里点得最多的那部分可以交给它,断言和报告留在原来的框架里。
用例改成按屏幕内容执行之后,改版时少回去改元素定位。接一台测试机,挑一条最常跑的用例,用对话跑通,再存成工作流。跑顺之后再按机型分组,加上定时。软件完全免费,没有付费墙,装在自己电脑就能跑,数据留在本地。装法见 安装选型。
常见问题
- 不写代码真的能做移动端 UI 自动化测试吗?
- 可以。用自然语言在「对话」页描述用例,AI 在真机上执行;需要反复回归时,把用例存成「工作流」模板,下次选手机直接跑,全程不需要写脚本。
- 这种方式和 Appium 是什么关系?
- 定位不同。Appium 靠代码维护元素定位与断言,适合结构化的大型测试工程;这套方式面向快速验证与重复回归,用描述驱动、按屏幕内容执行,改版时更省维护。
- App 改版后用例会失效吗?
- AI 依据屏幕内容判断操作对象,比写死的元素定位更抗改版。如果出现纯图标按钮或识别不准的位置,补一条「找图模板」描述它长什么样即可恢复。
- 怎么查到用例在哪一步失败、报错是什么?
- 在「执行历史」页查看。每条记录包含任务来源、执行状态、目标设备和错误信息,常见原因有设备离线、自动化环境未就绪、工作流未授权、找图识别失败。
- 多机型测试要一台台配吗?
- 不用。把测试机在「设备」页入库、起别名,再按机型或系统版本分组。运行时按分组选择目标设备,同一批用例就能覆盖组内多台真机。
- 这些测试机必须一直插着数据线吗?
- 不一定。iEasyRun 支持插 USB 和连 WiFi 两种接法。要保证的是执行时设备在线——离线设备只能看不能跑,插 USB 的到点那一刻连接也要正常。
- 能只跑一条冒烟用例,不做完整回归吗?
- 可以。用例颗粒度由你自己定。常见做法是日常用对话快速跑关键路径冒烟,发版前用工作流定时对整组设备跑一遍回归模板。
- 测试过程中产生的数据安全吗?
- iEasyRun 本地运行在自己电脑上,不需要服务器,设备和任务数据留在本机。具体说明可以看站内的安全与多租户文档。