Appium3.7 连 安卓平台架构图 和 注意事项

Appium自动化测试安卓平台总体架构图:

注意点

以下注意点面向 Appium3.7

Nodejs版本

大于20.19,小于等于22.x

npm > 10

安卓机Hidden API机制

  1. 安卓 9 引入谷歌原生机制,区分公开 SDK 与系统内部隐藏接口;uiautomator2‑server 做控件抓取大量依赖隐藏接口。hidden_api_policy:系统全局设置,控制 ART 虚拟机拦截隐藏接口的松紧。

  2. Appium 三条 shell 命令

    settings delete global hidden_api_policy_pre_p_apps
    settings delete global hidden_api_policy_p_apps
    settings delete global hidden_api_policy

目的:adb 修改全局系统配置,整机放开 hidden‑api 拦截。

  • Android9:普通 adb 有权限,可以生效。
  • Android10 + 非 root:普通 adb 没有WRITE_SECURE_SETTINGS权限,命令必然报权限拒绝,exit code=255。
  • 海外 ColorOS(OPPO A78)叠加OplusSecurityAgent厂商安全层,再次拦截 adb 操作,无系统开关关闭。
  1. ignoreHiddenApiPolicyError
  • 仅忽略新建 session 阶段上述 3 条 adb 命令执行失败报错,打印警告,不终止 session。
  • 不会修改系统配置,不会解除 hidden‑api 限制,不给 uia2 增加权限
  • 生效条件:
    • Python 客户端:必须options.set_capability("appium:ignoreHiddenApiPolicyError", True);直接赋值对象属性不会下发 cap,直接失效。
    • skip_device_initialization = False;开启该参数,整套初始化逻辑直接跳过,cap 完全无效。
  1. 两个关键 capability 开关
  • skip_server_installation=true:跳过 uiautomator2‑server、test 两个 apk 的 adb 安装与版本校验;手机上 apk 版本必须和电脑驱动版本严格匹配;和 hidden‑api 逻辑无关
  • skip_device_initialization=true:跳过 Appium Settings 安装、执行 hidden‑api 策略 shell 命令;会直接不执行 relaxHiddenApiPolicy 逻辑;普通真机调试不要开启,仅用于预部署完成的批量压测
相关推荐
2601_962298273 天前
Python自动化脚本的编写01
python·appium·自动化脚本·web自动化·应收账款管理
2601_962078193 天前
Appium+Python+pytest自动化测试框架详解
自动化测试·python·appium·pytest·移动应用
2601_962293536 天前
Appium+python自动化(十二)- Android UIAutomator终极定位凶器(超详解)
android·自动化测试·appium·定位·uiautomator
weixin-a1530030831610 天前
7.Appium-ios端自动化
ios·appium·自动化
2601_9622959912 天前
Python+Appium 自动化测试:从基础语法到 PO 模式设计,构建稳定测试框架
自动化测试·python·appium·测试框架·po模式
测试199813 天前
如何用appium搭建Android自动化测试框架?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
St_rive18 天前
Appium元素定位与常用方法
appium
Tester Kid2 个月前
Appium 元素定位深度讲解:五种方式逐个拆 + Inspector 完整用法
macos·appium·cocoa