Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

创建测试框架

测试框架是用于隔离在测组件的模型,其具有针对测试场景配置的输入、输出和验证模块。您可以为模型组件或完整模型创建测试框架。测试框架为模型或模型组件提供了单独的测试环境。例如:

  • 您可以将子系统与模型的其余部分隔离开来,以便对子系统进行单元测试。

  • 您可以将被控对象模型添加到测试框架,以便为控制器创建闭环测试场景。

  • 您可以在测试框架中添加 Model Verification 模块和 Test Assessment 模块,以避免主模型包含不需要的验证模块。

要将测试框架分配给测试用例,请在测试管理器的在测系统部分中选择测试框架

您可以将框架随模型一起保存,也可以将其保存在外部文件中。如果您的模型接受变更管理,可考虑将测试框架保存在外部文件中。无论在模型内部还是外部,框架的工作方式是相同的。有关详细信息,请参阅Manage Test HarnessesSynchronize Changes Between Test Harness and Model

创建框架

在此示例中,您将直接从模型创建框架。该框架用于测试 sltestCarRootInport 模型的 shift_logic 子系统。

  1. 从文件夹 matlab/examples/simulinktest/main 中打开模型 sltestCarRootInport

  2. 右键点击 shift_logic 子系统。从上下文菜单中,选择测试框架 > 为 'shift_logic' 创建

  3. 在“创建测试框架”对话框中,指定输入、输出和其他选项:

    1. 使用 Constant 模块提供输入信号。在信源和信宿下,将信源设置为 Constant,将信宿设置为 Scope

    2. 保留其他选项的默认选择。默认情况下:

      • 框架会随模型文件一起保存。

      • 在打开时框架会与模型同步,这意味着对模型进行更改也会更新框架。

  4. 点击确定以创建测试框架。

Test harness showing the throttle and speed inputs connected to a routing subsystem. The subsystem connects to the shift logic block, and the block connects to another routing subsystem, which then connects to the scope.

框架的中心是 shift_logic 子系统的副本。shift_logic 子系统是在测组件。两个垂直子系统包含信号设定和路由。

在测组件中使用的信号名称从模型传播到测试框架。对于子系统框架,某些传播的信号名称可能仅在编译框架后才可见。对于模块图框架,即使您未在“信号属性”对话框中选择显示传播的信号,系统也会传播信号名称。

您还可以使用 sltest.harness.create 函数、sltest.testmanager.createTestForComponent 函数或“为模型组件创建测试”向导(位于测试管理器中)创建框架或同时创建多个框架。有关该向导的信息,请参阅Generate Tests and Test Harnesses for a Model or Components

有关测试框架架构的信息,请参阅Test Harness Construction for Specific Model Elements。有关在创建新框架时自定义默认框架设置的信息,请参阅Customize Test Harness Creation Default Property Values

仿真测试框架

Constant 模块赋值以测试组件:

  1. 将速度模块的值更改为 50

  2. 将油门模块的值更改为 30

  3. 点击“仿真”选项卡中的“运行”以仿真框架。

  4. 打开示波器并查看结果。换挡控制器选择三挡。

    Output showing very short amounts of time in first and second gear and a significant amount of time in third gear.

使用测试管理器进行测试

在前面的用例中,您使用 Constant 模块提供了测试输入。您还可以使用来自外部数据文件的测试输入。

  1. 创建使用 Inport 信源的测试框架。

  2. 创建使用测试框架作为在测系统的测试用例。

  3. 将外部输入映射到测试用例。

在测试管理器中使用测试用例时,您可以使用不同的测试向量进行迭代、添加测试用例、运行批量测试用例以及组织结果。此示例说明如何将外部数据用于测试框架,以及如何从测试管理器进行仿真。

  1. 要打开测试管理器,请在 App 选项卡上的“模型验证、确认和测试”下,点击 Simulink Test。然后,在测试选项卡上,点击 Simulink 测试管理器

  2. 从测试管理器工具条中,选择新建 > 测试文件

  3. 将文件命名为 ShiftLogicTest

  4. 选择新建测试用例 1。在在测系统部分中,点击使用当前模型

  5. 对于测试框架,从下拉列表中选择 ShiftLogic_InportHarness。该测试框架已存在于模型中。

  6. 输入部分中,点击创建。将输入数据文件命名为 shift_logic_input,然后选择 MAT 文件格式。

  7. 在信号编辑器中,为输入输入值:

    1. 选择 speed 信号,并为时间 030 输入 50。按 Enter 键以更新图。

    2. 选择 throttle 信号,并为时间 030 输入 30。按 Enter 键以更新图。

      Speed plot showing constant value of 50 and throttle plot showing constant value of 30.

    3. 点击信号编辑器工具条中的保存

  8. 选择要捕获的输出数据。

    1. 在测试管理器的仿真输出部分中,点击添加

    2. 在测试框架模块图中,选择 gear 信号线。在连接对话框中选择信号。

    3. 点击完成以将信号添加到测试用例输出中。

  9. 点击测试管理器工具条中的运行

  10. 展开结果并突出显示 gear 信号输出。图中显示控制器选择三挡。

    Plot of the gear output from the controller

另请参阅

相关主题