这个示例展示了如何使用编程接口创建测试工具和测试序列。您可以创建一个测试工具和一个test Sequence块,并编写一个测试序列来验证巡航控制系统的两个功能属性。
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 /测试序列”,“endTest”,...“数据”,“本地”);sltest.testsequence.editSymbol (“Harness1 /测试序列”,“endTest”,...“数据类型”,“布尔”);
2.更改步骤的名称运行
来Initialize1
.
sltest.testsequence.editStep (“Harness1 /测试序列”,“运行”,...“名字”,“Initialize1”);
3.添加一个步骤输入
.输入
检查制动时巡航控制装置是否断开。添加定义测试场景操作和验证的子步骤。
sltest.testsequence.addStepAfter (“Harness1 /测试序列”,...“输入”,“Initialize1”,“行动”,“endTest = false;”)%添加一个从|Initialize1|到| brakeest |的转换。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 ('验证(engage == 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”...“速度= 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 (“验证(从事= = false)”);sltest.testsequence.addStepAfter (“Harness1 /测试序列”,...的限制。VerifyHigh”,的限制。RampUp”,“行动”highLimVerifyActions)%添加步骤之间的转换。速度斜坡在车辆速度超过90。sltest.testsequence.addTransition (“Harness1 /测试序列”,...的限制。setvalue”,“真正的”,的限制。参与的) sltest.testsequence.addTransition (“Harness1 /测试序列”,...的限制。参与的,“真正的”,的限制。RampUp”) sltest.testsequence.addTransition (“Harness1 /测试序列”,...的限制。RampUp”,“速度> 90”,的限制。VerifyHigh”)
打开测试工具以查看测试序列。
sltest.harness.open(模型,“Harness1”);
双击Test Sequence块以打开编辑器并查看测试序列。
sltest.harness.close(模型,“Harness1”);close_system(模型中,0);