# LoRa核心网测试

author: 游仙

createTime: 2022-02-16

# LoRaWAN协议

根据目前应用节点(采集器、传感器等)协议版本及测试要求熟悉对应版本的协议。

LoRaWAN主要包含2份协议。

  1. LoRaWAN协议规范,协议内容主要包括Classes类型,PHY帧和MAC帧格式,MAC指令,终端激活等

LoRaWAN协议规范如下:(按时间排序)

1.0 (opens new window)

1.0.1 (opens new window)

1.0.2 (opens new window)

1.1 (opens new window)

1.0.3 (opens new window)

1.0.4 (opens new window)

  1. LoRaWAN区域参数,协议内容主要包含各个区域的频段,通道频点,DataRate,TXPower,最大帧载荷,接收窗口,默认配置(如rx1和rx2接收窗口延时,最大fcnt间隔等)

LoRaWAN区域参数协议如下:(按时间排序)

rp_1.0 (opens new window)

  • LoRaWAN1.0.2协议规范配套文件

rp_1.0.2rb (opens new window)

  • LoRaWAN1.0.2协议规范配套文件

rp_1.1ra (opens new window)

  • LoRaWAN1.1协议规范配套文件

rp_1.0.3reva (opens new window)

  • LoRaWAN 1.0.3协议规范配套文件

rp2_1.0.0 (opens new window)

  • LoRaWAN所有协议规范配套文件

rp2_1.0.1 (opens new window)

  • LoRaWAN所有协议规范配套文件

rp2_1.0.2 (opens new window)

  • LoRaWAN所有协议规范配套文件

rp2_1.0.3 (opens new window)

  • LoRaWAN所有协议规范配套文件

# 服务架构

# 功能测试

# 编写测试用例

# bridge

主要测试点:

  1. 服务启动检查:配置文件、服务版本号是否正确

  2. 与gwmgr通信:验证gw_stats网关状态包、heart心跳包、gwmgr_rx上行、gwmgr_tx下行、gwmgr_req网关列表请求、gwmgr_resp网关列表响应是否正常

  3. 与ns通信:验证gw_rx上行、gw_tx下行是否正常

  4. 过滤器:验证NetID、JoinEUI、NetID+JoinEUI、网关过滤是否正常

  5. udp透传:验证网关配置和网关升级是否正常

  6. bridge配置项:日志配置

  7. 异常处理:kafka服务异常,bridge异常重启,通信是否正常

# ns

根据LoRaWAN标准协议、LoRaWAN区域参数协议以及其他测试要求编写测试用例。

1.0.2协议版本、CN470-510频段主要测试点:

  1. 服务启动检查:配置文件、服务版本号、数据库建表是否正确

  2. join:不同的SF、频点、带宽组合是否join成功

  3. uplink:不同的Fport、SF、频点、带宽组合是否发送成功,确认帧、非确认帧处理是否正常,不同的SF对于不同的帧长度限制是否正确,fcnt计数是否正常,异常发送时是否能正常处理(相同的确认帧,相同的非确认帧,丢包数大于最大fcnt间隔)

  4. downlink:不同的Fport是否发送成功,确认帧、非确认帧处理是否正常,不同的SF对于不同的帧长度限制是否正确,fcnt计数是否正常

  5. 接收窗口:rx1和rx2窗口的freq、dr是否正确

  6. mac指令:主要验证LinkCheck、LinkADR、TxParamSetup、RXTimingSetup等指令是否能正常处理

  7. 内部新增功能:自动ADR策略、下行网关选择策略、谐波处理策略等

  8. ns配置项:修改ns配置文件中的配置项,验证服务是否正确处理,例如日志配置等

  9. 异常处理:kafka、redis服务异常,ns多实例部署时单个实例异常时,服务处理是否正常

# 节点管理模块接口

根据rap2 LW-P007-核心网系统 节点管理模块编写测试用例

主要4个接口:创建设备、查找设备、删除设备、批量创建设备

主要测试点:

  1. 接口连通性测试:按照完整报文格式,调用接口,返回报文与规范一致且对应数据库及redis数据改变

  2. 报文结构及参数类型测试:报文结构缺失调用接口,确认接口是否按照规范提示缺少必填节点、不校验非必填节点

  3. 枚举值及边界值测试:报文节点取值验证枚举、边界值后调用接口,确认接口是否按照规范提示节点不正确

  4. 异常情况测试:完整报文,验证重复提交接口是否出现异常

# 部署测试环境

  • k8s自动部署

# 测试执行

# 测试辅助工具

1. 测试节点

(1) AT指令

(2)使用方法

  • windows电脑下载sscom工具

  • 使用usb线连接节点与电脑

  • sscom工具中选择连接的串口,打开串口

  • 在扩展中输入at指令,at+xxx,点击发送

  • 常用at指令如下

at+id=deveui,"xxxxxxxxxxxxxxxx" 设置deveui

at+id=appeui,"xxxxxxxxxxxxxxxx" 设置appeui

at+key=appkey,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 设置appkey

at+class=a 设置class类型

at+join join请求

at+ch 查询channel频点和dr

at+ch=0,470.3,DR0,DR5 设置channel频点和dr

at+dr 查询dr

at+dr=dr0 设置dr

AT+RXWIN1 查询rx1接收窗口channel和频点

AT+RXWIN2 查询rx1接收窗口频点和dr

at+cmsghex=xxxxx 发送确认帧

at+msghex=xxxxx 发送非确认帧

2. 测试网关

使用方法

  • 网关录入系统

  • 网关接网线或物联网卡,上电

  • 配置网关的服务ip和端口(bridge服务的ip地址和端口)

  • 配置网关的频点(与测试节点一致)

# 通信链路验证

  1. 测试节点录入系统(确保测试节点已在其他环境删除)

  2. 测试网关录入系统(确保网关已在线)

  3. 节点入网验证

(1)通过at指令设置导入测试节点的deveui、appeui、appkey、class

img.png

(2)通过at指令发送join请求

img.png

(3)通过at指令发送上行帧

img.png

(4)通过系统页面发送下行非确认帧

img.png

  1. 在系统页面查看join、上下行数据

img.png

# bridge、ns、节点管理接口测试

  1. 根据测试用例执行

  2. 在禅道提交bug

  3. 测试通过后编写测试报告

# 性能测试

# 编写测试方案

  1. 测试目标:终端接入量,每秒处理能力

  2. 测试设备:虚拟终端

  3. 系统模快:数据库、消息中间件、服务、辅助测试工具

  4. 硬件环境:服务器硬件配置、操作系统

  5. 服务架构:终端节点<---->网关<--->bridge<--->ns

  6. 测试方案:明确终端接入量、发包类型、发包频率、数据包长度、测试时长

# 部署测试环境

  • 多服务器NS多实例部署

# 测试执行

# 测试辅助工具

LoRa虚拟节点

使用方法

./ltt --help

# 通信链路验证

同功能测试

# 性能测试

  1. 根据测试方案执行

  2. 性能调优

  3. 在禅道提交bug

  4. 测试通过后编写测试报告