# 帮助文档

工具介绍:

用于小米 IoT 设备升/降级压力和遍历测试,支持 WiFi、蓝牙 Mesh、PLC 类型的设备。

功能介绍:

1. WiFi 设备/PLC 设备(支持联网方式为 WiFi 或者 PLC 的设备)

1.1 压力测试

  • 用户选择任意两个固件版本和 OTA 测试次数,工具会在两个版本之间进行指定次数的 OTA 升降级测试。

  • 具体测试用例执行过程为:通过调用米家给设备发送 RPC 命令的接口,发送 OTA 命令给设备,然后再发送查询设备信息命令查询设备固件版本信息来判断 OTA 是否成功。

1.2 遍历测试

  • 用户选择任意一个固件起始版本(非最新),工具会筛选出起始版本及以上版本,并依次将设备从各个版本升级到最新版本。

  • 具体测试用例执行过程为:获取当前固件的所有版本(如果选择了最低版本,则筛选出最低版本以上的固件版本), 依次通过-给设备发送 OTA RPC 命令的方式,先给设备降级到指定版本然后再升级到最新版本。

1.3 固件刷包

  • 固件刷包可用于固件版本迭代开发调试过程中,通过发送 RPC 命令的方式给设备刷入指定的固件包,来弥补烧录方式刷包的不足。

  • 用户可以先在开发者平台上上传一个固件包,然后在 OTA 工具平台上,通过这个功能给设备刷入该固件包。

1.4 自动升级

  • 自动升级用于验证新开发支持自动升级功能的 MCU 版本其自动升级功能是否正常。

  • 工具测试流程为先给设备下发 miIO.ota 命令,使其降级到一个指定版本(该版本由用户在任务触发页面填入),验证降级成功后再下发 miIO.set_auto_upgrade 命令,触发设备发送自动升级请求来完成升级。最后验证设备固件版本是否与最新版本一致。

2. 蓝牙设备(目前只支持 BLE-Mesh 设备)

  • Android 手机下载安装蓝牙 OTA 升降级测试工具,进行 OTA 升降级以及压力测试。 针对通过蓝牙方式联网接入的设备,因为无法直接接入互联网,所以需要通过工具先下载固件版本包然后再通过蓝牙传输给设备来进行 OTA 升级,这里提供了的蓝牙 OTA 工具是一个 Andriod APK,安装 APK 后就可以对蓝牙设备进行 OTA 升级以及 OTA 压力测试,具体使用介绍详见工具 App 使用说明页面。

使用步骤:

1. 准备工作

  • 准备小米 IoT 开发者平台账号 (opens new window)(以下简称为开发者账号)和被测设备

  • 将被测设备绑定到开发者账号上

  • 确保设备属于该开发者所在的企业组,否则没有测试权限

  • 确保设备为在线状态

2. 登录系统

  • 使用开发者账号登录客户端

3. 测试工具入口

  • 新增支持 BLE-Mesh 2.0 设备 OTA 测试,用户可从以下入口进入,并选择BLE-Mesh 2.0设备进行测试:

screenshot

  • 蓝牙 OTA APK 工具,请从以下入口进入下载

screenshot

  • WIFI 类设备 OTA 测试,请从以下入口进入测试

screenshot

3. OTA 测试(以 WIFI 类设备,任务类型为压力测试为例)

  • 选择测试环境,找到待测设备(支持关键字搜索)

screenshot

  • 指定 OTA 压力测试次数、固件升降级版本号,点击 “开始测试” 按钮

screenshot

  • 点击开始测试后,将自动打开展示测试日志,点击右上角 “终止测试” 按钮可终止当前测试

screenshot

  • 测试报告默认手动上传,用户可根据实际情况上传;如果不上传,测试结果页面中将查询不到此次测试报告。

screenshot

  • 点击底部 “测试任务” 按钮,可查看当前正在运行和历史任务;针对 比较耗时 的测试任务,可等测试结束后再 手动补传 报告

screenshot

  • 上传报告后,可以点击 “查看报告” 跳转查看对应的测试报告和测试结果,当然你也可以在 “测试结果” 列表中查看相关报告。

screenshot

screenshot

FAQ:

1. 为什么没有设备的测试权限?

  • 请确认该设备是否属于该开发者所在的企业组

  • 确保设备处于开机并联网状态(在线)

  • 如果登录系统的账号不是开发者账号,请将设备绑定到开发者账号并使用该账号登录测试系统

2. 如何测试海外设备的 OTA 升降级?

  • 使用开发者账号登录米家 App 将待测设备绑定到外海地区

  • 在开发者平台上将待测设备固件版本同步到海外地区

  • 登录当前系统点击右上角切换到对应的海外地区

3. OTA 压力测试最大次数是多少?

  • 单个任务,最大 OTA 次数为 5000 次

4. 单个普通用户最大运行任务数为多少?

  • 5 个

5. 为什么创建完任务后,任务显示等待中且没有任务日志?

  • 由于服务资源有限,目前只能同时支持 30 个 OTA 任务,超过数量的任务会排队等待

6. 创建任务页面升降级次数/遍历次(轮)数选项如何理解?

  • 举例说明:任务类型为压力测试,升降级次数为 100 次,表示会对设备固件一次降级一次升级循环进行 100 次。 任务类型为遍历测试,遍历次(轮)数为 1 次(轮),表示对筛选出来符合条件的版本依次升级到最新版本,只跑一轮。

7. OTA 测试报告验收标准是什么?

  • 原则上测试类型为压力测试,要求 ota 次数为 100 次,警告次数比例不大于 10%,失败次数为 0。如果有偶现失败的 ota,判断是网络原因导致的也是允许的。

8. 一次任务中,某次 OTA 偶现失败如何分析?

  • 点击任务报告中此次 ota 的“查看详情”,可以看到模组上报给服务端的上行 ota 相关日志(不支持海外地区),通过日志可以做一些简单的分析来判断是否是网络问题导致本次 ota 失败。

9. 为什么海外地区的 OTA 任务,失败率高?

  • 如果设备在国内,那么固件下载模组会从海外 fds 服务器地址下载固件包,因为网络链路比较长,所以下载失败概率比较高。

10. 为什么测试报告中存在状态为“跳过”的 OTA 用例?

  • 原因一:某次 OTA 压力测试任务,如果失败的 OTA 次数过多,后续的 OTA 就会直接跳过来结束任务,减少系统资源浪费。
  • 原因二:部分小米自研的模组,特定版本不支持降级到低版本,所以提示 “与不支持 OTA 的特殊配置项吻合,本次 OTA 跳过!”。

11. 为何在 OTA 工具平台执行了 OTA 测试,在开发者平台上仍然显示未使用?

  • 需要在 OTA 上执行压力测试,并且执行次数大于等于 100 次,开发者平台才会显示使用

12. 设备在国内,绑定的服务器也是国内,为何固件升级时总是失败?

  • 有可能是在开发者配置固件版本时,维护的固件版本号和上传的固件文件不一致导致,比如,固件版本号维护的 4,上传的固件文件版本号是 3,这样肯定会一直失败;需要在开发者平台重新上传对应的固件程序文件

13. 对于 ble mesh2.0 设备,在做压力测试时,指定升级的版本是 1 和 2,在凌晨 2 点-6 点之间跑的时候,版本突然变成了 3,什么原因?

  • 因为 ble mesh2.0 支持自动升级,在凌晨 2 点到 6 点会自动升级;如果你的任务在 这个时间段跑,那么就会出现升级版本 1 或者 2 时,升级结束,设备版本变成了 3,这是自动升级导致的,可以在开发者平台新建一个同类 model,在新建的时候,关闭此功能

    screenshot

上次更新: 9/2/2024, 8:24:00 PM