创建测试框架
测试框架是用于隔离在测组件的模型,其具有针对测试场景配置的输入、输出和验证模块。您可以为模型组件或完整模型创建测试框架。测试框架为模型或模型组件提供了单独的测试环境。例如:
您可以将子系统与模型的其余部分隔离开来,以便对子系统进行单元测试。
您可以将被控对象模型添加到测试框架,以便为控制器创建闭环测试场景。
您可以在测试框架中添加 Model Verification 模块和 Test Assessment 模块,以避免主模型包含不需要的验证模块。
要将测试框架分配给测试用例,请在测试管理器的在测系统部分中选择测试框架。
您可以将框架随模型一起保存,也可以将其保存在外部文件中。如果您的模型接受变更管理,可考虑将测试框架保存在外部文件中。无论在模型内部还是外部,框架的工作方式是相同的。有关详细信息,请参阅管理测试框架和同步测试框架和模型之间的更改。
创建框架
在此示例中,您将直接从模型创建框架。该框架用于测试 sltestCarRootInport
模型的 shift_logic
子系统。
打开模型
sltestCarRootInport
。openExample("sltestCarRootInport.slx")
右键点击
shift_logic
子系统。从上下文菜单中,选择测试框架 > 为 'shift_logic' 创建。在“创建测试框架”对话框中,指定输入、输出和其他选项:
使用 Constant 模块提供输入信号。在信源和信宿下,将信源设置为
Constant
,将信宿设置为Scope
。保留其他选项的默认选择。默认情况下:
框架会随模型文件一起保存。
在打开时框架会与模型同步,这意味着对模型进行更改也会更新框架。
点击确定以创建测试框架。
框架的中心是 shift_logic
子系统的副本。shift_logic
子系统是在测组件。两个垂直子系统包含信号设定和路由。
在测组件中使用的信号名称从模型传播到测试框架。对于子系统框架,某些传播的信号名称可能仅在编译框架后才可见。对于模块图框架,即使您未在“信号属性”对话框中选择显示传播的信号,系统也会传播信号名称。
您还可以使用 sltest.harness.create
函数、sltest.testmanager.createTestForComponent
函数或“为模型组件创建测试”向导(位于测试管理器中)创建框架或同时创建多个框架。有关该向导的信息,请参阅为模型或组件生成测试和测试框架。
有关测试框架架构的信息,请参阅特定模型元素的测试框架构建。有关在创建新框架时自定义默认框架设置的信息,请参阅自定义测试框架创建默认属性值。
仿真测试框架
为 Constant 模块赋值以测试组件:
将速度模块的值更改为
50
。将油门模块的值更改为
30
。点击“仿真”选项卡中的“运行”以仿真框架。
打开示波器并查看结果。换挡控制器选择三挡。
使用测试管理器进行测试
在前面的用例中,您使用 Constant 模块提供了测试输入。您还可以使用来自外部数据文件的测试输入。
创建使用 Inport 信源的测试框架。
创建使用测试框架作为在测系统的测试用例。
将外部输入映射到测试用例。
在测试管理器中使用测试用例时,您可以使用不同的测试向量进行迭代、添加测试用例、运行批量测试用例以及组织结果。此示例说明如何将外部数据用于测试框架,以及如何从测试管理器进行仿真。
要打开测试管理器,请在 App 选项卡上的“模型验证、确认和测试”下,点击 Simulink Test。然后,在测试选项卡上,点击 Simulink 测试管理器。
从测试管理器工具条中,选择新建 > 测试文件。
将文件命名为
ShiftLogicTest
。选择新建测试用例 1。在在测系统部分中,点击使用当前模型 。
对于测试框架,从下拉列表中选择
ShiftLogic_InportHarness
。该测试框架已存在于模型中。在输入部分中,点击创建。将输入数据文件命名为
shift_logic_input
,然后选择 MAT 文件格式。在信号编辑器中,为输入输入值:
选择 speed 信号,并为时间
0
和30
输入50
。按 Enter 键以更新图。选择 throttle 信号,并为时间
0
和30
输入30
。按 Enter 键以更新图。点击信号编辑器工具条中的保存。
选择要捕获的输出数据。
在测试管理器的仿真输出部分中,点击添加。
在测试框架模块图中,选择
gear
信号线。在连接对话框中选择信号。点击完成以将信号添加到测试用例输出中。
点击测试管理器工具条中的运行。
展开结果并突出显示 gear 信号输出。图中显示控制器选择三挡。