当前位置: 首页 > news >正文

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

总结

这个框架是一个混合型自动化测试框架,主要特点:

  1. 以 ADB 为核心- 所有平台都使用 ADB 作为主要通信工具
  2. UI 自动化- 使用 UIAutomator2 处理 Android UI 交互
  3. 多媒体测试- 使用 GStreamer 进行相机和视频测试
  4. 硬件控制- 使用 Alpaca TAC 进行硬件级别控制
  5. 跨平台支持- 支持 Linux Embedded、Ubuntu、Android Wear 等多个平台

适用场景: IoT 设备、嵌入式系统、Android 设备的自动化测试,特别是高通芯片平台。

http://www.jsqmd.com/news/740159/

相关文章:

  • 深入对比:Zynq上AXI UARTLite vs UART 16550,多路串口方案到底怎么选?
  • 2026年最新排名:中国质量协会六西格玛考试含金量怎么样(附避坑榜) - 众智商学院课程中心
  • [C# 笔记] 如何设置消息钩子 (以低级鼠标钩子为例)
  • 为什么选择优德营造Omakase设计打造你的日料餐厅?
  • 原神游戏数据采集与分析实战指南
  • 2026 选什么降 AI 软件不踩坑?看排行前先搞懂这 3 个降 AI 平台差异。 - 我要发一区
  • GSPO算法:序列级策略优化在旅行规划中的应用
  • **2026年5月六西格玛认证排行榜|黑带VS绿带含金量与报考评价** - 众智商学院课程中心
  • Linux系统PPP拨号全攻略:从串口调试到断线自动重连的完整实现
  • 04 接雨水 单调栈
  • Ultralytics LLM:将YOLO工程哲学带入大语言模型应用开发
  • 开源桌面示波器Haasoscope:FPGA+MCU架构与Python客户端全解析
  • 深度解析applera1n:基于checkm8漏洞的iOS激活锁绕过技术实现
  • 中山AI优化提供商哪家强?原来有这些选择!
  • OBS虚拟摄像头进阶玩法:除了共享屏幕,还能在腾讯会议里玩出什么花?
  • 毕业答辩前选哪款降 AI 软件?2026 排行前 5 让 AI 率降到 5% 以下! - 我要发一区
  • 第二章、application.properties文件的配置
  • 2026年5月六西格玛绿带黑带含金量排行|报考避坑榜Top5 - 众智商学院课程中心
  • Ubuntu Server 24.04下解决SunloginClient 向日葵依赖libgconf-2-4安装问题
  • SAP SD新手避坑:VA01创建销售订单报‘无定价过程’?手把手教你用OVKK搞定配置
  • 从Pikachu靶场看企业级Web安全:这些漏洞在真实业务中如何防御?
  • MAA明日方舟自动化助手完整指南:如何一键解放双手高效长草
  • 论文 AI 率从 78% 降到 3.2%!2026 排行前 3 降 AI 软件让你赶上答辩。 - 我要发一区
  • ESXi 7.0U3迁移实战:手把手教你用命令行把旧主机配置‘克隆’到新服务器
  • 告别串口助手!手把手教你用TC264打造一个“硬件版”参数配置器
  • 【读书笔记】《你就是孩子最好的玩具》
  • 2026年05月六西格玛黑带绿带推荐榜单:含金量排行与报考避坑指南 - 众智商学院课程中心
  • 保姆级教程:在Ubuntu 22.04上从源码编译安装Eclipse Paho C库,并手把手写一个MQTT同步客户端
  • OpenClown:为AI助手配备多维度专家评审团,提升输出质量与安全性
  • ROS2 C++开发系列04:如何有效输出机器人状态