Manual Channel MQTT - Shaofa/AliOS-Things-Certification-Manual GitHub Wiki
进行MQTT通道测试前,需要准备阿里云账号并在阿里云物联网套件平台创建测试设备,详细准备工作见下文。
- 阿里云物联网套件平台使用阿里云账号登录,在测试前若无阿里云账号请首先注册阿里云账号
- 在阿里云账号下创建accessKeys https://ak-console.aliyun.com/#/accesskey
accessKey是访问阿里云API的密钥,务必妥善保管,若accessKey已经存在则无需再创建
登录阿里云物联网套件网站,在华东2区域中创建测试产品和测试设备,并保存测试设备的三元组(ProductKey、DeviceName、DeviceSecret)
IoT调试测试工具是用于向指定设备长时间周期性发送数据的桌面工具,在通道压测中使用。
通道压测的基本原理如下图: 设备端需要订阅get主题,在get主题回调函数中将接收到的消息原封不动发布到update主题,工具统计定时发布消息并接收来自设备的消息。
为了配合工具使用,需要对设备代码做部分适配,详细操作步骤如下:
- 从GitHub下载AliOS Things源码,
{SOURCE_ROOT}/example/mqttapp
目录是MQTT的基本用法 - 下载用于MQTT通道压测的源码补丁
- 对
{SOURCE_ROOT}/example/mqttapp/mqtt-example.c
打补丁$ patch {SOURCE?ROOT}/example/mqttapp/mqtt-example.c mqtttest.patch
- 编译Linux平台下的虚拟设备,用于验证工具和设备代码符合预期:
aos make mqttapp@linuxhost
- 在Linux平台下执行可执行程序:
./out/mqttapp@linuxhost/binary/[email protected]
- 启动IoT调试测试工具,填写账号参数、设备参数和压测参数,创建压测任务
- 正确填写AccessKeyId、AccessKeySecret、ProductKey、DeviceName后,若设备在线则会显示绿色的亮点
- 在查看Linux下查看虚拟设备日志打印,若显示如下日志表示压测任务创建成功
- 编译目标平台下的真实固件,并在硬件测试:
aos make mqttapp@{board}
压测过程中设备是否出现离线、是否存在丢包,可以通过日志系统准确的查询出来
MQTT通道稳定性测试通常需要将设备长时间挂机,例如,5x24小时,保持设备所处网络环境稳定,待长时间挂机结束后通过日志查询设备在稳定性挂机期间是否有离线的情况
测试过程中建议完整保存设备日志,并通过工具对设备端日志打上时间戳,便于在出现离线时快速准确判断设备行为