在测试用例中使用外部文件数据
测试用例可以使用 MAT 文件、MATLAB 脚本 (.m
) 文件或 Microsoft® Excel® 文件中定义的数据,例如输入、参数覆盖、预期结果和基线数据。有关如何创建和格式化这些文件的信息,请参阅 创建用于测试用例的外部数据文件,有关 Excel,另请参阅 Microsoft Excel Import, Export, and Logging Format。
在测试管理器中,您可以
从 Excel 和 MAT 文件导入基线数据和输入
从 Excel 文件、MAT 文件和 MATLAB 脚本导入参数值
将参数导出到 MAT 文件和 MATLAB 脚本 (
.m
) 文件向测试用例添加多个外部输入文件
为每个迭代分配一个输入文件
数据映射
映射模式
要使用外部数据,您可以使用以下映射模式将数据映射到在测系统(SUT):
信号数据对应的输入模块的名称
完整的模块路径名,格式为
system/block
与输入端口模块关联的信号的名称
端口号,即输入端口模块的连续端口号,从 1 开始
有关 Simulink® 如何处理输入端口映射的更多信息,请参阅 Map Root Inport Signal Data。
映射状态
当您将外部输入映射到模型元素时,映射会创建这些可能的结果。这些结果出现在测试管理器界面的输入下的状态列中:
已映射 — 映射成功,无需进一步操作。
失败 — 映射失败。单击已失败链接以获取更多信息。
警告 — 映射发生时出现警告。点击警告链接查看是否需要解决这些问题
过时 — 当您在测试管理器中更新外部输入时,可能会出现此状态。如果您没有映射新的输入,就会出现陈旧状态。要解决此状态,点击状态链接,这将打开“添加输入”对话框。单击“映射输入”映射新的输入数据,然后点击“添加”。
从 Excel 电子表格创建测试用例
此示例显示如何导入 Excel 电子表格来定义测试用例。
1.打开 Simulink Test 管理器。
sltestmgr
2.选择新建 > 从电子表格测试。这将打开从电子表格创建测试向导。
3.选择使用电子表格中的现有测试数据。然后,点击文件夹图标并从工作文件夹中选择 coordinate_text.xlsx
作为电子表格。点击下一步。
4.输入 coordinate_transform_test
作为模型。点击下一步。
5.在属性页面上,检查电子表格中的属性类别是否显示。
6.单击验证以按模块名称将每个输入映射到模型。当属性被验证后,图标会变为绿色。如有必要,请返回“数据”或“系统”选项卡来更改在测系统,点击刷新,然后再次验证。点击下一步。
7.指定保存测试文件的位置并点击完成。
Simulink Test 创建一个新的测试用例并导入电子表格。
要查看电子表格中使用的数据,请展开以下部分:
参数覆盖
输入
基线准则
表格迭代下的迭代部分。
电子表格中定义的字段被锁定到电子表格,无法在测试管理器中进行编辑。要查看数据的格式或编辑字段,请打开 MATLAB 之外的 coordinate_text.xlsx
文件。
如果您无法看到某个部分中表格列中的所有数据,点击右上角的+隐藏其他列并调整所需列的大小。
对于多维信号,每个维度在电子表格中以单独的列表示。默认情况下,仅包含非零值的维度。如果所有维度都具有零值,则电子表格中仅包含最后一个维度。
将 Excel 电子表格导入现有测试用例
如果您有一个测试用例并想要从 Excel 电子表格向其中添加测试数据,则必须将测试用例与电子表格关联:
打开测试用例。
选中从外部文件创建测试用例选项。您只能对 Excel 电子表格使用此选项。
单击浏览文件按钮 并选择包含测试数据的电子表格。
电子表格中的输入、参数和比较信号数据将覆盖测试用例中的数据。电子表格中定义的字段被锁定到电子表格。
要编辑电子表格,请执行以下操作之一:
在输入部分中,选择 Excel 外部输入文件,然后点击编辑打开 Excel 电子表格。
在 MATLAB® 之外编辑并保存电子表格。在测试管理器中,点击文件字段旁边的刷新。
添加多个 Microsoft Excel 电子表格作为测试用例的输入
您可以一次导入多个 Microsoft Excel 电子表格并指定数据范围。当每张工作表包含不同的数据集或同一个文件包含输入数据和预期输出时,选择工作表并指定范围很有用。
在测试用例中,展开输入部分并点击添加。
浏览到您的 Microsoft Excel 文件并点击添加。
选择每个包含输入数据的工作表。您可以指定一个数据范围。
如果要使用每张工作表在表中创建一个输入集,请选择从每个工作表创建场景。
在输入映射下,选择一种映射模式。
点击映射输入。映射状态表显示端口和信号映射。
有关映射故障排除的更多信息,请参阅 Understand Mapping Results。
点击添加。
在测试结果中包含 Microsoft Excel 测试数据
在测试用例中,展开输入部分并点击在测试结果中包含输入数据。
在外部输入表下,点击添加。
在添加输入对话框中,指定 Excel 文件名和映射模式,指定如何将 Excel 数据映射到模型中的根级 Inport 模块。
点击映射输入。映射状态表显示端口和信号映射。
点击添加。
从 Microsoft Excel 导入测试输入
使用存储在 Microsoft® Excel® 中的输入测试模型。
此示例显示如何在测试管理器中创建测试用例以及如何将输入从 Microsoft® Excel® 文件映射到测试用例。输入映射仅支持 Microsoft Windows® 的 Microsoft Excel 电子表格。
创建测试文件
1.打开测试管理器。
sltest.testmanager.view
2.在测试管理器工具栏中,选择新建 > 测试文件。将文件保存到可写目录。测试管理器创建一个带有空的基线测试用例的测试文件。
3.在测试浏览器中,选择测试用例。在测试编辑器中的 System Under Test 部分下,输入 slexAutotransRootInportsExample
。
配置外部输入
1.展开测试用例的输入部分。
2.要将输入数据包含在测试结果中,点击在测试结果中包含输入数据。
3.在外部输入表下,点击添加。
4.在添加输入对话框中,对于文件,从当前目录中选择 sltestExampleInputs.xlsx
。该文件包含两个选项卡,分别名为 Acceleration
和 Braking
。每个选项卡代表单个仿真的一组完整的输入。
5.在添加输入对话框中,
从表格中选择 Acceleration 表。
选择映射模式:
Block Name
。点击地图输入。
单击添加。
映射模式控制将数据从 Microsoft Excel 表映射到模型中的根级 Inport 模块的方法。
测试用例显示映射的输入。
运行测试
1.在工具栏中,点击运行。
2.在结果和工件窗格中,您可以绘制来自外部输入或仿真输出的信号。
添加 MAT 文件或 MATLAB 脚本 (.m
) 文件作为外部输入
在测试用例中,展开输入部分并点击添加。
浏览到 MAT 文件或 MATLAB 脚本(
.m
文件)并点击添加。在输入映射下,选择一种映射模式。
点击映射输入。映射状态表显示端口和信号映射。
有关对映射状态进行故障排除的信息,请参阅 Understand Mapping Results。
点击添加。
您还可以使用外部 MAT 文件或 MATLAB 脚本 (.m
) 文件作为基线数据和参数覆盖。
以编程方式使用外部文件
您可以使用 MATLAB 命令来指定测试用例中使用的外部文件。请参阅 sltest.testmanager.TestCase
的 setProperty
方法中描述的 IsTestDataReferenced
和 TestDataPath
属性。例如,
tc = createTestCase(myTestSuite,'myTestCase'); setProperty(tc,'Model','myTestModel'); tc.setProperty('IsTestDataReferenced',true); tc.setProperty('TestDataPath','C:/myTestFiles/myData.xlsx');
另请参阅
sltest.testmanager.TestInput
| sltest.io.SimulinkTestSpreadsheet