第二章 测试环境搭建:Simulink Test Manager介绍、测试工程创建、测试环境配置
好,咱们直接进入正题。上一章聊了MIL测试到底是个啥,这一章咱们得把家伙事儿支棱起来。说白了,就是搭建测试环境。
我个人习惯,做任何项目前先把环境理清楚。环境搭不好,后面全是坑。Simulink Test Manager,就是咱们MIL测试的主战场。你想想看,没有它,你写测试用例、跑仿真、看结果,全得手动搞,那不得累死?
2.1 Simulink Test Manager 是个啥?
简单说,它就是MATLAB/Simulink官方提供的一个测试管理工具。你可以把它理解成一个“测试总控台”。
它能干嘛?我列几个核心功能:
- 管理测试用例:把测试输入、预期输出、仿真参数打包成一个TestCase。
- 批量执行:一键跑完所有测试用例,不用一个个点。
- 结果对比:自动把仿真结果和预期值做比对,通过/失败一目了然。
- 生成报告:测试完了,直接导出PDF或HTML报告,给领导看,给客户看。
嗯,这里要注意。Test Manager不是万能的。它擅长的是“基于模型的测试”,也就是咱们MIL这个阶段。到了后面的SIL、HIL,它也能用,但侧重点不同。咱们先把MIL这块吃透。
2.2 创建你的第一个测试工程
好,咱们动手。打开MATLAB,在命令行输入:
sltestmgr
回车。Test Manager的界面就出来了。第一次看这个界面,可能会有点懵。别怕,咱们一步步来。
创建一个测试工程,我习惯这么做:
- 新建测试文件:在Test Manager左上角,点“New”→“Test File”。它会生成一个
.mldatx文件。这个文件就是你的测试工程文件,所有测试用例、配置都存里面。 - 添加测试套件:在左侧浏览器窗口,右键你的测试文件,选“Add”→“Test Suite”。测试套件就是一组测试用例的集合。你可以按功能模块分,比如“速度控制测试套件”、“温度监控测试套件”。
- 创建测试用例:在测试套件上右键,选“Add”→“Test Case”。好了,一个空的TestCase诞生了。
你看,结构其实很清晰:测试文件 → 测试套件 → 测试用例。三层结构,跟文件夹套文件夹似的。
避坑指南: 我曾经犯过一个低级错误——把测试文件直接放在模型文件夹里。结果模型一改,测试文件也跟着乱套。后来我学乖了,专门建一个Test文件夹,跟Model、Script平级。这样管理起来清爽多了。
2.3 测试环境配置——别让细节坑了你
TestCase创建好了,但还不能直接用。你得告诉Test Manager:你要测哪个模型?仿真跑多久?输入信号从哪来?输出怎么比对?
这些都在TestCase的“属性”面板里配置。双击你的TestCase,右边会弹出详细配置区。我挑几个关键项说说:
2.3.1 关联被测模型
在“System Under Test”那一栏,点“Browse”,选中你要测的Simulink模型。注意,这里选的是模型文件(.slx),不是子系统。Test Manager会自动加载它。
为什么会这样?因为Test Manager需要知道模型的顶层接口,才能把测试输入喂进去。
2.3.2 配置输入信号
在“Inputs”选项卡里,你可以定义测试输入。有两种方式:
- 使用Signal Builder块:在模型里放一个Signal Builder,画好波形。Test Manager会自动识别。
- 使用MATLAB脚本:写一个
.m文件,定义输入信号的时间序列。我个人更推荐这种方式,灵活,可复用。
举个例子,你想给一个油门信号输入一个阶跃:
% 定义时间向量
time = [0, 1, 1.1, 10]';
% 定义信号值
data = [0, 0, 1, 1]';
% 创建timeseries对象
throttle_input = timeseries(data, time);
% 保存到MAT文件
save('test_input.mat', 'throttle_input');
然后在Test Manager的Inputs里,选择“From Workspace”或“From MAT File”,指向这个变量或文件就行。
2.3.3 设置仿真参数
在“Simulation”选项卡里,设置仿真时长、求解器类型。这里有个坑:仿真时长必须和你的输入信号时长匹配。否则信号还没给完,仿真就停了,或者信号给完了仿真还在跑,结果全是无效数据。
2.3.4 定义预期输出与评估标准
在“Baseline”或“Assessment”选项卡里,定义你期望的输出。Baseline是存一个基准信号,仿真后自动比对。Assessment更灵活,你可以写自定义的评估逻辑,比如“输出必须在5%误差范围内”。
我一般这么用:
- 功能测试用Baseline,简单直观。
- 边界测试用Assessment,写一些判断条件,比如“输出不能超过上限”。
2.4 跑一次完整的MIL测试
配置完了,点一下“Run”按钮。Test Manager会开始仿真,跑完自动比对结果。
结果怎么看?在“Results and Artifacts”面板里:
- 绿色勾:通过。
- 红色叉:失败。
- 黄色感叹号:警告,可能比对误差在临界值。
双击失败的用例,可以看到详细的比对曲线。哪里超了,哪里没对上,一目了然。
2.5 本章小结
嗯,这一章内容不少。咱们把Test Manager的界面、工程创建、环境配置都过了一遍。说白了,就是三步:建工程、配模型、跑测试。
下一章,咱们会深入讲测试用例的设计——怎么写出高质量的测试用例,而不是随便填几个数就完事。到时候我会分享一些我在实际项目中踩过的坑,保证让你少走弯路。
记住,环境搭好了,后面的事就顺了。别急,慢慢来。