在测试管理器中指定测试属性
测试管理器具有指定测试用例、测试套件和测试文件如何运行的属性设置。要打开测试管理器,请使用 sltest.testmanager.view。有关测试管理器的信息,请参阅 Simulink 测试管理器
测试用例、测试套件和测试文件部分摘要
当您在测试管理器中打开测试用例、测试套件或测试文件时,测试设置将分组到几个部分。测试用例、测试套件和测试文件有不同的部分和设置。点击测试浏览器窗格中的测试用例、测试套件或测试文件以查看其设置。
| 测试部分 | 测试用例 | 测试套件 | 测试文件 |
|---|---|---|---|
✔ | ✔ | ✔ | |
✔ | ✔ | ✔ | |
✔ | ✔ | ✔ | |
✔ | |||
✔ | |||
✔ | |||
✔ | |||
✔ | ✔ | ✔ | |
✔ | |||
✔ | |||
✔ | |||
✔ | |||
| 序列图评估 | ✔ | ||
✔ | |||
✔ | |||
✔ | |||
✔ | |||
✔ | |||
✔ | ✔ | ✔ | |
✔ | |||
✔ |
如果您不想看到所有可用的测试部分,您可以使用测试管理器预设项来隐藏部分:
在测试管理器工具条中,点击预设项。
选择测试文件、测试套件或测试用例选项卡。
选择要显示的部分,或清除要隐藏的部分。要仅显示已设置或更改设置的部分,请清除预设项对话框中的所有选择。
点击确定。
无论预设项设置如何,已修改的部分都会出现在测试管理器中。
要以编程方式设置这些属性,请参阅 sltest.testmanager.getpref 和 sltest.testmanager.setpref。
从外部文件创建测试用例
要使用受支持的 Simulink® Test™ 格式的现有 Excel® 文件创建测试用例,请选择从外部文件创建测试用例。然后,输入文件的路径。对应的 API 属性是 IsTestDataReferenced 和 TestDataPath,它们在 sltest.testmanager.TestCase 的 setProperty 方法中描述。
要了解如何格式化 Excel 文件,请参阅 Microsoft Excel 导入、导出和记录格式 和 创建用于测试用例的外部数据文件。
要使用不受支持格式的现有 Excel,请编写一个适配器函数,以便可以在测试管理器中使用该文件。然后,使用 sltest.testmanager.registerTestAdapter 函数注册该文件。如果您已经注册了一个适配器,当您选择从外部文件创建测试用例时,测试管理器会显示两个字段,一个用于 Excel 文件的路径,一个用于适配器功能名称。请参阅 sltest.testmanager.registerTestAdapter 了解信息和示例。
标签
用分类标记您的测试文件、测试套件或测试用例,例如 safety、logged-data 或 burn-in。执行测试或查看结果时使用这些标签过滤测试。请参阅过滤测试执行、结果和覆盖率。
对于相应的 API,分别请参阅 sltest.testmanager.TestFile、sltest.testmanager.TestSuite 或 sltest.testmanager.TestCase 的 Tags 属性。
描述
向您的测试用例、测试套件或测试文件添加描述性文本。
对于相应的 API,分别请参阅 sltest.testmanager.TestFile、sltest.testmanager.TestSuite 或 sltest.testmanager.TestCase 的 Description 属性。
需求
如果您安装了 Requirements Toolbox™,您可以通过将测试文件、测试套件或测试用例链接到需求来建立可追溯性。有关更多信息,请参阅将测试用例链接到需求 (Requirements Toolbox)。有关如何将迭代或评估链接到需求的更多信息,请参阅将 Simulink Test 项与需求关联 (Requirements Toolbox)。
要将测试用例、测试套件或测试文件链接到需求:
打开需求编辑器。在 Simulink 工具条中的 App 选项卡上的“模型验证、确认和测试”下,点击需求编辑器。
突出一个需求。
在测试管理器的需求部分中,点击添加按钮旁边的箭头并选择链接到所选需求。
需求链接出现在需求列表中。
对于相应的 API,分别请参阅 sltest.testmanager.TestFile、sltest.testmanager.TestSuite 或 sltest.testmanager.TestCase 的 Requirements 属性。
RoadRunner
本节仅适用于 RoadRunner 自动驾驶测试用例。
控制台模式 - 控制台模式是否打开或关闭。如果选中该复选框,则控制台模式将打开,并且仿真运行时不会显示 RoadRunner 用户界面。使用控制台模式在非图形环境中运行 RoadRunner 测试,或者如果您不需要在运行时查看仿真。
强制关闭调速 - 步调是否开启。清除此复选框可以打开节奏,让您可以更改 RoadRunner 场景仿真运行的速度。如果选中该复选框,则会关闭步调,并且您将无法控制 RoadRunner 仿真的速度。
RoadRunner 场景 - 预配置的 RoadRunner 场景文件的完整路径。该文件通常存储在 RoadRunner 工程文件夹中的 Scenarios 文件夹中。
覆盖 RoadRunner 设置 - RoadRunner 测试用例是否在测试执行期间覆盖首选路径设置,或者使用使用 roadrunnerSetup (RoadRunner) 定义的首选路径设置。选中此复选框可以覆盖首选路径设置。
RoadRunner 工程文件夹 - RoadRunner 工程文件夹的完整路径。当您选择覆盖 RoadRunner 设置时会出现此字段。
RoadRunner 安装文件夹 - 安装 RoadRunner 应用程序可执行文件的文件夹的完整路径。当您选择覆盖 RoadRunner 设置时会出现此字段。
在测系统
在在测系统部分中指定您想要测试的模型。要使用当前活动的 Simulink 窗口中打开的模型,点击使用当前模型按钮
。
注意
该模型必须在运行测试用例的路径上可用。您可以使用预加载回调将包含模型的文件夹添加到路径中。请参阅回调。
在在测系统部分中指定新模型可能会导致模型信息过时。要更新模型测试框架、Signal Editor 场景和可用配置集,点击刷新按钮
。
对于 RoadRunner 测试用例,您可以在测系统部分指定模型,该模型设置为正在测试的 RoadRunner 场景中参与者的行为。
对于相应的 API,请参阅 setProperty 的 Model 名称-参量对。
测试框架
如果您的在测系统中有一个测试框架,那么您可以选择要用于测试用例的测试框架。如果您在模型中添加或删除了测试框架,点击刷新按钮
以查看更新的测试框架列表。
有关使用测试框架的更多信息,请参阅 完善、测试和调试子系统。
对于相应的 API,请参阅 setProperty 的 HarnessName 名称-参量对。
仿真设置和发布覆盖
要覆盖模型的仿真模式,请从列表中选择一种模式。如果模型包含 SIL/PIL 模块,并且您需要在普通模式下运行,请启用使用普通模式覆盖 SIL/PIL 模式的模型模块。要以编程方式更改此设置,请参阅 setProperty 的 OverrideSILPILMode 名称-参量对。您还可以在测试执行时覆盖仿真模式。有关更多信息,请参阅在测试执行期间覆盖仿真模式。
您可以在系统上安装的多个 MATLAB® 版本中仿真模型并运行测试。使用选择仿真版本选择可用的版本。您可以使用从 R2011b 开始的版本。
要添加一个或多个版本以便它们在测试管理器中可用,点击选择仿真版本中的添加版本以打开测试管理器预设项对话框中的版本窗格。导航到您要添加的 MATLAB 安装的位置,然后点击确定。
您可以将发布添加到列表中,也可以将其删除。您无法删除启动 MATLAB 会话的版本。
有关更多信息,请参阅在 MATLAB 的多个版本中运行测试。对于相应的 API,请参阅 setProperty 的 Release 名称-参量对。
在测系统注意事项
在测系统不能处于快速重启或外部模式。
要停止在快速加速模式下运行的测试,请在 MATLAB 命令提示符下按 Ctrl+C。
在快速加速器模式下运行并行执行时,流信号不会显示在测试管理器中。
在测系统不能是受保护的模型。
仿真 1 和仿真 2
这些部分出现在等效性测试用例中。使用它们来指定您想要比较的两个仿真的详细信息。在仿真 1 下输入在测系统、测试框架(如果适用)和仿真设置覆盖。然后,您可以点击仿真 2 下的从仿真 1 复制设置以使用第二组仿真设置的起点。您不能在单个等效性测试用例中比较两个以上的模型。
为了通过测试,仿真 1 和仿真 2 必须记录相同的信号。
使用这些部分与等效性准则部分来定义测试用例的前提。有关等价性测试的示例,请参阅 背对背等效性测试。
对于相应的 API,请参阅 setProperty 的 SimulationIndex 名称-参量对。
参数覆盖
在测试用例中指定参数值以覆盖模型工作区、数据字典、基础工作区或模型引用层次结构中的参数值。参数被分组为集合。使用集合或参数旁边的复选框来打开或关闭参数集和单个参数覆盖。要复制单个参数或参数集并将其粘贴到另一个参数集中,请选择该参数并右键点击以从上下文菜单中使用复制和粘贴。
有关使用参数覆盖的示例,请参阅 在测试用例中覆盖模型参数。有关相应的 API,请参阅 sltest.testmanager.ParameterOverride 类以及 setProperty 方法的 OverrideStartTime、OverrideStopTime、OverrideInitialState、OverrideModelOutputSettings 和 ConfigSetOverrideSetting 名称-参量对。
添加参数覆盖
点击添加。
打开一个对话框,其中显示参数列表。如果需要,点击对话框中的刷新
来更新参数列表。选择要覆盖的参数。
要将参数添加到参数集,点击确定。
在参数覆盖值列中输入覆盖值。
添加参数集
要添加空参数集,点击添加 > 添加参数集。新的参数集出现在参数覆盖表中。
从文件添加参数覆盖
要从 MAT 文件(包括由 Simulink Design Verifier™ 生成的文件、从 MATLAB 脚本(.m 文件)或从 Excel 文件添加一组参数覆盖,点击添加 > 添加文件。要更改从文件导入的覆盖值,您必须在 MATLAB 之外编辑并保存该文件,然后再次添加覆盖文件。
外部文件必须是测试管理器可以读取的格式。请参阅创建用于测试用例的外部数据文件。允许的格式为:
Excel 文件 - 有关如何格式化 Excel 文件的信息,另请参阅 Microsoft Excel 导入、导出和记录格式
MATLAB 脚本(
.m文件)- 在 MATLAB 脚本中,使用 MATLAB 语法分配变量和值。
变体配置
如果被测试的模型使用变体并已定义变体配置,请从变体配置字段中选择要与此测试用例一起使用的变体配置。有关信息,请参阅 Variant Configurations,有关使用变体配置的示例,请参阅 Run Tests for Variant Models Using Variant Configurations。
对于相应的 API,使用 sltest.testmanager.testcase setProperty 方法设置 VariantConfiguration 属性。
恢复默认参数值
要删除覆盖并恢复默认参数值,请右键点击该参数,然后点击上下文菜单中的删除。
参数覆盖注意事项
测试管理器仅显示在测系统的顶层系统参数。
参数覆盖仅在测试运行时进行评估。
您可以将参数导出到 MATLAB 脚本文件或 MAT 文件中。
回调
测试文件级回调
每个测试文件中都有两个回调脚本,它们在测试期间的不同时间执行:
安装程序在测试文件执行之前运行。
测试文件执行后运行清理。
有关相应的测试用例 API,请参阅 PreloadCallback setProperty 方法的 PostloadCallback、CleanupCallback、PreStartRealTimeApplicationCallback 和 TestCase 名称-参量对。
有关相应的测试文件 API,请参阅测试文件 SetupCallback setProperty 方法的 CleanupCallback 和 TestFile 名称-参量对。
测试套件级回调
每个测试套件中都有两个回调脚本,它们在测试期间的不同时间执行:
安装程序在测试套件执行之前运行。
测试套件执行后,清理运行。
如果测试套件没有任何测试用例,测试套件回调不会执行。
有关相应的 API,请参阅 SetupCallback setProperty 方法的 CleanupCallback 和 TestSuite 名称-参量对。
测试用例级回调
每个测试用例都有三个回调脚本,它们在测试期间的不同时间执行:
Pre-load在模型加载之前和模型回调之前运行。Post-load在模型加载和PostLoadFcn模型回调后运行。Cleanup在仿真和模型回调后运行。
有关回调发生的顺序以及模型加载和仿真的顺序的信息,请参阅测试执行顺序。
要运行单个回调脚本,点击相应脚本上方的运行按钮
。
您可以在测试用例回调中使用预定义变量:
sltest_bdroot在后加载中可用:通过测试用例来仿真模型。该模型可以是框架模型。sltest_sut在后加载中可用:在测系统。对于框架来说,它是被测试的组件。sltest_isharness在后加载中可用:如果sltest_bdroot是框架模型,则返回 true。sltest_simout在清理中可用:仿真产生的仿真输出。sltest_iterationName有预加载、后加载和清理版本:当前正在执行的测试迭代的名称。sltest_testIteration有预加载、后加载和清理版本:当前测试迭代对象。sltest_testCase有预加载、后加载和清理版本:当前测试用例对象。sltest_roadRunnerApp有预加载、后加载和清理版本:RoadRunner 应用程序对象。您只能将此变量用于 RoadRunner 测试用例或迭代。sltest_roadRunnerSim有预加载、后加载和清理版本:RoadRunner 仿真对象。您只能将此变量用于 RoadRunner 测试用例或迭代。
disp 和 fprintf 在回调中不起作用。要验证回调是否已执行,请使用在回调中包含断点的 MATLAB 脚本。
测试用例回调脚本不与模型一起存储,并且不会覆盖 Simulink 模型回调。使用回调时请考虑以下事项:
不要修改
sltest_testIteration或sltest_testCase。使用这些回调分别查询当前迭代或测试用例的各个方面。要停止回调脚本的无限循环执行,请在 MATLAB 命令提示符下按 Ctrl+C。
不支持
sltest.testmanager函数。为了避免出现意外后果,请不要在回调中使用
clearAPI,例如clear all。
有关相应的 API,请参阅 PreloadCallback setProperty 方法的 PostloadCallback、CleanupCallback、PreStartRealTimeApplicationCallback 和 TestCase 名称-参量对。
评估回访
您可以使用评估回调部分输入回调来定义仅在逻辑和时序评估中使用的变量和条件。欲了解更多信息,请参阅逻辑和时序评估部分中的评估回访。
有关相应的 API,请参阅 setAssessmentsCallback。
输入
测试用例可以使用来自以下来源的输入数据:
在测系统中的一个 Signal Editor 模块。选择信号编辑器场景并选择场景。在测系统在顶层只能有一个 Signal Editor 模块。请参阅Use Scenarios and Insert Signals in Signal Editor。
外部数据文件。在外部输入表中,点击添加。选择一个 MAT 文件或 Microsoft® Excel 文件。
有关使用外部文件作为输入的更多信息,请参阅 在测试用例中使用外部文件数据。有关在测试管理器中使用 Microsoft Excel 文件的文件格式的信息,请参阅 创建用于测试用例的外部数据文件。
Test Sequence 模块中的场景。首先,点击 Test Sequence 模块字段旁边的刷新箭头
,然后选择包含场景的模型中的 Test Sequence 模块。如果您没有从用场景覆盖中选择场景并且不使用迭代,那么测试将在所选的 Test Sequence 模块中运行活动场景。如果您未选择场景,但使用迭代,则 Test Sequence 模块中的活动场景就是所有迭代的默认场景。 使用用场景覆盖覆盖所选 Test Sequence 模块中的活动场景。点击用场景覆盖字段旁边的刷新箭头。然后,选择要使用的场景来代替活动场景或作为迭代的默认场景。在迭代部分中,您可以更改分配给每次迭代的场景。有关更多信息,请参阅在测试序列编辑器和测试管理器中使用测试序列场景。
您创建并填充数据的输入文件模板。请参阅创建用于测试用例的外部数据文件。
要将输入数据包含在测试结果集中,请选择在测试结果中包含输入数据。
如果您输入数据的时间区间短于模型仿真时间,您可以通过选择在最后一个时间点停止仿真将仿真限制在输入数据指定的时间内。
有关测试输入的更多信息,请参阅 Test 创作:输入页面。
在测试管理器中编辑输入数据文件
您可以从测试管理器编辑输入数据文件。
要编辑文件,请选择该文件并点击编辑。然后,您可以使用 MAT 文件的信号编辑器编辑数据,或使用 Microsoft Excel 编辑 Excel 文件的数据。
要了解信号编辑器,请参阅 创建和编辑信号数据。
要了解 Excel 文件的格式,请参阅 输入、基线和参数覆盖测试用例数据格式在 Excel。
有关相应的 API,请参阅 sltest.testmanager.TestInput。
仿真输出
使用仿真输出部分将信号输出添加到您的测试结果中。将模型或测试框架中记录的信号添加为仿真输出后,它们就会出现在结果中。然后您就可以绘制它们了。添加单个信号来记录和绘制或者添加信号集。
记录的信号 - 在记录的信号子部分中,点击添加。按照用户界面进行操作。
要将记录的信号集复制到同一测试文件或不同测试文件中的另一个测试用例,请选择记录的信号中的信号集,右键点击以显示上下文菜单,然后点击复制。然后,在目标测试用例中,选择记录的信号中的信号集,右键点击该信号,然后点击粘贴。您可以一次复制并粘贴多个记录信号集。
对于测试用例,您可以使用 SDI 视图文件设置来指定仿真数据检查器 (SDI) 视图文件的路径。您可以为每个测试用例分配不同的视图文件。视图文件配置要绘制的信号及其在测试用例结果中的布局。测试管理器不支持 SDI 视图文件中的某些配置,例如时间图之外的轴图布局和 N×M 网格之外的轴布局。然而,如果可能的话,测试管理器会应用类似的配置。您无法从测试管理器保存 SDI 视图文件,尽管当您将测试和结果保存在 MLDATX 测试文件中时,该文件会保存该测试的当前布局。使用 Simulink.sdi.saveView 创建并保存 SDI 视图文件。有关更多信息,请参阅保存和共享仿真数据检查器数据和视图。
其他输出 - 使用其他输出子部分中的选项将状态、最终状态、模型输出值、数据存储变量和信号记录值添加到测试结果中。要选择其中一个或多个选项,点击覆盖模型设置。
状态 - 在仿真期间包含模块之间的状态值。
最终状态 - 包括最终状态值。
输出 - 包括模型输出值。
数据存储 - 在模型中的 Data Store Memory 模块中包含已记录的数据存储变量。默认情况下选择此选项。
信号记录 - 包括模型中指定的记录信号。默认情况下选择此选项。如果您在创建框架时选择了记录信号输出,则被测组件的所有输出信号都将被记录并返回到测试结果中,即使它们未在仿真输出部分中列出。要关闭某个信号的日志记录,请在测试框架中右键点击该信号并选择停止记录所选信号。
有关更多信息,请参阅在测试用例中捕获仿真数据。对于相应的 API,请参阅 setProperty 的 OverrideModelOutputSettings 名称-参量对。
输出触发 - 使用输出触发子部分指定何时根据条件或持续时间开始和停止信号记录。请注意,如果测试在触发时通过,则测试通过,即使测试在触发时间之外失败。
开始记录选项包括:
仿真开始时 - 仿真开始时开始记录数据。
条件为 true 时 - 当指定的条件表达式为 true 时开始记录。点击条件旁边的编辑符号以显示编辑框,您可以在其中输入条件。
持续一定时间后 - 自仿真开始后经过指定的秒数后开始记录。点击持续时间(秒)旁边的值以显示一个编辑框,您可以在其中输入持续时间(以秒为单位)。
停止记录选项包括:
仿真停止时 - 仿真结束时停止记录数据。
条件为 true 时 - 当指定的条件表达式为 true 时停止记录。点击条件旁边的编辑符号以显示编辑框,您可以在其中输入条件。条件中的变量出现在符号编辑器中,您可以在其中将它们映射到模型元素或表达式,或者重命名它们。
持续一定时间后 - 自记录开始后经过指定的秒数后停止记录。点击持续时间(秒)旁边的值以显示一个编辑框,您可以在其中输入持续时间(以秒为单位)。
将时间归零 - 将记录开始时间移至零。例如,如果记录从时间 2 开始,则选择此选项会将所有时间向后移动 2 秒。
符号 - 点击添加将模型中的信号映射到符号名称。您可以在触发条件中使用该符号。有关使用和映射符号的信息,请参阅 使用时序评估来评估时序逻辑
配置设置覆盖
对于测试用例,您可以指定与模型中的设置不同的配置设置。通过在测试用例中设置配置设置,您可以尝试测试用例的不同配置,而无需修改模型。配置设置覆盖选项包括:
不覆盖模型设置 - 使用当前模型配置设置
名称 - 活动配置集的名称。一个模型只能有一个活动配置集。刷新列表以查看所有可用的配置集并选择所需的配置集以将其活动。如果保留默认的
[Model Settings]作为名称,则仿真将使用模型的默认活动配置集。在文件中附加配置集 - 包含配置集变量的外部文件 (文件位置) 的路径。您在变量名称中指定的变量引用文件中设置的配置的名称。有关创建配置集的信息,请参阅
Simulink.ConfigSet和 保存配置集。有关配置集引用的信息,请参阅 在多个模型之间共享配置。
对于相应的 API,请参阅 setProperty 的 ConfigSetOverrideSetting、ConfigSetName、ConfigSetVarName、ConfigSetFileLocation 和 ConfigSetOverrideSetting 名称-参量对。
故障设置
如果您有 Simulink Fault Analyzer™,请使用此部分将故障添加到测试用例中并将其注入到您的模型中,创建故障集,从被测模型中检索故障,并指定用于仿真的活动故障。有关更多信息,请参阅使用 Simulink 测试管理器编写并运行注入故障的测试。要了解有关使用 Simulink Fault Analyzer 向模型添加故障的更多信息,请参阅 Define and Model Faults (Simulink Fault Analyzer)。
有关相应的 API,请参阅 sltest.testmanager.FaultSet 和 sltest.testmanager.SpecifiedFault 类、sltest.testmanager.TestCase 类的 addFaultSet 和 getFaultSets 方法、sltest.testmanager.refreshFaults 函数以及 sltest.testmanager.TestIterationResult 类的 FaultSet 属性。
序列图评估
自 R2025a 起
使用此部分向仿真或基线测试中添加序列图。当您在测试中添加序列图时,该序列图会在测试执行过程中进行仿真。要在测试用例中添加序列图,请在序列图评估部分中选择一个序列图。有关序列图的更多信息,请参阅 Describe System Behavior Using Sequence Diagrams (System Composer)。
您可以通过测试管理器的在测系统部分选择一个架构模型或带有定义序列图的测试框架。请参阅在测系统。
要程序化地将序列图添加到测试用例中,请使用 setProperty 方法的 sltest.testmanager.TestCase,并将 SequenceDiagram 属性设置为序列图。
序列图评估考虑因素
基线准则
基线准则部分出现在基线测试用例中。当执行基线测试用例时,测试管理器会从模型中标记为记录的信号中捕获信号数据,并将其与基线数据进行比较。为了比较多个模型的测试结果,可以将各个模型的测试结果与相同的基线数据进行比较。
在结果和报告中包括基线数据
点击在测试结果中包含基线数据可将基线数据包含在测试结果图和测试报告中。
捕获基线准则
要捕获在测系统中记录的信号数据以用作基线准则,点击捕获。然后按照捕获基线对话框中的提示进行操作。捕获数据、编译和仿真被测在测系统,并将记录信号的输出存储到基线。要查看基准测试示例,请参阅 基线测试。
注意
如果您的模型具有多个变体子系统,请为每个变体子系统捕获独立的基线,而不是重复使用基线。
对应 API 请参阅 captureBaselineCriteria 方法。
您可以将信号数据保存为 MAT 文件或 Microsoft Excel 文件。要了解 Excel 文件的格式,请参阅 输入、基线和参数覆盖测试用例数据格式在 Excel。
您可以使用当前版本进行仿真或系统上安装的其他版本来捕获基线准则。在测试管理器预设项中添加您想要使用的版本。然后,使用测试用例中的选择仿真版本选项选择您想要在测试用例中提供的版本。运行测试时,您可以将基线与创建基线的版本或其他版本进行比较。有关更多信息,请参阅在 MATLAB 的多个版本中运行测试。
当您选择 Excel 作为输出格式时,您可以指定要保存数据的工作表名称。如果您使用相同的 Excel 文件来输入和输出数据,则默认情况下两组数据都会出现在同一张表中。
如果要将数据捕获到已包含输出的文件中,请指定工作表名称以仅在该文件的该工作表中覆盖输出数据。
要将每个测试用例迭代的基线保存在同一文件的单独工作表中,请选择捕获迭代的基线。仅当您的测试用例已包含迭代时才会出现此复选框。有关迭代的更多信息,请参阅 测试迭代。
指定容差
您可以指定容差来确定测试用例的通过或失败准则。您可以为单个信号或整个基线准则集指定绝对、相对、超前和滞后容差。
捕获基线后,基线文件及其信号将出现在表中。在表中,您可以设置信号的容差。要查看基线测试中使用的容差示例,请参阅 比较仿真与基线数据。
有关相应的 API,请参阅 sltest.testmanager.BaselineCriteria 的 AbsTol、RelTol、LeadingTol 和 LaggingTol 属性。
添加文件作为基线
通过点击添加,您可以选择一个现有文件作为基线。您可以将 MAT 文件和 Microsoft Excel 文件作为基线添加。按照 输入、基线和参数覆盖测试用例数据格式在 Excel 中所述格式化 Microsoft Excel 文件。
对应 API 请参阅 addInput 方法。
更新基线中的信号数据
您可以编辑基线中的信号数据,例如,如果您的模型发生变化并且您期望不同的值。要打开信号编辑器或 Microsoft Excel 文件进行编辑,请从列表中选择基线文件,然后点击编辑。请参阅手动更新基线中的信号数据。
您还可以在数据检查器视图中检查测试失败时更新基线。请参阅检查测试失败并修改基线。
等效性准则
本节出现在等效性测试用例中。等效性准则是在仿真 1 和仿真 2 中进行比较的一组信号数据。指定容差来规范测试的通过-失败准则。您可以指定信号的绝对、相对、超前和滞后容差。
要指定容差,首先点击捕获以在仿真 1 中运行在测系统,并将标记为记录的信号添加到表中。在表中指定容差。
捕获信号后,您可以从表中选择信号来缩小结果范围。如果您没有选择等效性准则下的信号,运行测试用例会比较仿真 1 和仿真 2 中记录的所有信号。
有关等价性测试用例的示例,请参阅 背对背等效性测试。
对应 API 请参阅 captureEquivalenceCriteria 方法。
迭代
使用迭代来重复具有不同参数值、配置集、变体配置或输入数据的测试。
您可以通过扫描测试用例中的不同参数值来运行具有相同输入、输出和准则的多个仿真。
模型、外部数据文件和 Test Sequence 模块可以包含多个测试输入场景。为了简化测试文件架构,您可以将不同的输入场景作为迭代而不是不同的测试用例来运行。您可以将不同的基线数据应用于每次迭代,或者从迭代集中捕获新的基线数据。
您可以迭代不同的配置集,例如比较求解器或数据类型之间的结果。您还可以使用变体配置在 Test Sequence 模块中迭代不同的场景,并迭代变体。
要从定义的参数集、信号编辑器场景、测试序列场景、外部数据文件或使用配置集或变体配置的迭代创建迭代,请使用表迭代。您可以在表的列中选择每次迭代要使用的配置。
要从可用的测试用例元素创建一组自定义迭代,请向测试用例添加 MATLAB 脚本迭代。
要运行迭代而不为每次迭代重新编译模型,请启用在快速重启模式下运行测试迭代。选中后,此选项可减少仿真时间。
有关测试迭代的更多信息,包括在脚本迭代中使用预定义变量,请参阅 测试迭代。有关快速重启的更多信息,请参阅 How Fast Restart Improves Iterative Simulations。
有关相应的 API,请参阅 sltest.testmanager.TestIteration。
逻辑和时序评估
使用基于表单的编辑器创建时序评估,该编辑器会提示您输入条件、事件、信号值、延迟和响应。当您折叠各个元素时,编辑器会显示一个可读的声明来总结评估。有关更多信息,请参阅 使用时序评估来评估时序逻辑 和 逻辑和时序评估语法。
要复制和粘贴评估或符号,请选择评估或符号并右键点击以显示上下文菜单。您可以选择单个评估或符号,也可以选择多个评估或符号。或者,要复制或粘贴选定的评估或符号,请使用 Ctrl+C 或 Ctrl+V。粘贴评估会将其添加到当前测试用例中评估列表的末尾。您也可以粘贴到不同的测试用例。评估及其符号名称将更改为粘贴的评估中的默认名称。您还可以使用上下文菜单删除评估。要删除符号,请使用删除按钮。如果您删除评估或符号,则即使在删除之前复制了它,也无法粘贴它。
评估回访
您可以在评估回调部分中定义变量并在逻辑与时序评估条件和表达式中使用它们。
通过在评估回调部分中编写脚本来定义变量。您可以通过右键点击符号、选择映射到表达式并在表达式字段中输入变量名称,将这些变量映射到符号窗格中的符号。有关如何将变量映射到符号的信息,请参阅 解析评估参数符号 下的映射到表达式。
评估回调部分可以访问包含测试、仿真和模型数据的预定义变量。您可以定义一个变量作为该数据的函数。有关更多信息,请参阅在评估回调部分定义变量。有关相应的 API 方法,请参阅 setAssessmentsCallback 和 getAssessmentsCallback。
如果您的评估使用 at least、at most、between 或 until 语法,请选择扩展结果以产生尽可能少的未经测试的结果。在某些情况下,未测试的结果都无法测试到,或者无法全部测试到,因此结果中仍然会显示一些未测试的结果。当您扩展测试结果时,之前通过的测试可能会失败。保持扩展结果处于选中状态,除非您需要避免与早期测试结果不兼容。
在逻辑或时间评估中使用 == 或 ~= 运算符可能会导致在比较浮点数时测试发出警告或失败。如果您使用浮点数据,请考虑在评估中包含一个容差值。例如,在语句中使用 if(x == 5) 时,请使用 if(abs(x-5) < 0.001) 检查 x 是否在 0.001 的容差范围内。
符号 t (时间)
符号 t 自动绑定到仿真时序,可用于逻辑与时序评估条件。该符号不需要映射到变量,并且在符号窗格中不可见。例如,要将评估时间限制在 5 到 7 秒之间,请创建触发-响应评估,并在触发条件中输入 t < 5 & t > 7。为了避免意外行为,请不要在符号窗格中定义新符号 t。
符号数据类型
如果将符号映射到线性插值的离散数据信号,则在评估期间插值会自动更改为零阶保持。
自定义准则
本节包含一个嵌入式 MATLAB 编辑器,用于定义测试的自定义通过/失败准则。选择 function customCriteria(test)以在编辑器中启用准则脚本。展开对测试结果执行自定义准则分析以查看可用的预定义变量列表。自定义准则在模型运行时间之外运行;脚本在模型仿真后进行评估。
自定义准则的常见用途包括验证信号特性或验证测试条件。MATLAB 单元测试资格为验证准则提供了一个框架。例如,此自定义准则脚本获取信号 PhiRef 的最后一个值并验证它是否等于 0:
% Get the last value of PhiRef from the dataset Signals_Req1_3 lastValue = test.sltest_simout.get('Signals_Req1_3').get('PhiRef').Values.Data(end); % Verify that the last value equals 0 test.verifyEqual(lastValue,0);
请参阅使用自定义脚本处理测试结果。有关 MATLAB 单元测试资格的列表,请参阅 验证、断言及其他鉴定一览表。
您还可以在自定义准则部分定义图。请参阅创建、存储和打开 MATLAB 图形。
有关相应的 API,请参阅 sltest.testmanager.CustomCriteria。
覆盖率设置
使用此部分来配置测试文件的覆盖率收集。这些设置从测试文件传播到测试文件中的测试套件和测试用例。您可以关闭测试套件或测试用例的覆盖率收集或一个或多个覆盖率度量,除非您的测试是基于 MATLAB 的 Simulink 测试。
对于基于 MATLAB 的 Simulink 测试,您只能在测试文件级别更改覆盖率设置。如果您更改测试管理器中的覆盖率设置,则更改不会保存到基于 MATLAB 的 Simulink 测试脚本文件中。如果您还在基于 MATLAB 的 Simulink 测试脚本 (sltest.plugins.ModelCoveragePlugin) 文件中或在命令行中使用 .m 覆盖率,则测试管理器将使用测试脚本中的覆盖率设置,而不是测试管理器覆盖率设置。
SIL 或 PIL 模块不支持覆盖率分析。
覆盖率收集选项包括:
记录在测系统的覆盖率 - 收集模型的覆盖率,或(如果包含)收集每个测试用例的 在测系统 部分中指定的组件的覆盖率。如果您正在使用测试框架,在测系统就是为其创建框架的组件。测试框架不是在测系统。
对于模块图来说,在测系统就是整个模块图。
对于 Model 模块,在测系统是参考模型。
对于一个子系统来说,在测系统就是该子系统。
记录引用模型的覆盖率 - 收集在指定的在测系统中引用的模型的覆盖率。如果测试框架引用另一个模型,那么也包括该模型的覆盖率结果。
排除非活动变体 - 从覆盖率结果中排除这些在测试运行时任何时候都不活动的变体模块:
Simulink 中的变体模块,其中变体激活时间设置为启动
Stateflow® 图中的变体配置
显示测试结果时,如果在聚合覆盖率结果部分中选择或清除此选项,覆盖率结果将自动更新。有关信息,请参阅 变体模块的模型覆盖率 (Simulink Coverage)。
注意
测试管理器中的覆盖率设置(包括覆盖率过滤器文件)会覆盖模型配置中的所有覆盖率设置。在测试管理器中,配置设置部分中的不覆盖模型设置和仿真输出部分中的覆盖模型设置不适用于覆盖率。
默认情况下,测试管理器在覆盖率结果中包含外部 MATLAB 函数和文件。您可以在命令行中使用 set_param(model,'CovExternalEMLEnable','off','CovSFcnEnable','off'); 来排除外部 MATLAB 函数和文件。或者,您可以使用 Simulink 模型中覆盖率分析器中的包括在分析中设置来排除 MATLAB 函数和文件。
有关收集覆盖率的更多信息,请参阅 收集测试覆盖率。有关相应的 API,请参阅 sltest.testmanager.CoverageSettings。
有关覆盖率度量选项的信息,请参阅 模型覆盖率类型 (Simulink Coverage)。
有关基于 MATLAB 的 Simulink 测试的信息,请参阅 在测试管理器中使用基于 MATLAB 的 Simulink 测试。
测试文件选项
执行结束时关闭打开的图形
当您的测试生成图形时,选择此选项可以在测试执行完成后清除图形的工作环境。
有关相应的 API,请参阅 sltest.testmanager.Options 的 CloseFigures 属性。
存储 MATLAB 数据
选择此选项可以将测试期间生成的图形与测试文件一起存储。您可以输入创建图形和图的 MATLAB 代码作为回调或在测试用例自定义准则部分中输入。请参阅创建、存储和打开 MATLAB 图形。
有关相应的 API,请参阅 sltest.testmanager.Options 的 SaveFigures 属性。
执行后生成报告
选择执行后生成报告在测试执行后创建报告。选择此选项将显示您可以设置的报告选项。设置与测试文件一起保存。
注意
要启用指定每页图数量的选项,请选择仿真输出和基线图。
默认情况下,报告中包含模型名称、仿真开始和停止时间以及触发信息。
有关相应的 API,请参阅 sltest.testmanager.Options 的 GenerateReport 属性。
测试文件内容
对于基于 MATLAB 的 Simulink 测试,显示定义测试的 M 文件的内容。仅当您打开或创建新的基于 MATLAB 的 Simulink 测试时才会出现此部分。请参阅在测试管理器中使用基于 MATLAB 的 Simulink 测试。
另请参阅
Simulink 测试管理器 | sltest.testmanager.getpref | sltest.testmanager.setpref