打开应用
打开应用 用于在移动设备上启动指定应用程序。你可以从平台预置的应用列表中选择目标应用,支持在 Android、iOS 和 Harmony 设备上执行,并支持冷启动和热启动两种模式。它常用于 UI 自动化回归、稳定性测试、多 App 互跳链路验证和远程运维等场景。
指令标识:MobileOpenApplication
指令类型:移动端指令
指令描述:在移动设备上启动指定应用程序
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。打开应用 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「打开应用」节点,在右侧表单选择应用包名,按需在高级配置中修改打开类型 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.mobileOpenApplication(appPackage=..., openType="COLD") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 自动化测试流程中启动被测应用,进入主界面开始测试。
- 启动应用后进行长时间稳定性测试或随机操作测试。
- 多应用跳转场景中启动目标应用,验证跳转链路。
- 远程启动设备上的应用,进行运维操作或问题排查。
- 测试应用的启动时间和启动性能指标。
- 目标应用已安装在设备上;若未安装会返回
APP_NOT_EXIT_ERROR,可提前调用 安装应用。 - 已从平台预置的应用列表中选择正确的目标应用。
- 应用启动后建议增加适当等待,确保页面加载完成。
- 多进程应用(如小程序容器)请确认
appPackage与实际运行进程对齐。
【图片占位 | command-mobileopenapplication-config】
截图内容建议: 截一张可视化编排页面,画布选中「打开应用」节点,右侧属性面板展示「应用包名」下拉选择和高级配置中的「打开类型」。
标注建议: 用 ① 标出应用包名下拉框,用 ② 标出打开类型(冷启动/热启动),用 ③ 标出高级配置入口,用 ④ 标出运行按钮。
用户看完应能明白: 主要只需要选择目标应用包名;打开类型是按需配置的高级项,默认冷启动。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:冷启动被测应用,进入主界面准备后续操作。按 3 步即可跑起来:
- 在画布中添加 打开应用 指令,通常放在移动端流程的前面。
- 在 应用包名 下拉框中选择目标应用;如需热启动,在高级配置中把「打开类型」改为
HOT。 - 点击运行,确认目标应用已启动并进入主界面。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 应用包名 | appPackage | Enum | 是 | - | 目标应用,从平台预置的应用列表中以下拉枚举方式选择(取值为平台预置的应用枚举,对应各应用的 Android 包名或 iOS/Harmony BundleId)。 |
| 打开类型 | openType | Enum | 否 | COLD(冷启动) | 高级参数,冷启动=COLD(完全重新启动应用,清除之前状态);热启动=HOT(从后台唤醒应用,保留之前状态)。 |
- 目标应用被成功启动并进入主界面。
- 冷启动时应用从初始状态加载,热启动时保留之前状态。
- 运行日志中没有应用未安装或启动失败报错。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
返回 APP_NOT_EXIT_ERROR | 目标应用未安装 | 先调用 安装应用 安装应用 |
| 启动后页面未加载完成 | 没有等待时间 | 启动后增加 延迟 或等待关键元素出现 |
| 多进程应用启动异常 | appPackage 与实际运行进程不一致 | 调用前确认 appPackage 字段正确 |
| 选择的应用与预期不符 | 选错了预置应用枚举 | 在下拉框中重新选择正确的目标应用 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 冷启动应用(默认)bots.mobileOpenApplication( appPackage="com.example.app", openType="COLD",)如需从后台唤醒应用,使用热启动:
# 热启动应用bots.mobileOpenApplication( appPackage="com.example.app", openType="HOT",)可视化表单里的「应用包名」「打开类型」分别对应代码里的 appPackage、openType。其中 appPackage 在界面上以下拉枚举方式提供,代码编排时填写对应的预置应用枚举值或应用包名。
如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)。
Q1:如果应用尚未安装会怎样?
Section titled “Q1:如果应用尚未安装会怎样?”A: 若应用尚未安装,打开应用将返回 APP_NOT_EXIT_ERROR。可提前调用 安装应用 指令安装应用。
Q2:多进程应用如何处理?
Section titled “Q2:多进程应用如何处理?”A: 对于多进程应用(如小程序容器),内部通过 getPackageName 取值 appPackage 与实际运行进程对齐,如有差异请在调用前确保字段正确。
Q3:应用启动后需要等待吗?
Section titled “Q3:应用启动后需要等待吗?”A: 应用启动后建议添加适当的等待时间,确保页面加载完成。可以使用 延迟 指令或等待关键元素出现。
Q4:冷启动和热启动有什么区别?
Section titled “Q4:冷启动和热启动有什么区别?”A: 冷启动和热启动的主要区别如下表所示:
| 特性 | 冷启动 | 热启动 |
|---|---|---|
| 启动方式 | 完全重新启动应用 | 从后台唤醒应用 |
| 应用状态 | 清除之前的状态 | 保留之前的状态 |
| 内存使用 | 重新加载所有资源 | 复用已加载的资源 |
| 启动速度 | 较慢 | 较快 |
| 适用场景 | 测试初始状态、首次启动性能 | 测试恢复场景、应用切换 |