TestStand 过程模型开发和自定义【6】
概览
过程?模型?的?开发?和?自?定义?是?NI TestStand?的?强大?功能,?用户?可?通过?此?功能?归纳?多个?测试?序列?中的?概念?并?提高?代码?复?用?率,?从而?减少?开发?和?维护?时间。?本文?档?概述?了?自?定义?过程?模型?的?最佳?实践。?本文?档?非常?适用?于?具有?基本?过程?模型?开发?应用?知识?的?人员。?要?熟悉?这些?概念,?请?参阅《过程?模型?理论》?文?档,?大致?了解?TestStand?如何?使用?过程?模型。
内容
- 过程?模型?在?测试?系统?中的?作用
- 过程?模型?组件
- 自?定义?过程?模型
- 修改?现有?的?模型?行为
- 修改?过程?模型?数据?结构
- 定义?特定?测试?站?的?自?定义?行为
- 将?自?定义?过程?模型?升级?为?更高?版本?的?TestStand
过程?模型?在?测试?系统?中的?作用
要?为?产品?创建?功能?齐全?的?测试,?不仅仅是?需要?执行?一?组?测试?用例。?通常,?测试?系统?在?执行?测试?序列?之前、?期间?和?之后?必须?执行?一系列?操作。?定义?测试?过程?的?通用?操作?包括?识别?待?测?设备、?将?合格/?失败?状态?通知?操作?员、?记录?结果?和?生成?测试?报表。?这?一系列?操作?及其?执行?流程?称为?过程?模型。?在?TestStand?中,?过程?模型?层?在?序列?文件?中?实现,?与?TestStand?引擎?不同。?鉴于?这种?模?块?化?的?特点,?用户?可以?自?定义?过程?模型,?而?不会?影响?测试?执行?程序?本身。
过程?模型?提供?了?独立?于?测试?执行?程序?和?测试?代码?的?附加?层,?可?实现?常见?测试?功能
过程?模型?是?TestStand?的?独?有?特色,?而?大?多数?自行?开发?的?测试?执行?程序?则?无法?匹?敌。?通常,?这些?应用?程序?没有?过程?模型?的?概念,?测试?序列?或?测试?执行?程序?本身?都?提供?了?常见?测试?任务?的?机制。 这些?都不是?理想?方法:
- 如果?测试?代码?负责?执行?这些?通用?操作,?则?创建?的?每?个?新?测试?集?将?需要?重复?此?代码。
- 如果?直接?在?测试?执行?程序?中?实现?通用?操作,?则?更改?通用?测试?操作?需要?更新?整个?测试?执行?程序。
使用?过程?模型?执行?常见?任务?可以?增强?模?块?化?特性?并?提高?可?复?用?性,?因为?用户?可以?仅?在?一个?位置?修改?通用?操作,?同时?仍?将?这些?操作?与?基础?测试?执行?程序?区分?开?来。
借助?插?件?架构,?TestStand?过程?模型?可?进一步?实现?模?块?化。 过程?模型?调?用?插?件?序列?文件?来?实现?结果?处理,?如?报表?生成?和?数据?库?记录。 您?可以?修改?这些?插?件?或?创建?自己?的?插?件,?以此?扩展?过程?模型?的?功能,?而无?需?修改?过程?模型?本身。
过程?模型?调?用?插?件?来?执行?结果?处理,?包括?报表?生成?和?数据?库?记录。 用户?还?可以?创建?自?定义?插?件,?实现?自?定义?记录?机制
用户?可以?使用?TestStand?过程?模型?来?创建?功能?强大?且?灵活?的?测试?应用?程序。?实现?过程?模型?的?模?块?化,?可?最大?程度?地?减少?更新?框架?功能?时?需要?更改?的?代码?量。?使用?TestStand?过程?模型?架构?来?开发?完整?的?测试?系统,?可以?节省?时间?并?降低?开发?和?维护?成本。
过程?模型?组件
在?TestStand?中,?过程?模型?可?作为?已?启用?过程?模型?选项?的?序列?文件?来?实现,?而且?可以?包含?其他?特定?于?模型?的?序列?类型。 序列?文件?类型在“序列?文件?属性”(Sequence File Properties)?的“高级”(Advanced)?选项卡中?配置。?这些?序列?类型?各自?具有?特定?的?行为:
- 执行?入口点允许?用户?使用?所需?的?过程?模型?序列?来?执行?测试。
- 配置?入口点为?用户?提供?了?一个?用户?界面,?用于?配置?过程?模型?设置?并?存储?这些?设置。
- 模型?回调允许?测试?序列?文件?覆盖?过程?模型?行为。
通过“序列?属性”(Sequence Properties)?对话?框?的“模型”(Model)?选项?卡,?配置?过程?模型?文件?包含?的?序列?类型。
执行?入口?点?序列
执行?入口?点?为?用户?提供?了?一种?方式,?可?运用?过程?模型?执行?其?测试?代码。?默认?的?TestStand?过程?模型?提供?两?个?执行?入口?点,?即?Test UUTs?和?Single Pass。?每?个?入口?点?都在?过程?模型?序列?文件?的?序列?中?实现。?在?序列?编辑?器?中,?当?活动?窗口?包含?使用?过程?模型?的?序列?文件?时,“执行”(Execute)?菜单?将?列出?执行?入口?点。
顺序?过程?模型?使用?Single Pass?和?Test UUTs?执行?入口?点。?两?种?执行?入口?点?都可?调?用?客户?端?序列?文件?的?MainSequence?序列,?一次?针对?一个?待?测?设备?执行?测试。?入口?点?还?可?共享?其他?操作,?如?生成?测试?报表?和?将?数据?结果?存储?在?数据?库?中。
顺序?过程?模型?中的?Single Pass?和?Test UUTs?执行?入口?点?流程
入口?点?名称?表达?式?是?使用?入口?点?时?序列?编辑?器?或?用户?界面?中?出现?的?名称。?使用“序列?属性”(Sequence Properties)?对话?框?中“模型”(Model)?选项?卡?上?的“入口?点?名称?表达?式”(Entry Point Name Expression)?文本?框,?编辑?此?值。?仅?当?您?选择?的?序列?为?执行?入口?点?时,“入口?点?名称?表达?式”(Entry Point Name Expression)?文本?框?才?可见。?ResStr(“MODEL”、“TEST_UUTS”)?等?默认?值?采用?ResStr?函数,?具有?TestStand?本地?化?功能。?用?另?一个?本地?化?值?替换?该?值,?或?使用?从?用户?角度?描述?入口?点?的?常量?字符?串?表达?式。
使用?本地?化?字符?串?而不是?常量?字符?串?的?好处?是?用户?可?更改?字符?串?值,?而无?需?修改?过程?模型?本身。?有关?使用?TestStand?资源?字符?串?进行?本地?化?的?更多?信息,?请?参阅将?TestStand?本地?化?为?其他?语言教程。
配置?入口点
配置?入口?点?可?为?用户?提供?一种?方法,?用以?配置?过程?模型?设置。 默认?模型?包含?模型?选项?和?结果?处理?入口?点。 与?执行?入口?点?类似,?配置?入口?点?在?过程?模型?文件?的?序列?中?实现,?并?在?序列?编辑?器?的“配置”(Configure)?菜单?中?列出。 为了?保存?设置,?模型?入口?点?会?将?数据?写?入?TestStand?配置?目录?中的?配置?文件。
模型?回调
测试?开发?人员?可以?使用?模型?回?调?来自?定义?特定?测试?过程?模型?的?某些?方面,?而无?需?更改?过程?模型?本身。 过程?模型?定义?了?入口?点?在?执行?中?各个?点?调?用?的?回?调?序列。 例如,?在?开始?测试?之前,?Test UUTs?入口?点?将?调?用?PreUUT?回?调?序列,?提示?用户?输入?序列?号。 如果?测试?开发?人员?需要?对?此?功能?进行?特定?更改,?则?可以?覆盖?测试?序列?文件?中的?回?调。 在?这种?情况?下,?当?模型?调?用?PreUUT?序列?时,?系统?将?调?用?测试?序列?文件?中的?序列,?而不是?过程?模型?文件?中的?PreUUT?序列。
有关?过程?模型?回?调?的?详细?说明,?请?参见《在?NI TestStand?中?使用?回调》?文?档。
测试?序列?文件?可以?覆盖?过程?模型?中的?回?调?序列,?从而?确定?自?定义?行为
过程?模型?插件
默认?过程?模型?使用?插?件?架构?来?实现?结果?处理,?包括?报表?生成?和?数据?库?记录。 每?个?插?件?都可?在?单独?的?序列?文件?中?实现,?此类?序列?文件?包含?插?件?入口?点?序列,?系统?会?在?主?过程?模型?入口?点?的?各个?点?处?调?用?这些?序列。 过程?模型?还?提供?了?一个?插?件?配置?对话?框,?使?测试?开发?人员?能够?配置?处于?活动?状态?的?插?件?并?配置?插?件?设置。
有关?TestStand?过程?模型?插?件?架构?的?更多?信息,?请?参阅过程?模型?插?件?架构帮助?主题。
其他?引擎?回调
除了?标准?序列?文件?中?提供?的?引擎?回?调,?过程?模型?序列?文件?还?提供?了?其他?引擎?回?调。 这些?回?调?具有“ProcessModel”前?缀,?仅?针对?过程?模型?中?当前?客户?端?序列?文件?的?步骤?执行,?用户?可?对?该?文件?进行?定义。 例如,?ProcessModelPostStep?回?调?在?测试?序列?中?执行?的?每?个?步骤?之后?执行,?但在?执行?过程?模型?中的?步骤?之后?不?执行。
通常,?这些?回?调?用于?自?定义?错误?处理。 测试?开发?人员?一般?希望?尽量?从?错误?中?提取?更多?信息,?并?希望?在?发生?错误?时?控制?系统?行为。?在?其他?用例?中,?外?包?的?全?自动?环境?通常?需要?启动/?停止?输入?和?红/?绿灯?输出,?并?具有?相应?的?调?试?记录,?从而?跟踪?之前?的?系统?和?测试?错误?活动。
您?可以?使用?在?过程?模型?级别?定义?的?ProcessModelPostStepFailure?和?ProcessModelPostStepRuntimeError?引擎?回?调,?对?所有?客户?端?序列?文件?中的?错误?进行?常规?处理,?而无?需?测试?序列?程序?员?额外?处理。?如果?客户?端?序列?文件?中?发生?错误,?则会?执行?这些?回?调。
自?定义?过程?模型
在?许多?情况?下,?您?可能?需要?扩展?或?修改?TestStand?随?附?的?过程?模型?的?功能。 过程?模型?的?常见?更改?包括?报表?修改、?测试?重?试?策略、?错误?处理?和?记录、?测试?站?校准?例?程?以及?待?测?设备?选择?机制。
使用?过程?模型?插?件?添加?新?功能
默认?过程?模型?使用?插?件?来?实现?结果?处理?功能,?包括?报表?生成?和?数据?库?记录。 但是,?插?件?不仅?限于?结果?处理。 如果?您?需要?向?过程?模型?添加?功能,?可以?创建?插?件?来?实现?此?功能,?而无?需?修改?过程?模型?本身。 这种?方法?有?很多?优势:
- 用户?可以?轻松?地?将?插?件?与?顺序?模型、?批量?模型?和?并行?模型?集成,?而?不用?对?每?个?模型?进行?更改。
- 用户?不需要?维护?和?部署?自?定义?过程?模型。
- 用户?可以?将?过程?模型?的?自?定义?功能?与?未来?更改?进行?集成。
- 无?需?整合?过程?模型?代码?更改?即可?共享?插?件。
默认?情况?下,?用户?必须?为?模型?创建?插?件?实例?才能?执行。 如果?只需?在?某些?情况?下?使用?要?添加?的?新?功能,?这种?可?选?方法?十分?适用。 如果?应?始终?执行?该?功能?(与?过程?模型?本身?的?代码?类似),?则?可以?使用?过程?模型?插?件?附加?软件。 模型?插?件?附加?软件?的?实现?方式?与?标准?插?件?相同,?但?保存?在?插?件?目录?的?附加?软件?子?文件?夹?中。 它们?不会?出现?在?插?件?配置?对话?框?中,?但?会?始终?执行。
创建?新?插件
除了?自?定义?结果?处理?之外,?用户?还?可以?开发?自?定义?插?件,?通过?多种?方式?扩展?模型。 测试?站?校准?是?可以?通过?自?定义?插?件?添加?到?过程?模型?的?一个?功能?示例。 在?测试?站?上?执行?测试?序列?文件?之前,?您?可能?需要?确认?测试?站?校准?的?有效性。?这些?例?程?通常?要?根据?到期?日期?检查?测试?设备?是否?已?校准。?校准?到期?会?触发?错误?情况,?警告?操作?员,?并?阻止?测试?执行。
通过?在?自?定义?模型?插?件?中?实现?功能,?用户?可以?在?必要?时?禁用?校准,?并?通过?结果?处理?对话?框?为?测试?开发?人员?提供?配置?界面。 有关?实现?的?信息,?请?参见创建?过程?模型?插件主题。
NI TestStand?报表?生成?和?自?定义?最佳?实践》?文?档。 针对?如何?在?TestStand?模型?架构?中?实现?自?定义?以?生成?报表,?本文?档?提供?了?更多?相关?信息。修改?过程?模型?数据?结构
默认?过程?模型?会?定义?数据?类型,?从而?存储?有关?当前?待?测?设备、?测试?站?和?模型?选项?的?信息。 在?某些?情况?下,?您?可能?需要?在?这些?属性?中?存储?其他?数据,?最?常见?的是?待?测?设备?数据。 例如,?默认?的?TestStand?待?测?设备?选择?机制?仅可?跟踪?序列?号,?但?您?可能?还?需要?维护?设备?型号。
NI?建议?尽量?不要?更改?模型?数据?类型,?因为?许多?TestStand?文件?中?都?引用?了?这些?数据,?并且?维护?更新?信息?并非?易?事。 但是,?过程?模型?在?待?测?设备?和?NI_StationInfo?数据?类型?中?提供?了?非?结构?化?的?属性,?用户?可以?轻松?添加?其他?待?测?设备?跟踪?信息,?而无?需?修改?待?测?设备?数据?类型。?您?可以?在?UUT.AdditionalData?容器?中?创建?一个?新的?ModelNumber?属性?来?存储?此类?信息。 TestStand?附带的向?报表?添加?自?定义?数据示例?展示?了?此?属性?的?用途:?将?字?段?添加?到此?属性,?并?将?其?添加?到?测试?报表?中。 该?示例?使用?回?调?在?客户?端?序列?文件?中?实现?更新,?但?用户?也可以?在?过程?模型?中?直接?使用?相同?的?方法。
定义?特定?测试?站?的?自?定义?行为
用户?还?可以在
将?自?定义?过程?模型?升级?为?更高?版本?的?TestStand
在?升级?到?较?新?版本?的?TestStand?时,?需要?合并?以下?两?项?更改:?对?默认?过程?模型?所?做的?任何?更改,?以及?NI?在?新?版本?中?所?做的?更改。 为此,?请?首先?打开?序列?编辑?器?中“编辑”(Edit) ?“比较?序列?文件”(Diff Sequence File Against),?使用?TestStand?差异?工具?查看?旧版?与?新版?默认?过程?模型?之间?的?差异。?如果?所有?修改?都?集中?在?过程?模型?文件?的?新?序列?中,?或者?单独?在?插?件?中?实现,?那么?用户?便可?轻松?地?将?过程?模型?自?定义?项?导入?到?新版?过程?模型。
如果?要?迁移?通过?2012?年?之前?的?TestStand?版本?创建?的?模型,?则?需要?对?新?模型?进行?大幅?更改,?才能?实现?插?件?架构。 请?参阅将?过程?模型?自?定义?项?迁移?到?TestStand 2012?或?更高?版本,?详细?了解?如何?在?这种?情况?下?迁移?过程?模型。
本文转自:https://www.ni.com/content/ni/locales/zh-cn/support/documentation/supplemental/08/teststand-process-model-development-and-customization.html