选择 正确NI TestStand报告生成策略.docx
- 文档编号:10456283
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:19
- 大小:28.13KB
选择 正确NI TestStand报告生成策略.docx
《选择 正确NI TestStand报告生成策略.docx》由会员分享,可在线阅读,更多相关《选择 正确NI TestStand报告生成策略.docx(19页珍藏版)》请在冰豆网上搜索。
选择正确NITestStand报告生成策略
选择正确的NITestStand报告生成策略
概览
NITestStand2012支持新的报告生成功能,包括异步报告生成、离线报告生成并支持新版本的自动测试标记语言(ATML)报告格式。
这些特性可极大提高NITestStand报告生成的灵活性。
本文章讨论了报告生成的新特性,并介绍了如何针对测试系统选择相应的报告生成策略。
1.概述
2. NITestStand2012 的报告生成新特性
3.报告生成考虑因素
4.应用场景
5.自定义结果处理插件
6.结论
7.更多资源
1.概述
如果需要生成记录待测设备(UUT)每次测试信息(包括测试状态、测量结果、测试参数和测试过程中收集的诊断信息)的报告,通常需要自动化测试系统。
测试系统还具有系统级要求和限制——比如硬件平台、测试吞吐量、测试仪正常运行时间和与生产执行系统(MES)或其他企业管理系统的连接——这些要求和限制会影响测试系统所采用的报告生成策略。
在大多数情况下,即使是在同一个公司内,一个测试系统的报告生成策略也可能无法满足另一个测试系统的要求。
通常,测试系统架构师在为特定测试系统定义相应的报告生成策略时,必须考虑以下多个或全部条件:
∙最大化测试系统的吞吐量
∙最小化报告文件的大小
∙包含所有必需的报告内容
∙可与其他流程和系统交互操作
∙支持故障后信息恢复
∙在测试下一个设备之前生成当前UUT的报告
∙针对每个UUT生成多个报告
∙在测试序列执行过程中生成和查看报告
本文阐述了NITestStand2012的报告生成新特性如何帮助满足这些要求并讨论在设计测试系统的报告生成功能时应考虑的要素。
应用案例介绍了针对常见的测试系统特性和要求,如何选择相应的报告生成策略。
2. NITestStand2012 的报告生成新特性
与之前的版本相比较,NITestStand2012的新结果处理架构包含了许多重要的改进。
新结果处理架构的一个重要部分是用于模型序列文件的插件架构。
这种插件架构将处理模型与报告生成分离开来,从而极大地提高了报告生成器的一致性和性能,同时也提高了报告生成的灵活性和自定义程度。
NITestStand2012的新报告生成特性可帮助用户实现以下任务:
∙报告生成与测试执行异步
∙生成不同格式的多个报告
∙动态生成报告,与NITestStand2010SP1或更早版本相比,性能显著提高
∙生成的报告可根据版本5.0的ATML测试结果和会话信息模式进行验证
∙无需修改进程模型文件,即可轻松实现自定义报告生成的功能
∙以原始结果压缩格式(.tsr)快速记录结果数据,实现离线处理
∙借助NITestStand离线结果处理工具离线生成报告
报告生成与测试执行异步
在NITestStand2010SP1或更早版本中,内置进程模型在UUT循环执行线程内同步调用报告生成的回调函数。
NITestStand在生成前一个UUT的报告后才开始测试下一个UUT。
这会降低测试系统的吞吐量,因为测试仪器在报告生成过程中通常是处于待机状态。
借助NITestStand2012,用户可在与UUT循环执行线程异步的独立线程中调用报告生成的回调函数。
在该架构中,UUT循环执行线程无需等待NITestStand生成前一个UUT的报告就可测试下一个UUT。
对于具有多个CPU和充足系统内存的系统来说,该方法可提高仪器的使用率和测试系统的整体吞吐量。
生成不同格式的多个报告
在NITestStand2010SP1或更早版本中,内置处理模型仅能针对一个UUT生成一份报告。
修改内置处理模型以生成多个报告则需要进行大量的改动。
如果需要升级到新版本的NITestStand,还必须重新进行这些改动。
在NITestStand2012中,用户可以选择针对一个UUT生成多个报告。
每个报告可单独启用和进行配置,且具有多种格式。
例如,可生成可读性较高的ASCII文本报告,也可生成便于后处理的ATML详细报告。
动态生成报告,与NITestStand2010SP1或更早版本相比,性能显著提高
NITestStand包含一个内置的动态报告生成框架,用于在测试执行过程中生成报告。
该框架由NITestStand报告生成序列文件和一个动态服务器组成。
在测试UUT过程中,执行报告生成序列文件可根据步骤结果生成报告代码段,并可调用动态服务器,以保存生成的报告代码段。
报告生成序列文件根据设定的时间间隔调用服务器,以将报告片段存盘。
用户可在“报告选项”对话框中的“内容”选项卡下启用 动态报告生成 选项。
如果需要在测试UUT过程中查看报告片段以监测测试进程,则动态报告生成功能是非常有用的。
该功能也适用于需要最大化存盘结果数量以防UUT测试过程中发生故障的情况。
此外,用户还可启用“模型选项”对话框中的 仅显示最新结果 (在NITestStand2010SP1及更早版本中该选项为 仅显示最新结果以节省内存 ),以在测试UUT的过程中节省内存。
启用该选项后,动态报告生成框架释放出已存盘结果对应的NITestStandResultList元素和报告片段。
使用该选项后,NITestStand仅显示与未存盘结果相关的报告片段。
NITestStand2010SP1或更早版本的动态报告生成
在NITestStand2010SP1或更早版本中,动态报告生成功能可支持XML、HTML和ASCII报告,但不能支持ATML报告。
此外, 仅显示最新结果以节省内存 选项仅支持HTML和ASCII报告,无法支持XML或ATML报告。
报告格式
动态报告生成
节省内存选项
HTML
ASCII
XML
ATML
图1:
NITestStand2010SP1或更早版本的动态报告生成选项
为了解决每个步骤完成之后再将结果写盘导致的低效问题,NITestStand2010SP1或更早版本的动态服务器以固定的时间间隔(10秒)将结果存盘。
NITestStand2012的动态报告生成
在NITestStand2012中,动态报告生成可支持所有报告格式,包括ATML报告。
仅显示最新结果以节省内存 选项更改为 仅显示最新结果,且可支持所有报告格式。
报告格式
动态报告生成
节省内存选项
HTML
ASCII
XML
ATML
图2:
NITestStand2012的动态报告生成
在NITestStand2012,动态服务器进行了全面改进,以提高性能和降低内存使用率。
动态服务器默认根据几个参数来决定结果存盘的时间间隔。
可在“高级结果处理设置”对话框中修改这些参数。
生成的报告可根据版本5.0的ATML测试结果和会话信息模式进行验证
NITestStand2012生成的ATML报告可根据非正式版5.0的ATML测试结果和会话信息模式进行验证。
当版本5.0的ATML测试结果和会话信息模式正式发布后,如有必要可对NITestStand进行更新,以支持最终格式。
如果报告中的信息无需包含模式定义的信息,则可在“报告选项”对话框的“内容”选项卡上禁用 添加TestStand扩展元素 ,以减小ATML5.0报告的大小。
无需修改进程模型文件,即可轻松实现自定义报告生成的功能
在NITestStand2010SP1或更早版本中,默认的报告生成框架与内置处理模型紧密结合。
大部分报告生成代码直接保存在处理模型序列中。
如果需要自定义报告生成功能,用户需要完全理解处理模型、报告生成框架以及报告生成框架与处理模型集成的设计原理。
这种耦合使得更改报告生成功能来添加新报告格式支持或生成多个报告变得非常困难。
在NITestStand2012,内置处理模型采用称为模型插件的序列文件来处理测试结果和创建报告。
每个插件都包含在执行处理模型过程中NITestStand为了完成结果处理任务(如报告生成和数据库记录)所调用的序列。
这些插件与处理模型代码完全独立。
NITestStand包含用于报告生成、数据库记录和原始结果记录的内置插件。
用户可创建自定义处理模型插件,以扩展或更改处理模型的功能,而无需更改处理模型文件。
新架构还支持多个结果处理配置的创建,这些配置根据用户为了完成某个任务(如创建不同格式的多个报告或将数据记录到多个数据库)所配置的插件例程命名。
用户可指定激活的配置方式,以快速更改NITestStand处理结果的方式。
例如,用户可创建用于生产的配置来将数据记录到数据库和生成总结报告,也可创建用于调试和生成详细报告的其他配置。
以原始结果压缩格式快速记录结果数据,进行离线处理
在NITestStand2012,用户能够以原始结果压缩格式快速记录结果数据,从而在异于序列执行的时间或另一台电脑上进行离线处理。
这些原始结果文件包含NITestStand离线生成任何可支持格式的报告所需的所有信息。
该方法可极大提高测试系统的吞吐量。
用户可对原始结果插件进行配置,以自动启动NITestStand离线结果处理工具,进而处理生成的原始结果文件。
使用NITestStand离线结果处理工具离线生成报告
在NITestStand2012中,用户可使用全新的离线结果处理工具在不同于序列执行的时间(比如一整个晚上)或另一台电脑上来处理原始结果文件和生成报告。
该工具适用于测试系统性能比立即生成报告更为重要的情况。
由于该工具是一个独立的应用程序,用户可使用命令行参数和MicrosoftWindows任务计划向导来实现该工具的自动化。
用户还可结合序列的命令行参数使用NITestStand调用可执行步骤来启动该工具。
如果该工具已经运行,则命令行参数应用于该工具的运行例程中。
该工具使用配置文件来指定要处理的原始结果文件集,和指定要使用的结果处理配置集,以及用来记住工具已经处理过的文件集。
用户可创建结果处理配置来在线(运行时)或离线处理结果。
例如,用户可创建与在线结果处理配置不同的离线结果处理配置,或者也可指定其他用于离线处理结果文件的配置,这取决于离线结果文件存储于磁盘的哪个位置。
3.报告生成考虑因素
通常,测试系统架构师在为特定的测试系统定义相应的报告生成策略时,必须考虑以下多个或全部条件:
∙最大化测试系统的吞吐量
∙最小化报告文件的大小
∙包含所有必需的报告内容
∙可与其他流程和系统互操作
∙支持故障后信息恢复
∙在测试下一个设备之前生成当前UUT的报告
∙针对每个UUT生成多个报告
∙在测试序列执行过程中生成和查看报告
下面对每个要求进行了讨论,推荐了一些典型应用场景中最能够满足每个要求的NITestStand报告生成设置和配置,并讨论了为使系统最大程度满足这些要求可能需要舍弃的其他要求。
NI推荐用户将本文作为系统配置的入门指南,并对系统进行反复测量和修改,以在这些要求中实现最佳平衡。
用户需要考虑测试系统运行时的不同场景以及对每个场景来说最重要的要求。
比如,如果是第一次开发和调试测试系统,吞吐量可能一点都不重要,而对于故障后信息恢复的支持可能更为重要。
如果进入生产阶段,吞吐量可能是最重要的。
借助NITestStand2012,用户可以根据测试系统的执行场景使用多个结果处理配置在设置间轻松切换。
最大化测试系统的吞吐量
自动化测试系统通常通过验证一个UUT的时间最小化来实现最大化吞吐量。
测试系统架构师需要花费大量的时间来优化测试系统性能。
在典型的测试系统中,报告生成所需的时间取决于许多因素,包括可用资源(处理器和内存)、生成的报告的格式、结果的数量以及正在记录的其他数据。
∙单CPU计算机:
NI对单CPU计算机进行了500个或下步骤结果的基准测试,表明ASCII报告对吞吐量的降低影响最小,XML报告对吞吐量的降低影响最大。
记录500个以上的步骤结果或更大型的数据集时,基准测试表明TSR报告对吞吐量的降低影响最小,XML报告对吞吐量的降低影响最大。
基准测试还显示异步报告生成并不会增加单核计算机的吞吐量,除非需要花费大量的序列执行时间等待未利用CPU的操作(比如仪器I/O)的情况。
500个及以下步骤结果:
报告选项
值
格式
ASCII,TSR*,ATML,HTML,XML(最好到最差)
异步
假
动态报告
假
仅显示最新结果
假
*TSR格式可生成原始结果压缩文件,且使用时需要借助NITestStand离线结果处理工具来生成最终报告。
大于500个步骤结果:
报告选项
值
格式
TSR,ASCII,ATML,HTML,XML(最好到最差)
异步
假
动态报告
假
仅显示最新结果
假
∙多CPU计算机:
NI对多CPU计算机进行了500个或下步骤结果的基准测试,表明ASCII报告对吞吐量的降低影响最小,XML报告对吞吐量的降低影响最大。
记录500个以上的步骤结果或更大型的数据集时,基准测试表明TSR报告对吞吐量的降低影响最小,XML报告对吞吐量的降低影响最大。
基准测试还表明异步报告生成可提高多核计算机的吞吐量,适用于所有报告格式。
500个或更少的步骤结果:
报告选项
值
格式
ASCII,ATML,TSR,HTML,XML(最好到最差)
异步
真
动态报告
假
仅显示最新结果
假
大于500个步骤结果:
报告选项
值
格式
TSR,ASCII,ATML,HTML,XML(最好到最差)
异步
真
动态报告
假
仅显示最新结果
假
权衡:
针对吞吐量对测试系统进行优化时考虑以下要求的影响:
∙最小化报告文件的大小
∙包含所有必需的报告内容
∙可与其他流程和系统互操作
∙支持故障后信息恢复
∙在测试下一个设备之前生成当前UUT的报告
∙针对每个UUT生成多个报告
∙在测试序列执行过程中生成和查看报告
最小化报告文件的大小
自动化测试系统可在测试UUT时生成大量的数据。
生成的数据量取决于被测UUT的复杂程度和测试设备的功能。
生成的报告的大小取决于报告的格式和记录的数据量。
记录到报告的数据首先取决于用于跟踪或分析的系统级存储要求和所使用的测试和调试进程。
在所有情况下,基准测试表明TSR报告格式可最大程度减小存盘文件的大小。
推荐的报告选项:
报告选项
值
格式
TSR,ASCII,ATML,HTML,XML(最好到最差)
异步
N/A
动态报告
N/A
仅显示最新结果
N/A
权衡:
针对报告大小进行优化时考虑以下要求的影响:
∙最大化测试系统的吞吐量
∙包含所有必需的报告内容
∙可与其他流程和系统互操作
包含所有必需的报告内容
不同测试系统有不同的数据记录要求,取决于用于跟踪或分析的系统级存储要求和使用的测试和调试进程。
NITestStand可生成的每种报告格式所含的信息不尽相同。
比如,ASCII和HTML报告格式仅包含步骤名称、状态、限制、限制比较类型、模块时间和任何与步骤相关的附加结果。
TSR格式包含ASCII和HTML格式的所有信息以及步骤的父步骤ID和执行线程ID等附加信息。
用户还可根据以下分类考虑每个报告格式可用的数据集:
∙精简版 -包含最少的上下文信息,比如站点ID、用户名称、执行开始日期和时间、整体状态以及与步骤相关的最低程度的信息(如步骤名称、模块时间、测量值以及限制值和模块时间。
)
∙受控版 -包含精简版报告的所有信息以及与步骤相关的信息,比如步骤ID。
∙适中版-包含受控版报告的所有信息以及步骤类型、步骤组、步骤执行总时间和报告选项等信息。
∙完整版-包含适中版报告所含的所有信息以及父步骤ID和执行线程ID等信息。
如需了解记录的所有数据的完整列表,请参考NITestStand2012帮助文档 中的 ResultLogRecordTypes枚举 主题。
∙
o
报告内容
ASCII
HTML
ATML2
ATML5
ATML2(带扩展名)
ATML5(带扩展名)
XML
TSR
精简版
受控版
适中版
完整版
o推荐的报告选项:
报告选项
值
格式
ATML,XML,TSR,ASCII,HTML(最好到最差)
异步
N/A
动态报告
N/A
仅显示最新结果
N/A
o权衡:
针对报告内容进行优化时考虑以下要求的影响:
∙最大化测试系统的吞吐量
∙最小化报告文件的大小
∙可与其他流程和系统互操作
可与其他流程和系统互操作
许多测试系统与用于处理测试系统报告的企业资源规划(ERP)系统或生产执行系统(MES)集成,用于为其他系统提供业务关键型数据。
在某些情况下,工程师或技术人员可能需要在其他机器上处理报告,以进行数据统计分析。
这些后处理要求可能决定着生成用于测试系统的报告的格式。
ATML和XML报告保存为使用SAX或DOM解析器可轻松处理和结构化的XML文件格式。
ASCII和HTML报告保存为无法结构化且不像XML那样可轻松进行后处理的ASCII文件格式。
TSR文件格式由NI定义,需要使用NITestStand引擎和NITestStand离线结果处理工具来生成用户可直接处理的另一种格式的文件。
推荐的报告选项:
报告选项
值
格式
ATML,XML,ASCII,HTML,TSR*(最好到最差))
异步
N/A
动态报告
N/A
动态报告
N/A
*尽管TSR文件无法直接进行处理,但可使用离线结果处理工具来生成可直接处理的文件。
权衡:
针对与其他流程和系统的互操作性进行优化时考虑以下要求的影响:
∙最大化测试系统的吞吐量
∙最小化报告文件的大小
∙包含所有必需的报告内容
∙支持故障后信息恢复
∙在测试下一个设备之前生成当前UUT的报告
∙针对每个UUT生成多个报告
支持故障后信息恢复
出现严重的故障时,执行过程中采集的步骤结果信息能够用于分析时非常重要的。
用户可对NITestStand进行配置,以在测试UUT的同时生成动态报告。
NITestStand默认配置为在采集500个步骤结果后或每隔1.5秒的执行时间(以先发生的为准)生成并保存动态报告。
将报告存盘可能会很慢,也会降低吞吐量。
在一些情况下,可通过更改“高级结果处理设置”对话框的处理间隔时间 或 最大结果数量 选项的值来提高性能。
用户还可在“报告选项”对话框的“内容”选项卡中启用 仅显示最新结果 来提高性能。
NI基准测试表明TSR报告在生成动态报告时具有更高的吞吐量。
推荐的报告选项:
报告选项
值
格式
TSR,ATML,XML,ASCII,HTML(最好到最坏)
异步
N/A
动态报告
真
显示最新结果
真
权衡:
针对故障后信息恢复进行优化时考虑以下要求的影响:
∙最大化测试系统的吞吐
∙可与其它流程和系统互操作
∙在测试序列执行过程中生成和查看报表
在测试下一个设备前生成当前UUT的报告
测试序列执行结束时,部分系统要求UUT的报告打印推迟到下一阶段的生产流程。
对于这样的报告,原始结果生成器和异步报告生成并不适用。
这种要求不会影响其他报告格式。
由于动态报告是同步生成的,因此用户可以通过生成动态报告来满足该要求。
推荐的报告选项:
推荐的报告选项:
值
格式
ASCII,ATML,XML,HTML(最好到最差)
异步
假
动态报告
真
仅显示最新结果
N/A
权衡:
在针对测试下一个UUT之前生成前一个UUT的报告这一要求进行优化时,请考虑以下要求的影响:
∙最大化测试系统的吞吐量
∙在测试序列执行过程中生成和查看报告
∙针对每个UUT生成多个报告
针对每个UUT生成多个报告
部分测试系统可能需要针对每个UUT生成多个报告。
比如,用户可能需要分别生成一份快速简短的ASCII总结报告和一份可由MES进行后处理的详细ATML报告。
另外也有可能需要生成一份供用户使用的总结报告和一份供内部使用的详细报告。
在这种情况下,用户可对NITestStand进行配置,以针对每个UUT生成多个报告。
NI基准测试表明生成原始结果文件并对其进行离线处理以生成多个报告可使多核计算机的吞吐量达到最大。
推荐的报告选项:
报告选项
值
格式
TSR,ASCII,ATML,XML,HTML(最好到最差)
异步
真
动态报告
假
仅显示最新结果
假
权衡:
针对多个报告生成进行优化时考虑以下要求的影响:
∙最大化测试系统的吞吐量
∙可与其他流程和系统互操作
∙在测试下一个设备之前生成当前UUT的报告
∙在测试序列执行过程中生成和查看报告
在测试序列执行过程中生成和查看报告
部分测试步骤可能由于包含大量的测试或某个测试需要较长时间来完成而需要花费大量的时间。
为了及早诊断出这些系统的问题,必须在测试序列执行时生成和显示报告片段,而不是等到执行结束时再生成和显示报告。
用户可对NITestStand进行配置来生成动态报告,以支持此类测试序列。
NI基准测试表明如果需要在测试过程中查看整个报告,则动态ASCII报告的吞吐量最大。
如果不需要查看整个报告,则启用 仅显示最新结果选项动态生成的所有报告的吞吐量相差无几。
由于只能在执行结束后才能生成与原始结果相关的报告,因此在测试序列执行时无法使用原始结果文件格式来生成和查看报告。
包含大量步骤的测试序列生成的报告也较大。
在测试序列执行时生成和查看打报告可能会导致性能大幅降低。
因此动态生成报告时,NI推荐启用 仅显示最新结果 选项。
推荐的报告选项:
∙包含多个步骤且需要较长执行时间的测试序列:
报告选项
值
格式
ASCII,ATML,HTML,XML(最好到最差)
异步
N/A
动态报告
真
仅显示最新结果
假
∙包含大量步骤的测试序列:
报告选项
值
格式
ASCII,ATML,HTML,XML(最好到最差)
异步
N/A
动态报告
真
仅显示最新结果
真
∙权衡:
针对该要求进行优化时考虑以下要求的影响:
∙最大化测试系统的吞吐量
∙可与其他流程和系统互操作
∙支持故障后信息恢复
∙在测试下一个设备之前生成当前UUT的报告
4.应用场景
以下使用案例举例说明了不同测试系统要求和不同报告生成配置如何满足这些要求。
应用场景1
假设一个测试系统中,报告生成功能必须能够最大化测试系统的吞吐量;在UUT测试结束后立即生成和显示报告;以及生成MES可进行后处理的详细报告。
则用户可创建一个用于生成高级总结报告的报告配置,然后创建用于详细报告的不同配置,如以下推荐的报告选项:
推荐的报告选项:
总结报告:
报告选项
值
格式
ASCII
异步
假
动态报告
假
只显示最新结果
假
详细报告(变量1):
报告选项
值
格式
A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择 正确NI TestStand报告生成策略 正确 NI TestStand 报告 生成 策略