CNWei 4de84039cb refactor: 优化代码
- 优化 部分核心功能实现。
- 新增 详细的文档字符串(Docstrings)和注释。
- 移除 代码中的冗余注释和无效代码。
2026-02-02 17:48:30 +08:00
2026-02-02 17:48:30 +08:00
2026-02-02 17:48:30 +08:00
2026-02-02 17:48:30 +08:00
2026-01-13 10:45:03 +08:00
2026-02-02 17:48:30 +08:00
2026-01-13 10:19:48 +08:00
2026-01-23 17:55:20 +08:00
2026-01-13 10:45:03 +08:00
2026-01-13 10:45:03 +08:00
2026-01-23 17:55:20 +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
Description
No description provided
Readme MIT 773 KiB
Languages
Python 100%