主要内容

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

此示例显示如何使用程序化接口创建测试线束和测试序列。您创建测试线束和测试序列块,并创作测试序列以验证巡航控制系统的两个功能属性。

创建一个包含测试序列块的测试工具

1.加载模型。

模型='sltestcruisechart';load_system(型号)

2.创建测试工具。

sltest.harness.create(模型,“名字”“Harness1”...“源”'测试序列')sltest.harness.load(模型,“Harness1”);set_param (“Harness1”“StopTime”“15”);

作者测试序列

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

sltest.testsequence.addsymbol('harness1 / test sequence'“endTest”...'数据'“本地”);sltest.testsequence.editSymbol ('harness1 / test sequence'“endTest”...“数据类型”'布尔值');

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

sltest.testsequence.editStep ('harness1 / test sequence'“运行”...“名字”“Initialize1”);

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

sltest.testsequence.addStepAfter ('harness1 / test sequence'...“输入”“Initialize1”'行动'“endTest = false;”%添加一个从|Initialize1|到|BrakeTest|的转换。sltest.testsequence.addTransition ('harness1 / test sequence'...“Initialize1”'真的'“输入”这个子步骤使巡航控制和设置速度。|是BrakeTest.SetValues的动作。setValuesActions = sprintf ('CruiseOnOff = true;\nSpeed = 50;');sltest.testsequence.addStep ('harness1 / test sequence'...的输入。setvalue”'行动',setValesactions)%该子步骤涉及巡航控制。setCCActions = sprintf (“CoastSetSw = true;”);sltest.testsequence.addStepAfter ('harness1 / test sequence'...'braketest.engage'的输入。setvalue”'行动'setCCActions)%此步骤适用制动器。brakeActions = sprintf ('CoastSetSw = false;\nBrake = true;');sltest.testsequence.addStepAfter ('harness1 / test sequence'...的输入。刹车的'braketest.engage''行动'brakeActions)%此步骤验证巡航控制已关闭。brakeVerifyActions = sprintf ('verify(engaged == false)\nendTest = true;');sltest.testsequence.addStepAfter ('harness1 / test sequence'...的输入。验证的的输入。刹车的'行动'brakeVerifyActions)%添加步骤之间的转换。sltest.testsequence.addTransition ('harness1 / test sequence'...的输入。setvalue”'真的''braketest.engage') sltest.testsequence.addTransition ('harness1 / test sequence'...'braketest.engage'(2秒)后的的输入。刹车的) sltest.testsequence.addTransition ('harness1 / test sequence'...的输入。刹车的'真的'的输入。验证的

4.添加步骤Initialize2初始化组件输入。添加从输入Initialize2

init2actions = sprintf([“CruiseOnOff = false; \ n”...“制动= false; \ n”...“速度= 0;\ n”...“CoastSetSw = false; \ n”...“AccelResSw = false;”]);sltest.testsequence.addStepAfter ('harness1 / test sequence'...“Initialize2”“输入”'行动'init2Actions) sltest.testsequence.addTransition ('harness1 / test sequence'...“输入”“endTest = = true”“Initialize2”

5.添加一个步骤Limittest.Limittest.检查当车辆速度超过高限制时巡航控制脱离。控件添加一个转换Initialize2步骤,并添加子步骤来定义操作和验证。

sltest.testsequence.addStepAfter ('harness1 / test sequence'...“限制”“Initialize2”) sltest.testsequence.addTransition ('harness1 / test sequence'...“Initialize2”'真的'“限制”%添加一个步骤以使巡航控制并设置速度。setValueseac算2 = Sprintf('CruiseOnOff = true;\nSpeed = 60;');sltest.testsequence.addStep ('harness1 / test sequence'...'limittest.setvalues''行动',setValesactions2)%添加了一个步骤来接合巡航控制。setCCActions = sprintf (“CoastSetSw = true;”);sltest.testsequence.addStepAfter ('harness1 / test sequence'...的限制。参与的'limittest.setvalues''行动'setCCActions)%添加一个台阶来增加车辆的速度。sltest.testsequence.addStepAfter ('harness1 / test sequence'...的限制。RampUp”的限制。参与的'行动''速度=速度+匝道(5*et);'%添加一个步骤来验证巡航控制是关闭的。highLimVerifyActions = sprintf (“验证(从事= = false)”);sltest.testsequence.addStepAfter ('harness1 / test sequence'...的限制。VerifyHigh”的限制。RampUp”'行动'highLimVerifyActions)%添加步骤之间的转换。速度坡道过渡时%车辆速度超过90。sltest.testsequence.addTransition ('harness1 / test sequence'...'limittest.setvalues''真的'的限制。参与的) sltest.testsequence.addTransition ('harness1 / test sequence'...的限制。参与的'真的'的限制。RampUp”) sltest.testsequence.addTransition ('harness1 / test sequence'...的限制。RampUp”“速度> 90”的限制。VerifyHigh”

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

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

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

关闭测试工具和模型

SLTEST.HARNESS.CLOSE(模型,“Harness1”);close_system(型号,0);

另请参阅