以编程方式创建和运行测试序列场景
这个例子展示了如何创建和定义多个测试场景在一个单一的测试序列。能够定义一个以上的测试序列在另一块可以减少测试序列块在你的测试工具。
下面的例子使用了HeatPumpScenario1
模型,它已经有了一个测试工具,其中包含一个测试序列块。在本例中,您将块使用场景中,添加一个新的场景,编辑场景一步,激活新场景,当模型模拟运行。
这个示例还展示了如何使用场景在一个迭代运行多个迭代的测试用例。
打开模型和测试工具
打开控制器
子系统的HeatPumpScenario1
模型及其测试工具,ScenarioTest
。
open_system (“HeatPumpScenario1”)sltest.harness.open (“HeatPumpScenario1 /控制器”,“ScenarioTest”);
设置场景
使场景
设置测试序列块使用场景。现有的措施和转换进入一个场景,在这个例子中,命名FirstScenario
。请注意,一旦你改变一个测试序列块使用场景,你不能恢复,块non-scenario模式。
sltest.testsequence.useScenario (“ScenarioTest /测试序列”,…“FirstScenario”);
添加另一个场景
添加第二个场景来测试序列块。名字的场景NewScenario
。
sltest.testsequence.addScenario (“ScenarioTest /测试序列”,“NewScenario”);
编辑场景内容
编辑新场景的第一步改变的值Troom_in
和Tset
变量。前言与场景名称的名称包含的步骤。同样的,当添加或改变转换,还必须与场景名前言的过渡。
action = sprintf (“Troom_in = 75; \ nTset = 75; \ n”);sltest.testsequence.editStep (“ScenarioTest /测试序列”,…“NewScenario.step_1”,“行动”、行动);
查看场景内容,使用sltest.testsequence.findStep (blockPath)
返回一个数组,其中包含的步骤名称所有场景。然后,用sltest.testsequence.readStep (stepName)
或sltest.testsequence.readTransition (stepName)
看到的内容指定的步骤或过渡,分别。你也可以通过双击查看场景内容的测试序列块利用打开块编辑器。
指定要运行的场景
指定新场景运行期间模型模拟。这个场景是活跃的场景中,这是唯一的场景,在仿真运行。另一种方式来激活并运行一个场景中,或使用迭代运行场景,见下文。
sltest.testsequence.activateScenario (“ScenarioTest /测试序列”,…“NewScenario”);
运行模型
运行模型使用新的场景
一次只能运行一个活跃的场景,除非你使用一个循环在命令行或脚本,或运行的迭代(见下文)。注意,快速启动支持场景和运行模式切换时活跃。金宝app
sim卡(“ScenarioTest”)
测试工具,查看范围块新场景的仿真结果。
运行一个不同的场景
激活第一个场景。
sltest.testsequence.activateScenario (“ScenarioTest /测试序列”,…“FirstScenario”);
重新运行模型。
sim卡(“ScenarioTest”)
测试工具,查看范围块第一场景的仿真结果。
使用工作空间变量来激活并运行一个场景
在某些情况下,如对于遍历场景,您可能想要使用一个工作空间变量来控制哪些场景来激活,而不是使用activateScenario
。使用工作空间变量的步骤是:
设置场景控制源使用的工作区
sltest.testsequence.setScenarioControlSource
(sltest.testsequence.ScenarioControlSource.Workspace, ScenarioTest /测试序列”
);基本的工作区中创建一个变量,模型工作区,或数据字典来指定活动场景中使用它的索引值。例如,
Active_Scenario_Index = 1;
运行模型,它使用和转换的步骤活动场景。
运行一个不同的场景,改变Active_Scenario_Index
到所需的场景中,例如,Active_Scenario_Index = 2
,然后重新运行模型。
改变活动场景参数的名称Active_Scenario_Index
,例如,ScenarioIndex
,使用sltest.testsequence。editSymbol (ScenarioTest /测试序列,…“Active_Scenario_Index”、“名称”、“ScenarioIndex”);
然后创建一个ScenarioIndex
变量的基本工作空间。使用Scenario_Index = 2
设置变量来运行场景被索引2,然后运行模型。
使用迭代运行场景
您可以使用迭代运行多个场景在一个测试用例。下面的步骤使用相同的模型,上面定义的测试序列块和场景。
1。设置测试文件、测试套件和测试用例。
tf = sltest.testmanager.TestFile (“场景迭代测试”);ts = gettestsuite (tf);tc = createTestCase (ts,“模拟”,“Sim迭代”);
2。设置测试用例模型和测试工具。
setProperty (tc,“模型”,“HeatPumpScenario1”);setProperty (tc,“HarnessOwner”,“HeatPumpScenario1 /控制器”,“HarnessName”,“ScenarioTest”);
3所示。得到场景的测试序列的名称。
tseq_block =“ScenarioTest /测试序列”;scenarioNames = sltest.testsequence.getAllScenarios (tseq_block);
4所示。设置测试序列块和默认场景测试用例。
setProperty (tc,“TestSequenceBlock”,tseq_block);setProperty (tc,“TestSequenceScenario”,“FirstScenario”);
5。使用一个循环创建迭代,分配一个场景,每一次迭代,迭代添加到测试用例。
为i = 1:元素个数(scenarioNames) testItr = sltestiteration;setTestParam (testItr“TestSequenceScenario”我,scenarioNames {});testItr addIteration (tc);结束
6。运行测试用例。
运行(tc);
关闭测试工具和模型
sltest.harness.close (“HeatPumpScenario1 /控制器”,“ScenarioTest”);close_system (“HeatPumpScenario1”,0);
另请参阅
sltest.testsequence.useScenario
|sltest.testsequence.setScenarioControlSource
|sltest.testsequence.getActiveScenario
|sltest.testsequence.editScenario
|sltest.testsequence.deleteScenario
|sltest.testsequence.addScenario
|sltest.testsequence.activateScenario