CNWei 52758940ed feat(core,utils): 新增CoreDriver基础操作,更新文档
- 新增 switch_to_webview/switch_to_native 切换视图。
- 新增 config_loader.py 配置文件系统
- 优化 conftest.py,支持获取设备信息和默认参数。
- 优化 run_appium.py
- 更新 README.md
- 其他优化
2026-02-06 17:28:04 +08:00
2026-01-13 10:45:03 +08:00
2026-01-13 10:19:48 +08:00
2026-01-13 10:45:03 +08:00
2026-01-13 10:45:03 +08:00

AppAutoTest

设备能力配置 (Capabilities)

ANDROID_CAPS = {
    "platformName": "Android",
    "automationName": "uiautomator2",
    "deviceName": "Android",
    "appPackage": "com.android.settings",
    "appActivity": ".Settings",
    "noReset": False
}
字段名称 字段含义解释 示例值说明
platformName 测试的平台/操作系统。这是必填项告诉自动化框架如Appium目标是什么系统。 "Android" 表示这是一个Android设备。如果是iOS设备则为 "iOS"。
automationName 使用的自动化驱动引擎。指定底层用哪个工具来驱动设备进行UI交互。 "uiautomator2" 是当前主流的Android驱动框架比旧的 "UiAutomator" 更稳定和高效。
deviceName 设备标识/名称。用于在同时连接多台设备时指定目标。 "Android" 是一个通用标识。在实际测试中,通常用 adb devices 获取的真实设备序列号(如 emulator-5554来替换它以确保连接到正确的设备。
appPackage 要测试的应用程序包名。这是应用的唯一标识就像它在Android系统中的“身份证号”。 "com.android.settings" 是Android系统“设置”应用的包名。测试你自己的应用时需替换为你应用的包名。
appActivity 要启动的应用内具体页面。它指定了应用启动后打开的第一个界面Activity ".Settings" 是“设置”应用的主界面。前面的点. 表示它是 appPackage 下的一个相对路径。

获取应用的 appPackage 有几种常用方法

adb shell pm list packages | findstr your_package_name
# adb shell pm list packages -3 仅列出用户安装的第三方应用的包名

获取应用的 appActivity 有几种常用方法

# 1使用 aapt 工具分析 APK 文件(需有安装包)/build-tools/{version}/aapt
aapt dump badging your_app.apk | findstr launchable-activity
# 输出结果launchable-activity: name='com.example.myapp.MainActivity'
# name= 后面的值 'com.example.myapp.MainActivity' 就是你需要的主 Activity

# 2通过 ADB 命令获取(需应用已安装)
adb shell dumpsys window | findstr mCurrentFocus
# 输出结果mCurrentFocus=Window{... u0 com.example.myapp/com.example.myapp.MainActivity}
# / 后面的部分 com.example.myapp.MainActivity 就是当前 Activity

常用补充字段: noResetTrue/False。是否在会话开始前重置应用状态例如清除应用数据。设置为 True 可以避免每次测试都重新登录。

platformVersion指定设备的Android系统版本如 "11.0")。虽然不是必须,但指定后能增强兼容性。

unicodeKeyboard 和 resetKeyboard用于处理中文输入等特殊字符输入。

newCommandTimeout设置Appium服务器等待客户端发送新命令的超时时间默认为60秒。在长时间操作中可能需要增加。

allure核心属性表

属性 说明 用法示例
@allure.epic 顶层分类APP项目名称 定义在测试类/项目上
@allure.feature 功能模块(如:登录模块、交易模块) 定义在测试类上
@allure.story 用户场景(如:成功登录、账号锁定) 定义在测试方法上
@allure.title 测试用例标题(支持动态显示) 替换方法名显示在报告中
@allure.severity "严重程度BLOCKER, CRITICAL, NORMAL..." 用于筛选高优先级用例
@allure.description 详细描述(支持 Markdown 解释测试背景或前提条件
@allure.link 外部链接Bug系统、需求文档 快速点击跳转
@allure.issue 缺陷链接(通常会自动带上 ISSUE 前缀) 追踪已知 Bug

Pytest 原生高频参数 和 你的自定义参数。

分类 长参数 短参数/别名 作用说明
基础运行 --verbose -v 打印详细运行过程(显示用例名称)
(无) -s 允许在控制台打印代码里的 print 内容
调试控制 --exitfirst -x 遇到第一个失败的用例就立即停止测试
--maxfail=n (无) 累计失败 n 个用例后停止运行
--last-failed --lf 只运行上次运行失败的用例
自定义参数 --platform -P 指定运行平台 [Android/IOS/别名](可自定义)
--udid -U 指定手机唯一标识 (可自定义)
--host -H 指定 Appium 服务器地址 (可自定义)
报告相关 --alluredir (无) 指定 Allure 原始数据的存放路径
Description
No description provided
Readme MIT 773 KiB
Languages
Python 100%