自定义测试
你可以定制一个测试工具通过使用一个函数作为回调后运行测试工具创建或重建。的函数,编写命令来定制您的测试工具。例如,您可以创建函数:
连接定义的源或接收块。
添加一个工厂子系统为闭环测试。
更改配置设置。
启用日志记录的信号。
改变模拟停止时间。
测试工具的定制函数作为测试工具运行post-create回调或post-rebuild回调。自定义测试工具使用一个回调函数:
创建回调函数。
的函数,使用仿真软件金宝app®编程接口脚本的命令定制测试工具。有关更多信息,请参见中列出的功能编程模型编辑。
指定函数作为post-create或post-rebuild回调:
为一个新的测试工具,
如果您正在使用UI,输入的函数名Post-create回调方法或Post-rebuild回调方法在高级属性利用创建的对话框。
如果您使用的是
sltest.harness.create
,指定函数PostCreateCallback
或PostRebuildCallback
价值。
对现有的测试工具,
如果您正在使用用户界面,输入函数名Post-rebuild回调方法在利用属性对话框。
如果您使用的是
sltest.harness.set
,指定函数PostRebuildCallback
价值。
自定义测试的另一种方法是通过设置创建利用自己的违约。有关更多信息,请参见创建测试并选择Properties。
回调函数定义和利用信息
回调函数声明
函数myfun (x)
myfun
函数名和吗myfun
接受输入x
。x
是信息的结构体时的测试工具自动创建测试工具使用回调。你可以选择函数和参数名称。
例如,定义一个回调函数harnessCustomization.m
:
函数harnessCustomization (harnessInfo)%脚本命令来定制您的测试工具。结束
harnessInfo
结构体名称和吗harnessCustomization
是函数名。当创建或重建操作调用harnessCustomization
,harnessInfo
填充测试工具的信息,包括处理测试工具模型,测试工具的主要模型和块。
例如,使用harnessCustomization
作为一个回调以下测试工具:
填充harnessInfo
与处理三个来源,一个水槽,主模型,利用模型,利用所有者,组件测试下,和转换子系统:
harnessInfo =结构体字段:MainModel: 2.0001 HarnessModel: 1.1290 e + 03所有者:17.0001 HarnessCUT: 201.0110 DataStoreMemory: [] DataStoreRead: [] DataStoreWrite: [] Goto: []: [] GotoTag: [] SimulinkFunctionCalle金宝appr: [] SimulinkFunctionStub:[]来源:[1.1530 e + 03 1.1540 e + 03 1.1550 e + 03]汇:1.1630 e + 03 AssessmentBlock: [] InputConversionSubsystem: 1.1360 e + 03 OutputConversionSubsystem: 1.1560 e + 03 CanvasArea: (215 140 770 260)
使用结构体字段自定义测试工具。例如:
添加一个常数块命名
ConstInput
测试工具,测试模型的名称,然后使用add_block
函数。harnessName = get_param (harnessInfo.HarnessModel,“名字”);块= add_block (模金宝app型/资源/常数的,…[harnessName' / ConstInput ']);
去港口处理的组件测试,得到的
“PortHandles”
参数harnessInfo.HarnessCUT
。CUTPorts = get_param (harnessInfo.HarnessCUT,“PortHandles”);
得到仿真测试工具的停止时间,得到的
“StopTime”
参数harnessInfo.HarnessModel
。圣= get_param (harnessInfo.HarnessModel,“StopTime”);
设置一个
16
第二次模拟测试工具的停止时间,设置“StopTime”
参数harnessInfo.HarnessModel
。set_param (harnessInfo.HarnessModel“StopTime”,“16”);
显示利用信息结构的内容
测试工具的利用信息列表:
在回调函数中,添加
disp (harnessInfo)
创建或重建一个测试工具使用回调函数。
当您创建或重建测试工具,利用信息结构内容显示在命令行上。
之间共享数据回调
回调MATLAB脚本是评估®基本工作空间。之间共享数据回调脚本,使用assignin
和evalin
从基本工作空间来存储和检索数据。例如,
assignin (“基地”,“一个”2);一个= evalin (“基地”,“一个”);
并行执行,post-load上评估和清理回调平行MATLAB工人,在工作区回调有自己的基地。变量中创建一个测试用例预装调测试套件和测试文件和设置回调也可以在并行MATLAB工人基本工作空间。在执行之前,基本工作空间变量从客户端转移MATLAB并行MATLAB工人。
自定义一个测试工具来创建混合源类型
这个例子利用回调函数连接常数块的第三个组件输入这个例子测试工具。
函数遵循的程序:
利用模型名称。
添加一个常数块。
得到的端口句柄常数块。
得到输入转换的端口处理子系统。
得到线连接到输入转换的处理子系统。
删除现有的轮廓尺寸块。
删除剩余的线。
连接的新行常数块的输入
3
输入的转换子系统。
函数harnessCustomization (harnessInfo)%得到利用模型名称:harnessName = get_param (harnessInfo.HarnessModel,“名字”);%添加常数块:constBlock = add_block (模金宝app型/资源/常数的,…[harnessName' / ConstInput ']);%获得处理相关港口和线:constPorts = get_param (constBlock,“PortHandles”);icsPorts = get_param (harnessInfo.InputConversionSubsystem,…“PortHandles”);icsLineHandles = get_param…(harnessInfo.InputConversionSubsystem“LineHandles”);%删除现有的尺寸块和相邻的行:delete_block (harnessInfo.Sources (3));delete_line (icsLineHandles.Inport (3));%不变块连接到输入%转换子系统:add_line (harnessInfo.HarnessModel constPorts.Outport,…icsPorts.Inport (3),“高速公路”,“上”);结束
测试工具回调的例子
这个例子展示了如何使用一个post-create调自定义测试工具。回调改变一个利用源从一个轮廓尺寸块固定块,使信号记录在测试工具。
该模型
在本例中,您创建的测试工具卷参考
子系统。
open_system (“RollAutopilotMdlRef”)
得到路径利用定制函数
cbFile =“harnessSourceLogCustomization.m”;
自定义函数和测试工具的信息
这个函数harnessSourceLogCustomization
第三块来源变化,使信号记录被测试的组件输入和输出。你可以阅读这个函数通过输入:
类型(cbFile)
作为替代包括回调的输出日志代码,您可以使用日志输出信号在创建新的利用对话框,或使用“LogHarnessOutputs”,真的
作为一个输入sltest.harness.create
。这些选项日志中的所有组件测试输出信号测试工具对这些信号并返回测试结果。
这个函数harnessSourceLogCustomization
使用一个参数。参数是一个struct清单测试工具的信息。信息包括处理模块的测试工具,包括:
被测试的组件
输入子系统
源和汇
利用所有者在主模型
例如,harnessInfo.Sources
列出了测试工具源块处理。
创建定制的测试工具
1。利用定制功能复制到临时工作目录。
拷贝文件(cbFile tempdir);cd (tempdir);
2。在RollAutopilotMdlRef
模型中,右键单击卷参考
子系统和选择测试工具>创建卷参考。
3所示。在利用创建对话框Post-create回调方法,输入harnessSourceLogCustomization
。
4所示。点击OK以创建测试工具。利用日志记录和显示了信号仿真停止时间在回调函数中指定。
您还可以使用sltest.harness.create
函数来创建测试工具,指定的回调函数“PostCreateCallback”
名称-值对。
sltest.harness.create (“RollAutopilotMdlRef /卷参考”,…“名字”,“LoggingHarness”,…“PostCreateCallback”,“harnessSourceLogCustomization”);sltest.harness.open (“RollAutopilotMdlRef /卷参考”,“LoggingHarness”);
close_system (“RollAutopilotMdlRef”,0);
另请参阅
sltest.harness.create
|sltest.harness.set