IoTAutomationFramework_2.0 安卓测试自动化工具
概述
这是一个基于 Python 的 IoT 设备自动化测试框架,主要用于测试高通(Qualcomm)芯片平台的设备。
核心自动化工具
1.ADB (Android Debug Bridge)⭐⭐⭐⭐⭐
主要工具,使用最广泛
位置:
Libs/Utilities/adb.py用途:
- 设备连接和通信
- 执行 shell 命令
- 文件传输(push/pull)
- 设备重启
- 日志收集
使用示例:
fromLibs.Utilities.adbimportadb# 执行命令adb.run_cmd("adb shell ls /data",serial_number)# 推送文件adb.push(local_path,remote_path,serial_number)# 拉取文件adb.pull(remote_path,local_path,serial_number)# 重启设备adb.run_cmd("adb reboot",serial_number)特点:
- 支持多设备(通过 serial_number 区分)
- 支持 ADB over WiFi
- 自动日志记录(发送和接收的命令)
2.UIAutomator2⭐⭐⭐⭐
UI 自动化工具
库:
uiautomator2(简称 u2)用途:
- Android UI 元素定位和操作
- 点击、滑动、输入等交互
- 截图和屏幕录制
- 应用启动和管理
使用示例:
importuiautomator2asu2# 连接设备d=u2.connect(serial_number)# 点击按钮d(resourceId="com.example:id/button").click()# 输入文本d(resourceId="com.example:id/edit").set_text("Hello")# 检查元素是否存在ifd(text="Settings").exists:d(text="Settings").click()# 滑动d.swipe(100,500,100,100)应用场景:
- LAW (Linux Android Wear) 平台测试
- UI 交互测试
- 设置配置
- 弹窗处理
3.SSH⭐⭐⭐
远程连接工具
位置:
Libs/Utilities/SSH/SSH.py用途:
- Linux 设备远程连接
- 执行 shell 命令
- 文件传输
使用场景:
- LE (Linux Embedded) 平台
- LU (Linux Ubuntu) 平台
- 需要 SSH 访问的设备
4.Alpaca TAC⭐⭐
硬件控制工具
库:
alpaca.tac用途:
- 硬件电源控制
- 设备重启(硬件级别)
- USB 切换
使用示例:
importalpaca.tac# 探测设备ports=alpaca.tac.ProbeForDevices()# 电源控制# 用于硬件级别的设备控制
5.GStreamer⭐⭐⭐⭐
多媒体处理工具
用途:
- 相机预览和录制
- 视频编码/解码
- 音频处理
- 多媒体管道测试
使用示例(通过 ADB 执行):
# 相机预览gst-launch-1.0 qtiqmmfsrccamera=0!video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1!waylandsink# 视频录制gst-launch-1.0 qtiqmmfsrccamera=0!video/x-raw(memory:GBM),format=NV12!qtic2venc!h264parse!mp4mux!filesinklocation=/data/video.mp4配置文件:
Plan/*/Config/Camera/TestCommands/*.json
辅助工具和库
6.其他 Python 库
日志和监控
- logging- Python 标准日志库
- threading- 多线程支持
- subprocess- 进程管理
数据处理
- json- JSON 配置文件解析
- xml.etree.ElementTree- XML 配置解析
- re- 正则表达式
网络和通信
- requests- HTTP 请求(结果上传)
- socket- 网络通信
- serial- 串口通信(调试 UART)
可视化
- matplotlib- 数据可视化
- Chart.js- HTML 报告图表(前端)
硬件接口
- TACDev- TAC 设备驱动
- win32api/win32con- Windows API(文件属性等)
测试框架架构
IoTAutomationFramework_2.0/ ├── TestEntrance.py # 测试入口 ├── Libs/ │ ├── Utilities/ │ │ ├── adb.py # ADB 封装 │ │ ├── SSH/ # SSH 工具 │ │ └── Utility.py # 通用工具 │ ├── Tests/ │ │ ├── BaseTestCase.py # 测试基类 │ │ └── TestProcedure.py # 测试流程 │ └── LogCatcher/ # 日志收集 ├── Case/ │ └── Products/ # 产品测试用例 │ ├── QCS8550_LE_1_0/ │ ├── QRB5165_UBUN_2_0/ │ └── ... └── Plan/ # 测试计划和配置 ├── LE/ # Linux Embedded ├── LU/ # Linux Ubuntu └── LAW/ # Linux Android Wear支持的平台
1.LE (Linux Embedded)
- 工具: ADB + SSH + GStreamer
- 芯片: QCS8550, QCS615, QCM6490 等
- 特点: 嵌入式 Linux 系统
2.LU (Linux Ubuntu)
- 工具: ADB + SSH + GStreamer
- 芯片: QRB5165 等
- 特点: Ubuntu 系统
3.LAW (Linux Android Wear)
- 工具: ADB + UIAutomator2
- 芯片: SW5100, SW6100, SDM429W 等
- 特点: Android Wear 系统,需要 UI 自动化
4.LA (Linux Android)
- 工具: ADB + UIAutomator2
- 芯片: QCS8245, QCS610 等
- 特点: Android 系统
测试类型
1.Stability 测试
- Reboot 测试
- Suspend/Resume 测试
- 长时间运行测试
2.功能测试
- Camera 测试(预览、录制、快照)
- Audio 测试(播放、录制)
- Video 测试(编解码)
- Connectivity 测试(WiFi、BT)
- Sensor 测试(IMU、GPS)
3.性能测试
- CPU/Memory 压力测试
- 并发测试
- AI/ML 模型测试
4.并发测试
- 多摄像头并发
- WiFi + Audio + Camera + ML 并发
关键特性
1.多设备支持
- 通过 serial_number 区分设备
- 支持 ADB over WiFi
- 支持 USB 和网络连接
2.灵活的测试策略
- Random - 随机执行测试用例
- Sequence - 顺序执行
- Iteration - 迭代执行指定次数
3.完善的日志系统
- 自动收集 logcat
- 自动收集 kernel log (kmsg)
- 自动收集 tombstone/coredump
- 生成 HTML 测试报告
4.后台测试支持
- CPU/DDR 压力测试
- 并发测试
- 长时间稳定性测试
依赖安装
# 核心依赖pipinstalluiautomator2 pipinstallrequests# 可选依赖pipinstallmatplotlib pipinstallalpaca-tac# 如果使用 Alpaca 硬件# ADB 需要单独安装# 下载 Android Platform Tools# 添加到系统 PATH总结
这个框架是一个混合型自动化测试框架,主要特点:
- 以 ADB 为核心- 所有平台都使用 ADB 作为主要通信工具
- UI 自动化- 使用 UIAutomator2 处理 Android UI 交互
- 多媒体测试- 使用 GStreamer 进行相机和视频测试
- 硬件控制- 使用 Alpaca TAC 进行硬件级别控制
- 跨平台支持- 支持 Linux Embedded、Ubuntu、Android Wear 等多个平台
适用场景: IoT 设备、嵌入式系统、Android 设备的自动化测试,特别是高通芯片平台。
