4.2 步骤内置属性
对于每种步骤类型,可以在步骤设置窗格中设置它的实例。步骤设置窗格会包含通用设置页面(对所有步骤类型而言都是一样的),也包含针对特定步骤类型的页面(因步骤类型而异),这其实是由于每种步骤类型都包含内置属性和自定义属性。内置属性对于所有步骤类型都是存在的,虽然它们的默认值可能不一样;自定义属性则因步骤类型而异。在步骤设置窗格的属性配置页(Properties Tab)中可以设置内置属性。内置属性有很多,主要是设置步骤的一些基本信息,如步骤名称、描述、运行选项等,在属性配置页中形成一个列表,单击列表控件中的每个项目,相应的右侧会显示它的面板,如图4-6所示为“General”面板。接下来就以Statement声明步骤类型为例介绍这些内置属性,后续介绍其他步骤类型时,就不再重复介绍这部分设置了。
1.通用面板(General Panel)
通用面板如图4-6所示,它包含步骤名称、步骤类型、图标、描述、评论,这些信息有些会显示在步骤列表窗格中。
图4-6 属性配置页
名称(Name):设置步骤的名称。也可以在步骤列表窗格中通过右击选中某一步骤,然后在弹出的快捷菜单中选择“Rename”。在步骤列表窗格中选中步骤后,再次单击该步骤,同样可以对它重命名。
类型(Type):显示当前步骤类型,一般不用设置,比如添加了声明步骤,那么它的类型就自动是Statement。
适配器(Adapter):有些步骤类型会调用代码模块,适配器类型有很多种,对于不需要调用代码模块的步骤类型(如声明),其值为“None”,默认不用设置。
图标(Icon):每种步骤类型都有其独特的图标,图标会出现在步骤列表窗格中,也可以收集一些图标并添加到<TestStand Public>\Components\Icons\目录下。
描述(Description):对于每个步骤,它的描述信息会出现在步骤列表窗格中,描述信息是根据对步骤的设置自动生成的,不能手动输入。
评论(Comment):添加一些描述性的信息,用来说明这个步骤的用途和目的,可以在这里做备注,这些内容同样会出现在步骤列表窗格中,利于后期维护。
2.运行选项面板(Run Options Panel)
运行选项面板(如图4-7所示)中包含代码模块加载和卸载方式设置、运行模式、交互式执行步骤、结果收集,以及对测试失败和遇到错误时的处理方式。
图4-7 运行选项面板
加载选项(Load Option):声明何时将代码模块加载至内存中。一共有三种模式,从字面上比较好理解:“Preload when opening sequence file”是指在打开序列文件时就开始加载代码模块;“Preload when execution begins”是指在序列开始执行时才加载代码模块,这也是默认的设置;“Load dynamically”是指在执行到该步骤时才加载它的代码模块,这种模式可以减少内存开销,但是会影响序列执行的速度。
提示:若要了解某个选项如何设置、设置项的具体含义等,可以随时通过“F1”键调出TestStand帮助文档,帮助文档会自动定位到当前选项所对应的帮助内容信息,也可以通过单击工具栏图标调出帮助。
卸载选项(Unload Option):和加载选项相对应,卸载选项决定代码模块何时从内存中移除。代码模块卸载后可以节省内存空间,并释放被占用的文件,这样其他应用程序得以访问和编辑该文件。“Unload when sequence file is unloaded”是默认选项,即在序列文件关闭时才卸载代码模块。
运行模式(Run Mode):一共有四种运行模式,分别是Normal、Skip、Force to Pass、Force to Fail,这对于调试很有帮助。第6章中会有详细介绍。
在交互模式下先决条件的评估(Precondition Evaluation in Interactive Mode):声明在交互模式下执行步骤时,先决条件是否起作用。第6章中同样会有详细介绍。
TestStand窗口激活(TestStand Window Activation):执行完步骤时,是否让操作系统聚焦到TestStand窗口。这个功能有些时候可能会有用,比如代码模块弹出对话框界面,之后需要重新回到TestStand。
结果记录选项(Result Recording Option):决定TestStand是否收集该步骤的结果。
步骤失败导致整个序列失败(Step Failure Cause Sequence Failure):默认是选中的,只要有一个步骤测试失败则整个序列的状态是失败,对于某些不是很重要的步骤,建议不选中它。
忽略运行时错误(Ignore Run-Time Errors):选中此选项后,若当前步骤或其调用的代码模块在执行过程中出现错误,则TestStand自动忽略这些错误,将导致TestStand不再启动错误处理机制。
3.循环面板(Looping Panel)
循环面板(如图4-8所示)中可设置单个步骤的循环模式。比如,让当前步骤执行固定次数,或者反复执行该步骤数次直到状态为Pass或Fail才结束。循环方式有以下四种。
无(None):步骤不工作在循环模式,这是默认设置。
循环固定次数(Fixed Number of loops):当前步骤循环固定的次数。步骤的最终状态由合格状态次数与总循环次数的比值决定。
合格/失败次数(Pass/Fail count):TestStand一直循环执行该步骤,直到它的合格或失败次数达到设定值,或者步骤的执行次数已经提前达到设定的上限。TestStand根据合格或失败的次数、循环次数是否达到执行次数上限来决定步骤的最终状态。
自定义(Custom):自定义循环方式,这种方式最灵活,循环初始值、循环变量递增步长都可以任意设置。
图4-8 循环面板
只要采用循环模式,就需要设置循环条件,这里以循环固定次数为例。在图4-8中,设定循环次数为“10”,如果测试合格的次数与总的循环次数的比值小于50%,则步骤最终状态为失败。设置完成后,“Loop Initialization Expression”、“Loop Increment Expression”、“Loop While Expression”、“Loop Status Expression”这些表达式就自动生成了。这里用伪码表示一下:
如果循环模式换成合格/失败次数,类似的循环表达式会自动生成。对于自定义模式,它更灵活,循环步长、初始化条件都可以任意设置。无论哪种方式,步骤的执行都遵循下面的逻辑:
循环模式在某些场合是非常实用的。比如要求某个测试项重复N次测试通过后才算合格,或者某个测试项失败了,但有可能是由于外界干扰存在,在设定的固定次数里只要有一次测试通过就算合格,避免误测。使用循环模式可很好地满足上述需求。但是请合理使用循环设置,一方面由于循环设置对于最终操作人员是不可见的,他们可能会觉得很奇怪为什么某些步骤有时会执行很长时间,其实是因为它执行了多次;另一方面在属性配置页面中设置相对而言比较隐蔽,有可能影响后期维护。如果没有特殊要求,建议使用流程控制步骤来实现循环会更直观。
4.后动作面板(Post Actions Panel)
后动作指的是当前步骤执行结束后,TestStand根据步骤的执行状态决定接下来进行什么动作。后动作的很多选项可以通过流程控制步骤来实现,因此不建议在后动作面板(如图4-9所示)中过多设置。
图4-9 后动作面板
跳转到下一步骤(Goto next step):按顺序执行序列中接下来的步骤,这是默认的后动作。
跳转到特定步骤(Goto step):将当前执行指针移动到某个特定的步骤,这相当于程序执行过程中的跳转。过多使用它会导致测试程序很难调试和维护,应该采用流程控制步骤来实现。
终止执行(Terminate execution):直接终止序列的执行,测试结束。
调用序列(Call sequence):调用同一序列文件中的其他序列。通过这种方式调用序列,不能给序列传递参数,所以推荐的方式还是用“Sequence Call”步骤类型。
中断(Break):暂停序列执行,这样可以使用序列编辑器中的调试工具。
5.表达式面板(Expression Panel)
在表达式面板(如图4-10所示)中,可以输入表达式。表达式可以是赋值语句、比较语句、命令执行语句。
图4-10 表达式面板
前处理表达式(Pre-Expression):前处理表达式在步骤执行之前完成,可用于修改变量的值。
后处理表达式(Post-Expression):后处理表达式在步骤执行后完成,可用于修改变量的值。
状态表达式(Status Expression):状态表达式决定TestStand最终如何计算步骤状态,它的数据类型是字符串。有些步骤类型,如Numeric Limit Test,其状态表达式由系统自动生成,不可输入。
6.先决条件面板(Preconditions Panel)
如图4-11所示,如果在“Precondition Expression”框中输入表达式,相当于声明了一个附加条件,只有当条件满足时步骤才会被执行。在“Precondition Expression”框中,有一个“Precondition Builder”工具,借助它可以快速创建一个复合先决条件,先决条件中可能会利用其他步骤的属性。
图4-11 先决条件面板
7.属性配置页其他设置
开关面板(Switching Panel):在测试系统中涉及仪器复用时,经常会用到开关。在开关面板中可以设定在步骤执行前后是否需要进行开关切换动作。该设置只有在安装了NI Switch Executive软件后才能使用。
同步面板(Synchronization Panel):TestStand自带多线程过程模型用于并行测试,同步面板中有一些设置会影响步骤的执行方式。这部分内容会在第8章详细介绍。
需求面板(Requirements Panel):需求面板将当前步骤和需求文档中的某个ID关联起来。只有安装了Requirements Management软件时才有用。
额外结果面板(Additional Results Panel):TestStand每执行完一个步骤都会产生很多结果,它将结果放到一个特定的地方——结果列表,只有结果列表中的数据才可能最终出现在报表或记录到数据库中。如果希望某些变量同样出现在报表中,可以使用额外结果面板先将它添加到结果列表中。
属性浏览器面板(Property Browser Panel):每个步骤都有很多属性,使用属性浏览器可以查看该步骤的所有属性。
至此,内置属性全部介绍完了。值得一提的是,某些面板中的设置信息会出现在步骤列表窗格中,如运行选项面板、循环面板,这方便开发人员了解当前步骤有哪些额外设置,如图4-12所示。不光是属性配置面,针对特定步骤类型的页面,它们的设置信息有些也同样会出现在步骤列表窗格中。
图4-12 在步骤列表窗格中显示设置信息