测试迭代
通过使用测试用例迭代,您可以使用不同的数据或配置集运行相同的测试用例。迭代可以使用不同的:
参数。
外部输入。
配置集。
信号编辑器场景。
信号生成器组。
基线数据。
中设置迭代迭代测试用例的部分。您可以使用表迭代或脚本迭代。如果测试收集覆盖使用金宝app®覆盖™,相同的覆盖设置适用于测试用例中的所有迭代。
的迭代,您都可以在测试用例中看到迭代显示迭代按钮。
创建表迭代
表迭代提供在模型或测试用例中添加基于迭代项的快速方法。要创建表的迭代,首先要使相应的列可见:
扩大表迭代部分。
,在表中添加或删除列
按钮,并选择列表中的项目。例如,要显示参数和配置集,请选择参数集而且配置设置物品。
手动添加迭代
要手动添加迭代,请单击添加.该表显示一个新的迭代行。
分配迭代名称并为迭代选择项目。例如,这个测试用例有四个迭代。每次迭代使用外部输入和基线数据的不同组合。
生成表迭代
您还可以从测试用例和模型中的数据自动生成迭代:
单击自动生成按钮。
选择生成迭代的项。
如果选择多个项目,迭代将按顺序配对创建。例如:
该模型
sldemo_autotrans
有一个信号生成器块有四个信号组,标记为S1, S2, S3和S4。测试用例有三个参数集,标记为P1、P2和P3。
自动生成迭代信号生成器组和参数集的结果是三次迭代。迭代受三个参数集的限制。每个迭代包含一个信号生成器组和一个参数集。的信号生成器组和参数集的匹配顺序与它们在信号生成器块和参数设置部分。
为迭代指定可选的命名规则。在迭代命名规则输入规则,使用:
要在名称中使用的每个设置的名称,删除空格
用下划线或空格分隔每个设置
例如,如果您想包含参数集、配置集和基线文件名的名称,请输入
ParameterSet_ConfigurationSet_Baseline
.
部分选项 | 目的 |
---|---|
信号建造组 |
适用于输入的模拟、基线或等价测试用例的部分信号建造组.每个Signal Builder组用于生成迭代。 |
信号编辑器场景 |
适用于输入的模拟、基线或等价测试用例的部分信号编辑器场景.每个Signal Editor场景都用于生成迭代。 |
参数集 |
适用于参数将覆盖模拟、基线或等价测试用例的部分。每个参数覆盖集用于生成迭代。 |
外部输入 |
适用于输入的模拟、基线或等价测试用例的部分外部输入集。每个外部输入集都用于生成迭代。 |
配置设置 |
适用于配置设置覆盖模拟、基线或等价测试用例的部分。每次迭代都使用指定的配置设置。 |
基线 |
仅应用于基线测试用例类型,特别是基线标准基线测试用例的部分。每个基线标准集用于生成迭代。 |
模拟1或2 |
仅应用于等价测试用例类型。在“自动生成报告”对话框的顶部,有一个用于模拟1或模拟2.这些部分对应于等价测试用例中的两个模拟部分。 |
创建脚本迭代
控件中的脚本可以运行自定义的迭代集脚本化的迭代部分。例如,您可以通过使用自定义迭代来定义参数集或自定义迭代顺序。脚本迭代是在测试执行时在运行时生成的。
迭代脚本组件
迭代脚本必须包含某些组件。最基本的迭代脚本包含三个元素:
使用创建的迭代对象
sltestiteration
.迭代设置,使用设置
setTestParam
.迭代注册,添加使用
addIteration
.
例如,该脚本创建了一个迭代,该迭代运行一个信号组信号生成器块。
使用信号生成器组进行迭代建立一个新的迭代对象testr = sltestteration;使用Signal Builder组设置迭代设置setTestParam (testItr“SignalBuilderGroup”,...sltest_signalBuilderGroups {1});添加要在此测试用例中运行的迭代。这里使用预定义的sltest_testCase变量addIteration (sltest_testCase testItr);
有关测试迭代类的更多信息,请参见sltest.testmanager.TestIteration
.您可以遍历多个项,例如信号生成器组。您可以遍历所有内容信号生成器通过将基本的迭代脚本放入循环中,在块中进行分组:
%%遍历所有信号生成器组确定可能的迭代次数numSteps = length(sltest_signalBuilderGroups);%创建每个迭代为k = 1: numSteps建立一个新的迭代对象testr = sltestteration;%设置迭代设置setTestParam (testItr“SignalBuilderGroup”, sltest_signalBuilderGroups {k});添加要在此测试用例中运行的迭代。您可以传入一个可选的迭代名称addIteration (sltest_testCase testItr);结束
预定义的变量
您可以使用预定义的变量来编写迭代脚本。要查看测试管理器中预定义变量的列表,请展开帮助创建测试迭代部分。控件中的脚本框中编写迭代脚本脚本化的迭代部分。脚本框是一个功能工作区,这意味着MATLAB®基本工作区不能从脚本框访问信息。如果您在脚本框中定义了变量,那么其他工作区就不能使用该变量。
预定义变量为:
sltest_bdroot
-由测试用例模拟的模型,定义为字符串sltest_sut
-被测试系统,定义为字符串sltest_isharness
- - - - - -真正的
如果sltest_bdroot
控制模型是否定义为逻辑模型sltest_externalInputs
-外部输入的名称,定义为字符串的单元格数组sltest_parameterSets
-参数覆盖集的名称,定义为字符串的单元格数组sltest_configSets
-配置设置的名称,定义为字符串的单元格数组sltest_tableIterations
迭代表中创建的迭代对象,定义为的单元格数组sltest.testmanager.TestIteration
对象sltest_testCase
—当前测试用例对象,定义为sltest.testmanager.TestCase
对象
脚本迭代模板
您可以使用的模板为您的测试用例快速生成迭代信号生成器组、参数集、外部输入、配置集和基线集,如果您正在使用基线测试用例的话。脚本化迭代模板遵循测试设置的同步排序和配对。有关同步排序的更多信息,请参见创建表迭代.
例如,如果你想在一个脚本迭代中运行所有的信号构建器组:
点击迭代模板.
选择您想要迭代的测试用例设置。点击好吧.
生成脚本并将其添加到任何现有脚本下方的脚本框中。
要生成一个表,提供运行测试用例时所执行迭代的预览,请单击显示迭代.
从迭代中捕获基线数据
这个例子展示了如何通过从具有表迭代的测试用例中捕获数据来创建基线测试。您可以从模型中的Signal Builder组创建迭代。在运行示例之前,导航到MATLAB®路径上的一个可写文件夹。
1.打开模型。在命令行中,输入
模型=“sltestCar”;open_system (fullfile (matlabroot,“例子”,“金宝appsimulinktest”、模型));
2.创建一个包含迭代的测试文件,并打开test Manager。在命令行中,输入
tf = sltest.testmanager.TestFile(“IterationBaselineTest”);sltest.testmanager.load (tf.Name);sltest.testmanager.view;
3.在测试管理器中,右键单击测试用例并选择重命名.重命名测试用例基准测试.
4.在被测系统节,模型,输入sltestCar
.
5.为基线数据选择信号:
在模拟输出部分中,点击添加.出现“信号选择”对话框。
在模型画布中,选择
输出转矩
而且车辆速度
信号。信号出现在“信号选择”对话框中。2 .在对话框中选择两个信号,单击添加.
信号出现在记录信号表格
6.为测试用例添加迭代:
扩大迭代测试用例的部分。
扩大表迭代节并单击自动生成.
在对话框中,选择信号建造组.点击好吧.
该表列出了与四个Signal Builder组对应的迭代。
7.为迭代捕获基线数据:
在基线标准部分,单击旁边的箭头捕获,并选择迭代的捕获.
为基线数据文件指定一个位置。
点击创建.
该模型模拟了所有Signal Builder组。的基线数据output_torque
而且vehicle_speed
捕获在四个MAT文件中。此外,每个基线数据集都被添加到表中相应的迭代中。
扫描一组参数
脚本迭代可以用于通过一组参数来测试模型。您可以使用该脚本尝试模型工作区参数的不同值迅速的
在模型中sltestCar
.将脚本添加到迭代>脚本化的迭代.
%%遍历Iei参数%设置参数值以扫描IeiValues = [0.021,0.022,0.022,0.023];numSteps = length(IeiValues);%创建每个迭代为k = 1: numSteps建立一个新的迭代对象testr = sltestteration;lei的设置值(模型工作区中的参数)setVariable (testItr“名字”,“迅速”,“源”,“模型空间”,...“价值”, IeiValues (k));添加要在此测试用例中运行的迭代。addIteration (sltest_testCase testItr);结束
添加脚本后,单击显示迭代.您可以看到脚本创建的迭代。
运行测试为每个迭代生成一个结果。
另请参阅
sltest.testmanager.TestIteration