zoukankan      html  css  js  c++  java
  • TestStand​ 报告​生成​和​自​定义【5】

    概览

    自动​化​测试​系统​的​一个​常见​要求​是​生成​一份​完整​的​报表,​其中​包含​所有​结果​信息,​可​解答​以下​问题:“什么​是​序列​测试?”和“每​个​待​测​设备​(UUT)​的​测试​结果​是​什么?”。

    本文​档​提供​有关​TestStand​报表​的​信息,​包括​配置​不同​的​报表​格式,​在​报表​中​添加​其他​数据,​以及​自​定义​报表。

    内容

    • TestStand​如何​生成​报表
    • 自​定义​TestStand​报表
    • 结论​

    TestStand​如何​生成​报表

    在​了解​TestStand​报表​自​定义​提供​的​选项​之前,​请​务必​先​了解​TestStand​报表​的​生成​方式。

    TestStand​使用​两​步​方法​来​生成​测试​报表:

    1. 结果​收集:在​执行​测试​的​同时,​TestStand​会​收集​测试​执行​期间​的​结果​数据。​这些​整合​结果​可​用于​所有​结果​处理​操作,​包括​报表​生成​和​数据​库​记录。
    2. 报表​生成:TestStand​报表​生成​器​使用​结果​收集​过程​中​所​收集​的​数据​来​生成​报表​文件。

    下​图​为此​过程​的​示意​图:

    TestStand​在​ResultList​变量​中​收集​测试​结果,​报表​生成​器​使用​该​变量​创建​可读​的​测试​报表


    ​结果​收集

    TestStand​执行​序列​时,​会​收集​步骤​结果​和​其他​信息,​以​在​报表​中​体现。​结果​收集​直接​由​TestStand​引擎​实现,​并且​独立​于​结果​处理​(如​报表​生成​或​数据​库​记录)​进行。


    ​Locals.ResultList​属性

    序列​使用​所有​新​序列​中​自动​创建的Locals.ResultList来​存储​结果​数据。​TestStand​在​序列​执行​期间​填充​ResultList,​并​将​其​存储​在​内存​(RAM)​中。

    ResultList​局部​变量​最初​是​一个​空​的​容器​数​组。​执行​完​每​个​步骤​后,​TestStand​会​在​数​组​末尾​附加​一个​新的​容器​元素,​用​来​存储​已​执行​步骤​的​结果,​并​使用​以下​两​个​数据​源​来​填充​数据:

    • 自​定义​结果​属性:从​已​执行​步骤​的​Step.Result​容器​中​获取。
    • 标准​结果​属性:从​TestStand​引擎​中​获取。


    ​自​定义​结果​属性

    ResultList​中的​某些​数据​是​从​步骤​属性​中​获取​的。 默认​状态​下,​结果​收集​中​仅​包含​步骤​属性“结果​(Result)”容器​中的​属性。​例如,​步骤​结果​容器​中的​两​个​重要​元素​是:

    • Result.Status:一个​字符​串​元素,​表示​该​步骤​的​测试​结果。
    • Result.Error:一种​容器,​用于​存储​该​步骤​的​错误​信息。

    步骤​属性​会​因​步骤​类型​而​异,​并且​许多​步骤​属性​仅​针对​特定​步骤​类型​存在。​例如,Step.Result.Numeric属性​特定​于“数值​限度​测试​(Numeric Limit Test)”步骤​类型。


    ​标准​结果​属性

    除了​将​步骤​属性​复制​到​ResultList​之外,​TestStand​还​会​向​每​个​步骤​添加​一组标准​结果​属性。​TestStand​引擎​将​这些​结果​作为Step.Result.TS属性​的​子​属性​添加。 这些​属性​包括​该​步骤​的​识别​信息,​如​步骤​名称、​类型​和​定​时​信息。

    下​图​显示​了​如何​使用​步骤​结果​属性​和​标准​结果​属性​来​填充​ResultList。

    结果​数据​基于​以下​两​方面​生成:​取决​于​步骤​类型​的​自​定义​结果​属性;​所有​步骤​都​相同​的​标准​结果​属性

    配置​结果​收集

    在​结果​收集​中​添加​其他​属性

    您​可以​使用Execution.AddExtraResult方法​向​ResultList​中​添加​某些​步骤​属性。​利用​此​方法,​您​可以​指定​属性​查找​字符​串​(如“Step.myStepData”),​并​将​该​属性​纳入​具有​该​属性​的​所有​执行​步骤​的​结果​列表​中。 此外,​也可以​在​ResultList​中​指定​用于​该​属性​的​名称。

    例如,​过程​模型​调​用​Execution.AddExtraResult​方法,​以便​在​ResultList​中​添加Step.Limits和Step.Comp值。​由于​这些​属性​不在​Step.Result​容器​中,​默认​状态​下​不会​收集​此类​属性。​由于​此​调​用​操作,​这些​属性​将​被​添加​到​执行​中​包含​这些​属性​的​所有​步骤​的​ResultList​中。

    使用​AddExtraResult​向​结果​列表​中​添加​其他​步骤​属性

    有关​其他​报表​属性​的​更多​信息,​请​参阅​TestStand​帮助​中的自​定义​结果​属性主题。


    ​配置​结果​收集​时间

    TestStand​结果​收集​与​是否​生成​报表​或​数据​库​记录​无关。 在​某些​情况​下,​如果​不需要​记录​结果,​则​可能​要​对​某些​步骤​或​序列​禁用​结果​收集。 以下​设置​可​用于​控制​记录​哪些​结果:

    • 禁用​所有​序列​的​结果​记录​(Disable result recording for all sequences):位于​测试​站​选项​的“执行​(Execution)”选项​卡​中,​此​设置​将​完全​禁用​所有​结果​收集。 如果​您​未​使用​TestStand​结果​处理​功能​记录​任何​数据,​请​使用​此​设置。
    • 禁用​所有​步骤​的​结果​记录​(Disable result recording for all steps):位于“序列​属性​(Sequence Properties)”中,​此​设置​将​禁用​特定​序列​的​结果​记录。
    • 步骤​结果​记录​选项​(Step Result Recording Option):位于“步骤​(Step)”属性​窗​格​的“运行​选项​(Run Options)”中,​您​可以​使用​此​选项​来​禁用​特定​步骤​的​结果​记录。 默认​状态​下,​上述“序列​(Sequence)”设置​将​覆盖​此​设置。​但是,​您​可以​选择启用​(覆盖​序列​设置)​(Enabled (Override Sequence Setting))来​记录​已​禁用​结果​记录​的​序列​中​某​个​步骤​的​结果。

    如果​顾虑​测试​系统​性能​或​系统​内存​使用​情况,​请​考虑​对​频繁​执行​的​步骤​禁用​结果​记录,​以​防止​不必要​的​结果​存储。

    报表​生成

    与​作为​TestStand​引擎​一部分​的​结果​收集​过程​不同,​报表​生成​器​由​TestStand​过程​模型​通过​报表​生成​插​件​来​实现。​有关​实施​报表​生成​器​的​详细​信息,​请​参阅《报表​生成​说明》一文。

    报表​生成​器​使用​结果​收集​过程​生成​的​ResultList​变量​中的​结果​数据​(有关​更多​信息,​请​参阅​本文​档​的“结果​收集”一节)​来​生成​报表。 本​节​概述​了​TestStand​中的​默认​报表​生成​器。


    ​标记​要​添加​到​报表​中的​数据

    报表​生成​器​使用​ResultList​中​收集​的​结果​属性​的​属性​标志,​来​确定​这些​属性​是否​应​添加​到​报表​中。​利用​属性​标志,​可​配置​PropertyObjects​的​行为,​包括​如何​将​其​添加​到​测试​报表​中。

    可以​通过​以下​两​种​方式​之一​来​查看​和​配置​PropertyObject​的​标志:

    1. 使用​序列​编辑​器:右​键​单击​一个​属性,​然后​选择高级​(Advanced) » 编辑​标志​(Edit Flags),​查看“编辑​标志​(Edit Flags)”对话​框。 “新​标志​(New Flags)”字​段​会​显示​当前​所有​选定​标志​的​总和。


    ​使用“编辑​标志​(Edit Flags)”对话​框​来​配置​PropertyObject​标志

    1. 使用​TestStand API:PropertyObject.GetFlags​和​PropertyObject.SetFlags​方法​可​分别​用于​获取​标志​状态​和​设置​标志​状态。

    每​个​标志​都有​一个​唯一​值,​并且​属性​当前​的​标志​状态​是​所有​标志​值​的​总和。 例如,​启用PropFlags_IsLimit(值:​0x1000)​标志和PropFlags_IncludeInReport(值:​0x2000)​标志​的​属性,​标志​值​为​0x3000。​有关​每​个​标志​的​其他​信息,​请​参阅PropertyFlags​常量帮助​主题。

    报表​生成​器​使用​以下​标志​来​确定​是否​应​将​收集​的​结果​添加​到​报表​中。 有关​更多​信息,​请​参阅影响​报表​的​属性​标志

    • PropFlags_IncludeInReport标志​表示​报表​中​始终​包含​该​属性。
    • PropFlags_IsLimit标志或PropFlags_IsMeasurementValue标志​表示​应​基于​当前​的​报表​选项​添加​数据。


    ​TestStand​报表​格式

    TestStand​提供​了​许多​报表​格式,​每​种​格式​都​各有​优​缺点。 报表​生成​器​调​用​特定​于​格式​的​序列​文件​来​生成​报表​文本​(例如​ReportGen_ATML.seq)。​下表​显示​了​有关​每​种​报表​格式​的​更多​信息。

    报表​格式可读性文件​大小性能解析1自​定义
    ASCII (.txt)
    基本​文本​报表​格式
    基本 很小 最快 中等 - 需要​自​定义​解析​器,​但​格式​信息​受限
    HTML (.html)
    富​文本​报表​格式
    富​文本 中等
    XML (.xml)
    使用​XSL​样式​表​生成​富​文本​的​纯​数据​文件​格式
    富​文本 简单 - 使用​标准​XML​架构,​可​使用​XML API​轻松​解析 中等 - 使用​样式​表​自​定义​格式,​不​改变​过程​模型
    ATML (.xml) - 自动​测试​标记​语言 富​文本 中等 快速 简单 - 使用​标准​XML​架构,​可​使用​XML API​轻松​解析 中等 - 使用​样式​表​自​定义​格式,​不​改变​过程​模型

    1您​可以​使用​报表​文件​进行​自动​报表​分析,​尤其是​XML​和​ATML​报表​文件,​但​使用​数据​库​进行​自动​分析​通常​会​更加​有效。 请​参阅数据​库​记录帮助​主题,​详细​了解​数据​库​记录​的​TestStand​功能。


    ​有关​为​您​的​应用​选择​最佳​报表​生成​策略​的​更多​详细​信息,​请​参阅《选择​适当的​NI TestStand​报表​生成​策略》


    ​即时​生成​报表

    如果​在“报表​选项​(Report Options)”对话​框​的“目录​(Contents)”选项​卡​上​启用“即时​报表​生成​(On-​The-​Fly Reporting)”选项,​过程​模型​将​在​执行​的​同时​逐步​生成​报表,​而​不必​等到​UUT​测试​完成。​使用​即时​报表​生成​时,​可以​单击“执行​(Execution)”窗口​中的“报表​(Report)”窗​格,​在​执行​过程​中​查看​报表。​由于​报表​在​测试​执行​时​更新,​因此​报表​视图​会​在​执行​测试​序列​时​定期​更新,​显示​新​结果。

    通常,​对于​历时​较​久​的​测试,​如果​内存​使用​和​数据​丢失​防护​的​重要​程度​高于​测试​吞吐量,​即时​报表​生成​则​是​更好​的​选择。  

    优点缺点
    • 可在​运行​测试​时​查看​测试​结果
    • 如果​在​测试​过程​中​意外​关闭,​报表​文件​不会​丢失
    • 长​时间​运行​测试​时​不会​导致​内存​增加1
    • 在​某些​情况​下,​由于​测试​期间​产生​报表​生成​开销,​可能​会​降低​测试​性能2
    • 报表​生成​器​的​自​定义​难度​较大


    1要​防止​内存​增加,​需要​采用​其他​配置。​请​参阅《解决​TestStand​中​报表​生成​的​内存​问题》,​详细​了解​如何​在​报表​生成​过程​中​防止​内存​增加。

    2此​问题​在​TestStand 2012​及​更高​版本​中​已​得到​改善,​这些​版本​提供​了​相关​设置​功能,​可​配置​即时​报表​生成​器​重新​生成​报表​的​频率。 有关​这些​设置​的​更多​信息,​请​参阅高级​结果​处理​设置​对话框帮助​主题。 默认​状态​下,​TestStand 2012​及​更高​版本​会​在​收集​了​500​个​步骤​结果​之后​或​每​执行​1.5​秒​之后​(以​先到​者​为​准)​生成​并​保留​即时​报表。 在​TestStand 2010 SP1​和​之前​的​版本​中,​报表​会​在​每​个​步骤​之后​重新​生成。


    ​异步​报表​生成

    在​TestStand 2012​及​更高​版本​中,​报表​生成​器​(和​其他​结果​处理​插​件)​可以​异步​执行,​提高​测试​吞吐量。 要​配置​此​选项,​请​选择配置​(Configure) » 结果​处理​(Result Processing),​然后​选中显示​更多​选项​(Show More Options)复​选​框。 新​线程列​表示​每​个​插​件​的​当前​设置。

    使用​此​功能​时,​执行​程序​可以​立即​开始​测试​下​一个​UUT,​同时​为​当前​的​UUT​生成​报表,​如下​图​所​示。

    注意:即时​生成​报表​时,​异步​报表​生成​则​不可​用。

    异步​结果​处理​可​提高​测试​吞吐量​的​速度,​因为​下​个​设备​的​测试​可以​立即​开始

    自​定义​TestStand​报表

    TestStand​报表​生成​过程​的​自​定义​程度​很高,​您​可以​根据​TestStand​应用​程序​的​需求​定制​生成​的​报表。 自​定义​报表​时,​请​使用​以下​方法:

    • 配置​报表​选项,​在​不​更改​代码​的​情况​下​进行​自​定义。
    • 使用​内​置​的​TestStand​功能,​将​其他​数据​记录​到​报表​中。
    • 修改​样式​表​和/​或​覆盖​报表​生成​回​调,​对​报表​外观​进行​更​重要​的​更改。

    使用“报表​选项​(Report Options)”对话框

    借助​通过“报表​选项​(Report Options)”对话​框​访问​的​报表​生成​选项,​可以​在​不​更改​代码​的​情况​下​自​定义​TestStand​报表。​要​访问​TestStand 2012​及​更高​版本​中的​对话​框,​请​导航到配置​(Configure) » 结果​处理​(Result Processing)以​启动“报表​选项​(Report Options)”对话​框,​然后​选择​报表​生成​插​件​的​设置​图​标。 在​TestStand 2010 SP1​及​之前​的​版本​中,​请​选择配置​(Configure) » 报表​选项​(Report Options)。

    您​可以​通过​以下​方式​使用​报表​选项​对话​框​来​配置​报表:

    • 更改​报表​的​格式
    • 筛选​报表​以​添加​特定​类型​的​步骤​结果
    • 配置​报表​的​外观
    • 启用​即时​报表​生成


    以下​各节​详细​介绍​了​每​种​配置​类型。

    “报表​选项​(Report Options)”对话​框 –“目录​(Content)”选项卡


    报表​格式

    利用“报表​选项​(Report Options)”对话​框,​可​选择​报表​的​格式。 有关​可用​报表​格式​的​更多​信息,​请​参阅​本文档报表​生成​部分的“报表​格式”一节。 某些​报表​选项​仅​适用​于​特定​的​报表​格式。


    ASCII​和​HTML​特定​报表​选项

    ASCII​和​HTML​报表​可以​通过​以下​两​种​方式​之一​生成:

    • 使用​序列​(Using sequences):报表由ReportGen_txt.seq或ReportGen_html.seq序列​文件​中的​序列​生成。​利用​此​方法,​您​可以​通过​修改​或​覆盖​报表​生成​序列,​更​轻松​地​自​定义​报表​生成​器,​但​执行​速度​较​慢。​如果​您​计划​自​定义​报表​生成​器,​则​建议​使用​此​选项。
    • 使用​DLL (Using a DLL):报表​使用modelsupport2.dll生成,​性能​更​快,​但​自​定义​更​困难。 如果​您​计划​使用​需要​很少​或​不需要​自​定义​的​默认​报表​生成​器,​则​建议​使用​此​选项。
    XML​和​ATML​特定​报表​选项

    与​HTML​报表​不同,​XML​和​ATML​报表​不​包含​任何​格式​信息。​为了​在​可读​报表​中​呈现​XML​格式​的​原始​数据,​需要​使用​XSL​样式​表。 该​样式​表​定义​了​报表​的​样式,​并从​XML​文件​中​提取​数据。 使用​样式​表,​您​可以​更改​报表​的​外观,​而无​需​对​XML​数据​文件​进行​任何​修改。​例如,​下​图​显示​了​使用​TestStand​提供​的​两​个​不同​样式​表​的​同一​XML​报表​示例。

    TestStand​提供​了​多种​样式​表,​可​用于​以​不同​方式​显示​XML​和​ATML​报表​数据,​您​可以​在“报表​选项​(Report Options)”对话​框​中​具体​指定。​您​还​可以​创建​自​定义​样式​表​以​配合​使用​TestStand​报表。 有关​样式​表​自​定义​的​更多​信息​和​示例,​请​参阅《自​定义​TestStand XML​和​ATML​报表​的​格式​和​外观》一文。


    使用​水平​样式​表​的“ATML​报表”部分
     

    使用​报表​样式​表​的“ATML​报表”部分


    筛选​结果

    您​可以​选择​在“报表​选项​(Report Options)”对话​框​中​筛选​特定​步骤​结果​类型​的​信息,​例如:

    • 测试​限度值
    • 测试​测量值
    • 代码​模​块​执行​次数

    此外,​您​还​可以​使用​结果​筛选​表达​式​来​创建​自​定义​筛选​条件。​TestStand​会​针对​每​个​步骤​结果​对​该​表达​式​进行​求值,​如果​表达​式​求值​为​True,​会​在​报表​中​添加​该​步骤。​使用“结果​筛选​(Result Filtering)”下​拉​列表​输入​控​件​选择​常用​表达​式,​如​排除​流​控制​步骤​(如下​图​所​示)。

    注意:如果​使用​XML​格式,​或者​结合​使用​ATML​格式​与​TestStand 2010 SP1​或​更​早​版本,​则​结果​筛选​表达​式​不可​用。 在​这些​情况​下,​您​可以​通过​修改​报表​样式​表​来​筛选​结果。

    更改​报表​外观

    报表​选项​对话​框​提供​相关​设置,​用于​自​定义​报表​外观,​包括:

    • 报表​颜色​(Report Colors):您​可以​更改​各种​属性​相关​的​颜色​(不适​用于​ASCII​报表)。
    • 默认​数值​格式​(Default Numeric Format):配置​数值​数据​如何​在​报表​中​显示。
    • 数​组​数据​格式​(Array Data Format):选择​是在​报表​中​以​表格、​图表​形式​添加​数​组,​还是​将​其​完全​省略。

    注意:TestStand​报表​使用​ActiveX​控​件​将​数​组​数据​生成​图表。 如果​在​查看​报表​时​此​控​件​不可​用,​数据​仍​将​以​表格​形式​显示。


    配置​报表​文件​路径名

    在“报表​选项​(Report Options)”对话​框的报表​文件​路径​名​(Report File Pathname)选项​卡​上,​您​可以​配置​报表​文件​的​名称​及其​存储​路径。 使用“文件/​目录​(File/​Directory)”选项​来​选择​存储​报表​的​位置,​然后​根据​您​选择​的​选项​使用“UUT​报表​(UUT Report)”字​段​来​预​览​报表​文件​名。

    通过​选择“文件/​目录​选项​(File/​Directory Options)”控​件​中的按​表达​式​指定​报表​文件​路径​(Specify Report File Path by Expression)选项,​进一步​控制​报表​文件​的​名称​和​路径。 可以​使用​此​设置​来​创建​一个​表达​式,​TestStand​会对​表达​式​进行​求值,​从而​确定​报表​的​存储​位置。​此​表达​式​可以​包括​预​定义​宏,​可在“报表​文件​路径​(Report File Path)”控​件​的“菜单​(Menu)”中​访问。

    注意:在​配置​报表​表达​式​时,​请​使用“已​评估​报表​文件​路径​(Evaluated Report File Path)”字​段​和​预​览​图像​来​查看​当前​表达​式​的​行为。

    根据​UUT​结果​对​报表​文件​进行​排序

    您​可以​使用​报表​文件​路径​表达​式​中的UUTStatus宏,​为​成功​报表​和​失败​报表​创建​单独​的​文件​位置。 例如,​您​可以​在​自己​的​文件​路径​中​使用​此​宏,​为​成功​报表​和​失败​报表​创建​不同​的​位置。​当​使用​此​宏​时,​TestStand​会​在​测试​执行​完成后,​重新​对​报表​文件​路径​表达​式​求值,​因为​在此​之前,​UUT​状态​是​未知​的。

    根据​UUT​结果​配置​其他​报表​文件​路径名

    对于​使用​批处理​模型​的​测试,​您​可以​进一步​配置​批处理​和​批处理​中​各个​UUT​的​报表​文件​路径​行为。 要​访问​这些​设置,​请在“模型​类型​(Type of Model)”字​段中​选择​批处理。 例如,​您​可以​使用​每​个​批处理​设置的新​UUT​报表​(New UUT Report)为​每​个​批处理​创建​单独​的​报表​文件。 有关​所有​可用​设置​的​更多​信息,​请​参阅“报表​选项​(Report Options)”对话框帮助​主题。

    有关​向​报表​添加​自​定义​数据​的​功能

    在​许多​情况​下,​除​TestStand​默认​记录​的​结果​之外,​测试​应用​程序​还​需要​您​在​报表​中​记录​其他​数据。​为了​满足​此​需求,​TestStand​提供​了​多种​内​置​功能,​可​轻松​将​自​定义​数据​记录​到​报表​中:

    • 参数​记录
    • 其他​结果
    • ReportText​属性
    • 配置​自​定义​步骤​类型​的​报表​数据

    以下​各节​详细​介绍​了​这些​功能。


    参数​记录

    配置​代码​模​块​参数​时,​选择模​块​(Module)选项​卡​中的记录​(Log)框,​可以​轻松​记录​测试​步骤​的​参数​数据,​如下所示。​启用​此​复​选​框​将​配置​选定​的​参数,​使​其​自动​显示​在“报表​(Reports)”或“数据​库​记录​(Database Logs)”中,​无​需​进一步​配置。


    代码​模​块 - 启用​记录​复​选框


    其他​结果


    您​可以​使用“步骤​设置​(Step Settings)”窗​格​中“属性​(Properties)”选项​卡​的“其他​结果​(Additional Results)”面板,​添加​任意​步骤​结果​的​其他​自​定义​数据。

    配置​其他​结果


    TestStand​提供​了​一些​预​配置​的​其他​结果​来​记录​通用​属性,​如​步骤​注释​和​需求​信息。 要​访问​这些​预​配置​的​结果,​请​选择从​列表​添加​结果​(Add Result From List)按钮,​然后​从​列表​中​选择​一个​项目。​您​还​可以​为​每​个​其他​结果​条目​指定​条件​表达​式。 仅​当​表达​式​求值​为​True​时,​才​会​记录​结果。


    有关​其他​结果​设置​的​更多​信息,​请​参阅​TestStand​帮助​中的“其他​结果​编辑​(Additional Results Edit)”选项卡主题。


    使用​Result.ReportText

    Result.ReportText是“结果​(Result)”容器​中的​附加​字符​串​元素,​用于​存储​步骤​的​自​定义​信息。​如果​字符​串​不为​空,​报表​生成​器​会​将​ReportText​字符​串​作为​字​段​添加​到​报表​中。​ReportText​字​段​支持​所有​报表​格式​(除​ASCII​以外)​的​HTML​标签,​因此​您​可以​使用​此​字​段​添加​富​文本​元素,​如​相关​的​图像​或​超​链​接。

    下​图​显示​了​在​ReportText​属性​中​使用​HTML​将​图像​嵌入​步骤​结果​中的​示例。

    在​Result.ReportText​中​显示​图像​的​报表


    向​报表​中​添加​自​定义​步骤​类型​属性

    使用​TestStand,​您​可以​创建​自己​的​自​定义​步骤​类型​以​实现​特定​功能。​在​这种​情况​下,​通常​需要​将​自​定义​步骤​类型​数据​记录​到​报表​中。

    注意:如果​您​不​熟悉​TestStand​中的​自​定义​步骤​类型,​请在​阅读​本​节​之前​参阅《自​定义​步骤​类型​开发​的​最佳​实践》一文,​以​获得​更多​信息。

    若要​创建​报表​中​即将​显示​的​自​定义​步骤​属性,​请​按照​下列​步骤​操作:

    1. 在“类型​(Types)”窗​格​中,​将​自​定义​属性​添加​到​该​步骤​的“结果​(Result)”容器​中。 执行​此​操作,​可​确保​通过​结果​收集​过程​向​ResultList​中​添加​该​属性。
    2. 启用​属性的IncludeInReport标志,​以便​报表​生成​器​将​数据​添加​到​报表​中:
    • 右​键​单击​该​属性,​然后​选择属性​(Properties)...
    • 单击“高级​(Advanced)”按钮,​然后​选择标志​(Flags)...
    • 选中IncludeInReport选项,​然后​单击​两​个​对话​框的确定​(OK)

    覆盖​报表​回调

    此​过程​模型​提供​了​许多​回​调,​您​可以​覆盖​这些​回​调​以​更改​特定​客户​端​序列​文件​的​模型​功能。 该​机制​对于​自​定义​报表​生成​器​也​很有​用。 本​节​介绍​了​以下​常见​的​自​定义​方法:

    • 以​编​程​方式​设置​报表​选项
    • 向​报表​中​添加​其他​UUT​和​测试​站​数据
    • 直接​自​定义​报表​生成器

    注意:如果​您​不​熟悉​过程​模型​回​调,​请在​继续​学习​本​节​之前​参阅使用​回​调​序列​修改​过程​模型帮助​主题。

    以​编​程​方式​设置​报表​选项

    除了​使用“报表​选项​(Report Options)”对话​框​外,​您​还​可以​通过​覆盖​测试​序列​中的ReportOptions回​调,​以​编​程​方式​设置​报表​选项。 要​覆盖​序列​文件​中的​回​调,​请​按照​下列​步骤​操作:

    1. 在​序列​窗​格​中​右​键​单击,​然后​选择序列​文件​回​调​(Sequence File Callbacks)...
    2. 选择​ReportOptions​回​调,​然后​单击添加​(Add)。
    3. 单击确定​(OK)关闭​对话​框。 请​注意,​新的​ReportOptions​序列​已​创建,​如下所示。



    执行​序列​时,​过程​模型​将​在​加​载​报表​选项​对话​框​中​设置​的​当前​报表​选项​后​立即​调​用​此​回​调​序列。 Parameters.ReportOptions变量​中​包含​了​当前​报表​选项。 您​可以​修改​这些​属性​的​值​以​更改​当前​执行​的​报表​选项。 这些​选项​不会​影响“报表​选项​(Report Options)”对话​框​中的​设置​或​任何​其他​执行​的​设置。​例如,​要​为​序列​文件​启用​即时​报表​生成,​您​可以​使用​以下​表达​式​创建​一个​声明​步骤:

    Parameters.ReportOptions.UseOnTheFlyReporting =True


    将​其他​UUT​和​测试​站​数据​记录​到​报表​页​眉​中​(TestStand 2013​及​更高​版本)

    测试​应用​程序​可能​需要​您​提供​有关​UUT​的​其他​识别​信息,​如​制造​商​所在地。 有关​UUT​和​测试​站​的​数据​由​过程​模型​存储​在​Parameters.UUT​和​Parameters.ModelData.StationInfo​变量​中。 您​创建​的​大​多数​模型​回​调​都会​将​这些​属性​作为​参数​包含​在内,​从而​允许​您​在​回​调​中​访问​此​数据。​在​TestStand 2013​及​更高​版本​中,​UUT​和​StationInfo​属性​包含​非​结构​化​容器​AdditionalData​子​属性。 您​可以​在​运行​时​向​此​属性​中​添加​数据,​而无​需​对​UUT​和​StationInfo​数据​类型​进行​任何​更改。

    要​使用AdditionalData容器​以​编​程​方式​向​页​眉​添加​自​定义​UUT​数据,​请​按照​下列​步骤​操作:

    1. 覆盖​客户​端​序列​文件​中的PreUUT​回调。 请​注意,​新的​回​调​序列​包含Parameters.UUT属性
    2. 添加​一个​声明​步骤,在Parameters.UUT.AdditionalData容器​中​动态​添加​属性。​例如,​此​表达​式​创建​两​个​字符​串​数据​子​属性:

    Parameters.UUT.AdditionalData.SetValString("Manufacturer.Name",​1,"National Instruments"),
    Parameters.UUT.AdditionalData.SetValString("Manufacturer.Location",​1,"Debrecen, Hungary"),

    注意:1​使用​SetValString​方法,​因为​PropertyOption​会​创建​一个​属性​(如果​该​属性​不存在)

    1. 添加​一个​声明​步骤,​为​AdditionalData​属性​设置​IncludeInReport​标志,​以便​将​所有​子​属性​添加​到​报表​中:

    Parameters.UUT.AdditionalData.SetFlags("",​0,PropFlags_IncludeInReport)


    以下​报表在AdditionalData容器​中​添加​了​自​定义​数据。 添加​自​定义​测试​站​数据​的​过程​类似,​但是​使用​的是Parameters.ModelData.StationInfo属性,​而不是Parameters.UUT。


    使用​UUT.AdditionalData​容器​向​报表​页​眉​添加​制造​商​信息


    注意:此外,​您​可以​在​编辑​时​手​动向​过程​模型​入口​点的Locals.UUT或Locals.ModelData.StationInfo容器​添加​数据​和​启用IncludeInReport标志,​为​所有​客户​端​序列​文件​添加​UUT​或​测试​站​数据。


    直接​自​定义​报表​生成​器​功能​(HTML​和​ASCII​格式)

    报表​生成​器​定义​了​许多​可以​在​客户​端​序列​文件​中​覆盖​的​回​调。​这些​回​调​中的​每​一个​都会​在​相应​的​报表​文本​生成​后​执行,​并且​您​可以​修改​报表​生成​器​的​默认​输出。 仅​当​上述​方法​均​不可​行​时,​才​应​使用​这些​回​调来​添加​自​定义​数据。

    仅​当​在“报表​选项​(Report Option)”对话​框​的“目录​(Contents)”选项​卡​上​启用“选择​用于​生成​报表​正文​的​报表​生成​器​(Select a Report Generator for Producing the Report Body)”选项​的“序列​(Sequence)”选项​时,​才​执行​这些​回​调。 此​选项​可​用于​HTML​和​ASCII​报表。  

    • ModifyReportHeader: 报表​生成​器​结果​处理​组​件​从​其​Post​序列​中​调​用​此​回​调,​对​其​进行​覆盖,​以​修改​报表​页​眉。 Parameters.ReportHeader​属性​包含​默认​的​报表​页​眉。
    • ModifyReportEntry: 报表​生成​器​结果​处理​组​件​从​其​Post​序列​中​为​ResultList​中的​每​个​结果​调​用​此​回​调,​对​其​进行​覆盖,​以​修改​为​每​个​结果​生成​的​报表​部分。​Parameters.ReportEntry​属性​包含​为​当前​ResultList​条目​生成​的​报表​数据。
    • ModifyReportFooter:报表​生成​器​结果​处理​组​件​从​其​Post​序列​中​调​用​此​回​调,​对​其​进行​覆盖,​以​修改​报表​页​脚。​Parameters.ReportFooter​属性​包含​默认​的​报表​页​眉。


    配置​报表​的​外观

    自​定义​报表​外观​的​方法​与​报表​格式​密切​相关。 对于​ASCII​和​HTML​报表,​外观​信息​和​报表​数据​紧密​结合。 因此,​更改​报表​的​外观​需要​直接​修改​报表​生成​器​代码,​这​需要​对​报表​生成​器​有​大概​的​了解,​本文​档​对​这​部分​内容​不做​介绍。 有关​实施​报表​生成​器​的​更多​信息,​请​参阅《报表​生成​说明》一文。

    如​本文​档“报表​选项”部分​所述,​XML​和​ATML​报表​使用​样式​表​通过​原始​报表​数据​生成​可读​报表。 您​可以​通过​编辑​样式​表​来自​定义​这些​报表​的​外观,​而无​需​修改​报表​生成​器​本身。 有关​样式​表​自​定义​的​更多​信息​和​示例,​请​参阅《自​定义​TestStand XML​和​ATML​报表​的​格式​和​外观》一文。

    结论​

    在​TestStand​中​自​定义​报表​是​一项​常见​的​任务,​TestStand​提供​了​许多​功能​来自​定义​报表​的​内容、​功能​和​样式。​请​参见​以下​流程​图,​帮助​您​确定​如何​实施​自​定义​报表。

     

    “选择​正确​的​技术​以​自​定义​报表”的​流程​图 “选择​正确​的​技术​以​自​定义​报表”的​流程图

    本文转自:https://www.ni.com/content/ni/locales/zh-cn/support/documentation/supplemental/08/teststand-report-generation-and-customization.html

  • 相关阅读:
    我开发过程中用到的工具
    我最近写的DataGrid合并/删除相同列通用函数,跟大家分享
    开源项目- Archive Explorer
    SQLite准备出3.0了!
    软件缺陷管理指南 3
    介绍一些.net好站点
    几个著名java开源缓存系统的介绍
    SQL中的Where,Group By,Order By和Having的用法/区别
    Unix/Linux中Cron的用法
    java中判断字符串是否为纯数字
  • 原文地址:https://www.cnblogs.com/YourDirection/p/13764218.html
Copyright © 2011-2022 走看看