主要内容

以编程方式创建一个测试序列

这个例子展示了如何使用编程接口创建一个测试工具和测试序列。您创建了一个测试集和一个test Sequence块,并编写了一个测试序列来验证巡航控制系统的两个功能属性。

创建包含测试序列块的测试套件

1.加载模型。

模型=“sltestCruiseChart”;load_system(模型)

2.创建测试工具。

sltest.harness.create(模型,“名字”“Harness1”...“源”测试序列的) sltest.harness.load(模型,“Harness1”);set_param (“Harness1”“StopTime”“15”);
ans = struct with fields: model: 'sltestCruiseChart'名称:'Harness1'描述:" ownerHandle: 0.0016 ownerFullPath: 'sltestCruiseChart' ownerType: 'Simulink。金宝appBlockDiagram' verificationMode: 'Normal' saveexternal: 0 rebuildOnOpen: 0 rebuildModelData: 0 postRebuildCallback: " graphic: 0 origSrc: 'Test Sequence' origSink: 'Test Assessment' synchronizationMode: 'SyncOnOpen' existingBuildFolder: " functionInterfaceName: "

编写测试序列

1.添加一个局部变量endTest并将数据类型设置为布尔.你使用endTest在测试步骤之间转换。

sltest.testsequence.addSymbol (“Harness1 /测试序列”“endTest”...“数据”“本地”);sltest.testsequence.editSymbol (“Harness1 /测试序列”“endTest”...“数据类型”“布尔”);

2.修改步骤的名称运行Initialize1

sltest.testsequence.editStep (“Harness1 /测试序列”“运行”...“名字”“Initialize1”);

3.添加一个步骤输入输入当刹车时,检查巡航控制是否脱离。添加定义测试场景操作和验证的子步骤。

sltest.testsequence.addStepAfter (“Harness1 /测试序列”...“输入”“Initialize1”“行动”'endTest = false;'添加从|Initialize1|到|BrakeTest|的过渡。sltest.testsequence.addTransition (“Harness1 /测试序列”...“Initialize1”“真正的”“输入”此子步骤启用巡航控制和设置速度。|是BrakeTest.SetValues的动作。setValuesActions = sprintf('CruiseOnOff = true;\nSpeed = 50;');sltest.testsequence.addStep (“Harness1 /测试序列”...的输入。setvalue”“行动”setValuesActions)此子步骤使用巡航控制。setCCActions = sprintf('CoastSetSw = true;');sltest.testsequence.addStepAfter (“Harness1 /测试序列”...的输入。参与的的输入。setvalue”“行动”setCCActions)此步骤应用刹车。brakeActions = sprintf(\nBrake = true;');sltest.testsequence.addStepAfter (“Harness1 /测试序列”...的输入。刹车的的输入。参与的“行动”brakeActions)此步骤验证巡航控制是否关闭。brakeVerifyActions = sprintf('verify(engaged == false)\nendTest = true;');sltest.testsequence.addStepAfter (“Harness1 /测试序列”...的输入。验证的的输入。刹车的“行动”brakeVerifyActions)在步骤之间添加过渡。sltest.testsequence.addTransition (“Harness1 /测试序列”...的输入。setvalue”“真正的”的输入。参与的) sltest.testsequence.addTransition (“Harness1 /测试序列”...的输入。参与的(2秒)后的的输入。刹车的) sltest.testsequence.addTransition (“Harness1 /测试序列”...的输入。刹车的“真正的”的输入。验证的

4.添加一个步骤Initialize2初始化组件输入。添加一个过渡输入Initialize2

init2Actions = sprintf(['CruiseOnOff = false;\n'...'刹车= false;\n'...'Speed = 0;\n'...'CoastSetSw = false;\n'...'AccelResSw = false;']);sltest.testsequence.addStepAfter (“Harness1 /测试序列”...“Initialize2”“输入”“行动”init2Actions) sltest.testsequence.addTransition (“Harness1 /测试序列”...“输入”'endTest == true'“Initialize2”

5.添加一个步骤限制限制当车速超过最高限制时,检查巡航控制系统是否脱离。添加一个过渡Initialize2步骤,并添加子步骤来定义操作和验证。

sltest.testsequence.addStepAfter (“Harness1 /测试序列”...“限制”“Initialize2”) sltest.testsequence.addTransition (“Harness1 /测试序列”...“Initialize2”“真正的”“限制”添加一个步骤来启用巡航控制和设置速度。。setValuesActions2 = sprintf('CruiseOnOff = true;\nSpeed = 60;');sltest.testsequence.addStep (“Harness1 /测试序列”...的限制。setvalue”“行动”setValuesActions2)增加一个步骤使巡航控制生效。。setCCActions = sprintf('CoastSetSw = true;');sltest.testsequence.addStepAfter (“Harness1 /测试序列”...的限制。参与的的限制。setvalue”“行动”setCCActions)增加一个台阶来增加车辆的速度。sltest.testsequence.addStepAfter (“Harness1 /测试序列”...的限制。RampUp”的限制。参与的“行动”'速度=速度+斜坡(5*et);'添加一个步骤来验证巡航控制是关闭的。。highLimVerifyActions = sprintf('verify(engaged == false)');sltest.testsequence.addStepAfter (“Harness1 /测试序列”...的限制。VerifyHigh”的限制。RampUp”“行动”highLimVerifyActions)在步骤之间添加过渡。高速斜坡转换时%车速超过90。sltest.testsequence.addTransition (“Harness1 /测试序列”...的限制。setvalue”“真正的”的限制。参与的) sltest.testsequence.addTransition (“Harness1 /测试序列”...的限制。参与的“真正的”的限制。RampUp”) sltest.testsequence.addTransition (“Harness1 /测试序列”...的限制。RampUp”“Speed > 90”的限制。VerifyHigh”

打开测试工具以查看测试序列。

sltest.harness.open(模型,“Harness1”);

双击Test Sequence块以打开编辑器并查看测试序列。

关闭测试线束和模型

sltest.harness.close(模型,“Harness1”);close_system(模型中,0);

另请参阅