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