自动化测试配置协议
一、自动测试平台文件结构与功能说明¶
| 文件路径 | 主要内容组件 | 功能说明 |
|---|---|---|
RflySimSDK |
AutoMAVDB |
测试用例库与数据管理库,支持数据库/文件的自动操作 |
AutoMAVCmd |
测试序列解析,将高层测试序列映射为控制指令(如 MAVLink)驱动无人载具 | |
AutoMAVCtrl |
无人载具进程管理,含测试环境配置、任务调度、载具参数等 | |
PX4MavCtrlV4 |
通信管理模块,封装用户指令为 MAVLink 消息,实现通信初始化与联动控制 | |
CameraCtrlApi / VisionCaptureApi |
视觉控制与采集模块,配置视觉参数、捕捉图像帧等操作 | |
src/autotest/ |
AutoTest |
自动化测试主入口,配置并一键运行载具测试任务 |
src/openSHA/ |
ProfitsSA/Ass |
健康与安全评估算法库(示例:率模可靠性),支持自定义评估模型在线验证 |
src/model/Quadrotor/ |
db.json, ModelHITL, ModelSITL |
四旋翼模型配置与测试用例绑定,支持 HITL 与 SITL 仿真 |
src/model/Fixedwing/ |
同上结构 | 固定翼机型模型配置,支持同样的多模式测试 |
data/SITL/ 与 data/HITL/ |
single/sInstance, multi/mInstance等 |
自动收集 SITL/HITL 仿真数据,支持单/多机型、单/多实例四种结构 |
case/ |
数据库文件(如 case.db) |
储存无人机测试用例数据库,亦可通过 tools 文件夹工具可视化编辑 |
tools/ |
Navicat for SQLite 等 |
可视化数据库配置工具,简化测试用例管理 |
docs/ |
Readme, Platform handbook 等 |
平台说明文档,介绍使用方法、原理结构、模块接口等 |
二、标准化控制序列与测试用例配置说明¶
为了实现高效、批量化的无人系统自动测试,RflySim 自动化测试平台基于控制指令序列标准化协议,采用结构清晰的数字字符串方式表达控制逻辑,并通过 JSON 配置文件 db.json 进行集中管理与解析。
控制序列协议结构¶
每一条控制指令以逗号分隔、以分号结尾,表示一个标准化动作;其结构如下:
| 字段序列 | 说明 |
|---|---|
X(第一位) |
操控类别(时间/控制) |
Y(第二位) |
类内功能编号 |
| 后续参数 | 函数的输入参数,按顺序排列 |
控制类别与功能号说明¶
| 操控类别 | 功能编号 | 功能说明 | 示例 |
|---|---|---|---|
1 时间类 |
1 |
等待时间:Wait(times) |
1,1,5 → 等待5s |
2 |
等待复位:WaitReset(pos) |
1,2,0 |
|
2 控制类 |
1 |
解锁:Arm() |
2,1 |
2 |
上锁:Disarm() |
2,2 |
|
3 |
位置控制:FlyPos(x,y,z) |
2,3,0,0,-20 |
|
4 |
速度控制:FlyVel(vx,vy,vz) |
2,4,1,0,0 |
|
5 |
降落:Land() |
2,5 |
|
6 |
故障注入:FaultInject(params) |
2,6,ID,... |
示例解析¶
控制序列如下所示:
解析如下:
| 步骤 | 指令 | 含义描述 |
|---|---|---|
| ① | 2,1 |
解锁(Arm) |
| ② | 1,1,5 |
等待 5 秒 |
| ③ | 2,3,0,0,-20 |
飞至位置 [0,0,-20] |
| ④ | 1,1,15 |
等待 15 秒 |
| ⑤ | 2,6,123450,123450,0.6,0.8,1,1 |
故障注入(这里是电机故障,附带多个参数,1个故障ID(123450)只能对应2个故障参数,这里有4个参数,所以写了2次故障ID,详见[故障注入协议]) |
| ⑥ | 1,1,10 |
等待 10 秒 |
测试用例 JSON 配置文件结构¶
{
"FAULT_CASE": [
{
"CaseID": 1,
"Subsystem": "Power",
"Component": "Motor",
"FaultID": "123450",
"FaultType": "Motor Fault",
"FaultMode": "Decreased efficiency of motor execution",
"FaultParams": "0",
"ControlSequence": "2,1;1,1,5;2,3,0,0,-15;1,1,10;2,6,123450,123450,1,1,1,1;1,1,10",
"TestStatus": "Finished"
},
...
],
"TEST_CASE": "1,2",
"VISION": "off"
}
各字段含义说明¶
【1】FAULT_CASE:核心测试用例配置项,含以下字段:¶
| 字段 | 含义 |
|---|---|
CaseID |
测试用例唯一编号(主键) |
Subsystem |
故障所属子系统(如 Power, Sensor) |
Component |
故障部件(如 Motor, Magnetometer) |
FaultID |
故障编号 |
FaultType |
故障类型说明 |
FaultMode |
故障模式描述 |
FaultParams |
故障注入参数 |
ControlSequence |
控制流程字符串(按上述协议格式) |
TestStatus |
当前测试状态(例:Finished) |
【2】TEST_CASE:用于自动测试执行顺序管理¶
- 单机模式:
格式为 "1,2"(用英文逗号分隔)表示依次执行第1、2号用例
- 测试所有用例:设为
"All" - 多机模式:
格式为 "1,2;1,3",表示
- 第一轮:第1架飞机执行用例1、第2架执行用例2
- 第二轮:第1架执行用例1、第2架执行用例3
- 用英文分号分隔不同轮次,逗号区分各载具
【3】VISION:视觉模块开关(用于图像采集接口)¶
"on":开启摄像头图像发布"off":关闭视觉采集功能