- 新增 AndroidSDK环境配置指南.md, 常用参数.md - 更新 README.md - 优化 wan_android_home.py, wan_android_project.py - 其他优化
5.7 KiB
5.7 KiB
常用参数说明
设备能力配置 (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
常用补充字段: noReset:True/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 原始数据的存放路径 |