# 使用 MAVSDK 进行集成测试

PX4 可以端到端测试,也可以使用基于以下内容的集成测试 MAVSDK (打开新窗口).

这些测试主要是针对 SITL 开发的,并在持续集成(CI)中运行。今后,我们计划将其推广到任何平台/硬件。

下面的说明介绍了如何在本地设置和运行测试。

# 先决条件

# 设置开发人员环境

如果你还没有这样做:

  • 安装 利纳克斯MacOS (不支持 Windows)。需要安装 Gazebo,默认情况下应已安装。

  • 获取 PX4 源代码:

    Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
    CD PX4-自动驾驶仪
    

# 构建 PX4 进行测试

要为模拟器测试构建 PX4 源代码,请使用

DONT_RUN=1 生产 px4_sitl gazebo mavsdk_tests

# 安装 MAVSDK C++ 库

测试需要在整个系统中安装 MAVSDK C++ 库(例如在 /usr/lib/usr/local/lib).

从二进制文件或源代码安装:

# 运行所有 PX4 测试

中定义的所有 SITL 测试。 sitl.json (打开新窗口)你会的

test/mavsdk_tests/mavsdk_test_runner.py test/mavsdk_tests/configs/sitl.json --speed-factor 10

这将列出所有测试,然后按顺序运行。

要查看所有可能的命令行参数,请使用 -h 争论:

test/mavsdk_tests/mavsdk_test_runner.py -h 使用方法: mavsdk_test_runner.py [-h] [--log-dir LOG_DIR] [--速度因子 SPEED_FACTOR] [--迭代] [--早] [--桂] [-模型 MODEL]
                             [--案例 CASE] [--调试器 DEBUGGER] [--verbose]
                             配置文件位置参数: config_file JSON 配置文件 文件 使用可选参数:-h、--help 显示此内容 帮助 信息和 出口
  --log-dir LOG_DIR 目录 对于 日志文件 --speed-factor SPEED_FACTOR 运行模拟的速度 --iterations ITERATIONS 运行所有测试的频率 --abort-early 在第一次测试失败时终止测试 测试
  --gui显示可视化 对于 模拟 --model MODEL 仅运行测试 对于 一个模型--案例 CASE 仅运行测试 对于 一种 个案
  --从 valgrind、callgrind、gdb、lldb 中选择 DEBUGGER --verbose             以便 更多 冗长输出

# 运行一次测试

通过指定 模型 和测试 个案 作为命令行选项。例如,要在任务中测试尾随者的飞行,可以运行

test/mavsdk_tests/mavsdk_test_runner.py test/mavsdk_tests/configs/sitl.json --speed-factor 10 --模型 tailsitter --案例 VTOL 飞行任务

找出当前模型集及其相关测试用例的最简单方法是运行所有 PX4 测试 如上图 (注意,如果只想测试一个,可以取消构建)。

在撰写本报告时,运行所有测试后生成的清单如下:

即将为 3 个选定模型运行 39 个测试用例(1 次迭代):- 虹膜:- 降落在任务中丢失的 GPS 上(气压高度模式)' - 降落在任务中丢失的 GPS 上(GPS 高度模式)' - 继续降落在任务中丢失的弹匣上' - 继续降落在任务中丢失的气压计上(气压高度模式)' - 继续降落在任务中丢失的气压计上(GPS 高度模式)' - 继续降落在任务中卡住的气压计上(气压高度模式)' - 继续降落在任务中卡住的气压计上(GPS 高度模式继续执行任务中卡住的气压计(GPS 高度模式)' - '起飞和降落' - '方形多旋翼飞行任务(包括 RTL)' - '方形多旋翼飞行任务(手动 RTL)' - '直向多旋翼飞行任务' - '机外起飞和降落' - '机外位置控制' - '向前飞行位置控制' - '向前飞行高度控制' - standard_vtol:- 在任务中 GPS 丢失时着陆(气压高度模式)' - 在任务中 GPS 丢失时着陆(GPS 高度模式)' - 在任务中磁力计丢失时继续飞行' - 在任务中气压计丢失时继续飞行(气压高度模式)' - 在任务中气压计丢失时继续飞行(GPS 高度模式)' - 在任务中气压计卡住时继续飞行继续执行任务中卡住的气压计(气压计高度模式)' - '继续执行任务中卡住的气压计(GPS 高度模式)' - '起飞和降落' - '方形多旋翼飞行任务(包括 RTL)' - '方形多旋翼飞行任务(手动 RTL)' - '在位置控制中向前飞行' - '在高度控制中向前飞行' - 尾翼:- 降落在任务中丢失的 GPS 上(气压高度模式)' - 降落在任务中丢失的 GPS 上(GPS 高度模式)' - 继续降落在任务中丢失的磁场上' - 继续降落在任务中丢失的气压上(气压高度模式)' - 继续降落在任务中丢失的气压上(GPS 高度模式)' - 继续降落在任务中丢失的气压上(GPS 高度模式)' - 继续降落在任务中丢失的磁场上继续执行任务中卡住的气压计(气压计高度模式)" - "继续执行任务中卡住的气压计(GPS 高度模式)" - "起飞和降落" - "飞行方形多旋翼飞行任务(包括 RTL)" - "飞行方形多旋翼飞行任务(手动 RTL)" - "位置控制中向前飞行" - "高度控制中向前飞行

# 实施说明

使用的术语: