Teststand 自制报告
在 NI TestStand 中“自制报告”(也称为自定义报告),指的是创建符合你特定需求的测试结果报告格式,而不是仅仅使用默认的报告格式。这通常涉及以下几种主要方法:
核心方法
-
修改现有 XML 报告模板 (最常见且推荐):
- 原理: TestStand 的默认报告是使用预定义的 XML 模板(
.ini或.report文件)和 XSLT 样式表生成的。你可以复制并修改这些模板文件来实现自定义。 - 步骤:
- 找到模板文件:
- 默认位置通常在:
C:\Program Files (x86)\National Instruments\TestStand x.x\Templates\Reports\(路径中的x.x是你的 TestStand 版本号)。 - 常用的基本模板是
Standard.template(旧版用.ini,新版用.report文件扩展名)。
- 默认位置通常在:
- 复制模板: 将你选定的模板文件(如
Standard.report)复制到一个新位置(例如你的项目目录下),并重命名(如MyCustomReport.report)。 - 编辑模板:
- 使用文本编辑器或 XML 编辑器: 模板文件本质上是 XML 格式。
- 关键修改区域:
Title,Header,Footer: 修改报告标题、页眉、页脚内容。Information Fields: 控制报告中显示的元数据(如序列文件路径、用户名、工作站名称、执行时间等)。可以添加、删除或重命名显示项。Result List Fields: 定义主报告区域中显示的测试步骤结果字段(如步骤名称、结果状态、测量值、单位、上下限、时间戳等)。你可以:- 添加新字段(需要知道TestStand内部数据模型的路径,如
Step.Result.Numeric)。 - 删除不需要的字段。
- 改变字段标题。
- 调整顺序。
- 添加新字段(需要知道TestStand内部数据模型的路径,如
Summary: 定义摘要统计信息(如 Passed, Failed, Warning 数量,Total Time)。
- 显示/隐藏细节: 控制是否显示包含每个步骤详细信息和参数的 Details 部分(通常在报告底部)。可以设置
<Detail>相关的属性(如visible="true"或"false")。
- 设置默认报告格式:
- 在 TestStand 主界面,菜单栏选择
Configure>Options>Reports选项卡。 - 在
Report Format下拉菜单中,选择Browse或手动输入你自定义模板文件(MyCustomReport.report)的完整路径。
- 在 TestStand 主界面,菜单栏选择
- 找到模板文件:
- 优点: 灵活,不需要编程,能够满足大多数排版和内容定制需求(中文支持需注意文件编码和模板内字体设置)。
- 缺点: 对复杂的格式布局(非表格形式)或嵌入复杂图形支持较弱。需要理解 XML 结构和 TestStand 数据路径。
- 原理: TestStand 的默认报告是使用预定义的 XML 模板(
-
使用过程模型插件生成报告:
- 原理: TestStand 在执行序列时会调用过程模型(Process Model)中的各种插件(Plugins)。“生成报告”的动作通常由过程模型中名为
Report的步骤触发(通常在执行结束时调用ProcessReports序列)。你可以自定义这个过程。 - 步骤:
- 打开过程模型:
Configure>Process Models,打开你要修改的模型(通常是StandardSeqModel.seq或其用户副本)。 - 找到报告相关步骤: 通常在主序列
MainSequence或主序列调用的Cleanup序列中,找到名为Report的步骤(或类似名称的步骤)。它会执行类似ProcessReports的序列。 - 修改
ProcessReports序列: 这才是真正生成报告的地方。你有两种主要方法:- a) 修改报告参数(Report Options): 双击
ProcessReports步骤,可以在其“Step Settings”对话框中找到报告选项(Report Options),选择自定义的 XML 模板(方法1的成果),或者设置一些基本选项(如PDF/AI/HTML格式、保存位置规则等)。 - b) 完全替换报告逻辑: 在
ProcessReports序列内,你完全可以:- 移除默认的“Generate Report”步骤。
- 使用任何 LabVIEW、C#、Python 等适配器编写你自己的报告生成代码。
- 使用 TestStand API (
NITestStand.Interop.API) 遍历结果数据(从RunState.Execution和RunState.ReportData对象开始)。 - 使用你熟悉的报告生成库(如.NET 的 Crystal Reports、RDLC、HTML、Excel COM/OpenXML、Word COM/OpenXML、LabVIEW Report Generation Toolkit 等)来创建报告文件。
- a) 修改报告参数(Report Options): 双击
- 保存修改后的过程模型(建议保存为用户自定义模型)。
- 将你的序列文件关联到自定义的过程模型上。
- 打开过程模型:
- 优点: 能力最强,几乎无限制。可以与各种企业系统集成,生成极其复杂、精美的报告(包含图表、图片、复杂布局等)。适合高度个性化的报告需求。
- 缺点: 需要编程技能,开发和维护成本高。
- 原理: TestStand 在执行序列时会调用过程模型(Process Model)中的各种插件(Plugins)。“生成报告”的动作通常由过程模型中名为
-
使用数据库 (ODBC / ADO / SQL) 和报告工具:
- 原理: 不是由 TestStand “即时”生成最终用户报告,而是:
- 配置 TestStand 在测试执行时将结果数据直接写入数据库(SQL Server, MySQL, SQLite, Access 等)。
- 使用专用的报告工具(如 Microsoft Reporting Services (SSRS)、Crystal Reports、Power BI、Tableau,甚至自定义开发的应用)连接数据库,基于存储的结果数据设计并生成最终的报告。
- 优点: 非常适合报告与测试执行分离、多用户访问、历史数据查询和分析、设计高度复杂的商业报告。性能通常更好。
- 缺点: 需要建立和维护数据库,需要掌握数据库访问和专门的报告工具。TestStand 本身需要配置数据库日志记录(
Configure>Options>Database选项卡)。报告不是自动生成的(需单独触发)。
- 原理: 不是由 TestStand “即时”生成最终用户报告,而是:
-
使用
Report.ReportToFile步骤导出为 Excel:- 原理: TestStand 提供了一个内置步骤 (
Report.ReportToFile) 可以将结果导出为 CSV 或 Excel (.xlsx) 格式。虽然不是传统意义上的“报告”,但生成的 Excel 文件易于查看、筛选和进行简单分析。 - 用法: 在你的序列中放置一个
Report.ReportToFile步骤(可在C:\Program Files (x86)\National Instruments\TestStand x.x\Components\StepTypes\的TestStand Steps.seq中找到它)。配置其参数(输出文件路径、覆盖/追加模式、导出格式(Excel/CSV)、包含哪些列等)。 - 优点: 极其简单快速,无需编辑XML模板或写代码。结果结构清晰。
- 缺点: 格式简单(表格形式),没有页眉页脚等文档元素。自定义能力有限(主要是列的选择和排序)。
- 原理: TestStand 提供了一个内置步骤 (
如何选择方法?
- 想快速修改报告显示的字段和布局? -> 方法1(修改XML模板) 是首选。
- 需要复杂的排版(非表格)、嵌入图表/图片、与企业报告工具集成? -> 方法2(自定义过程模型插件) 是必由之路。
- 需要分离数据存储与报告、做高级数据分析或大容量历史报告? -> 方法3(使用数据库+报告工具)。
- 只需要简单的、类电子表格的结果输出? -> 方法4(ReportToFile Excel 导出)。
自制中文报告的关键注意事项
- 文件编码: 如果修改 XML 模板或编写代码生成文本报告(如HTML),确保文件使用支持中文的编码(如
UTF-8 with BOM或UTF-8)。 - 模板内文字: 在 XML 模板(方法1)中,可以直接将字段标题、页眉页脚等中的英文替换为中文(例如
<FieldColumn ... title="测量值"/>)。 - 字体设置: 对于 PDF 输出(基于 Report Generation Tool 插件),确保配置的字体支持中文字符(如
SimSun,SimHei,Microsoft YaHei,KaiTi等)。这通常在生成报告的步骤设置或 PDF 打印驱动设置中配置。 - 数据源: TestStand 生成的报告基础数据是英文的(比如步骤名
Result.Numeric,状态常量Pass,Fail)。如果你希望报告里显示为中文:- 模板层面: 可以在 XML 模板中映射(比如将
Result.Status映射为一个新列,显示其值的中文描述)。 - 步骤命名: 最实际的方法是在创建测试步骤时,直接在步骤的
Title属性中使用中文名称。这会在报告中清晰地显示出来。 - 代码层面: 在方法2的自定义代码中,可以轻松将英文关键词翻译为中文。
- 模板层面: 可以在 XML 模板中映射(比如将
开始自制(以方法1为例)
- 备份默认模板。
- 复制
Standard.report(在新版本中)或Standard.ini(在较旧版本中)为MyChineseReport.report。 - 用文本编辑器(如 Notepad++,确保支持UTF-8)打开
MyChineseReport.report。 - 找到
<Title>标签,修改其内容为你的中文报告标题(例如<Title>我的测试报告</Title>)。 - 在
<Header>部分,添加或修改公司名称等信息(例如<CustomField name="MyCompany" title="公司" value="XX有限公司"/>)。 - 在
<ResultListFields>区域下<FieldColumns>内部,修改现有<FieldColumn>的title属性为中文(例如<FieldColumn ... title="状态"/>),或根据需要调整显示的字段。 - 在
TestStand的Configure>Options>Reports中,将Report Format设置为你的MyChineseReport.report文件的路径。 - 运行一个测试序列,查看生成的报告是否符合预期。
通过以上方法,你可以创建出符合具体要求(包括中文显示)的 TestStand 自定义测试报告。选择哪种方法取决于你对定制化程度、美观度和开发维护成本的平衡考虑。方法1(XML模板修改)通常能满足80%的日常定制需求。
如何自动登录TestStand
启动TestStand时弹出的登录界面,在日常使用中并无大碍,但当项目需要通过LabVIEW调用TestStand序列文件时,这个环节就会破坏程序运行的流畅性。
2025-08-28 10:43:23
如何创建TestStand自定义步骤
在之前的课程中简单地介绍过TestStand自带的一些步骤类型,如测试、消息弹窗、赋值、标签等等,这些简单的步骤从TestStand的插入选版中就可以添加到序列中。那么在使用中如果碰到需要实现更加灵活、复杂的功能,使
2024-09-11 14:46:17
NI TestStand TestExec 添加测试次数统计功能(源代码下载)
NI TestStand 测试序列调用例程修改,添加了测试次数统计功能,希望对各位应用labview开发的工作有所帮助。
资料下载
roki
2021-11-15 16:43:14
TestStand表达式中常用的语法规则和运算符使用
TestStand也有自己的语言嘛?在回答这个问题之前大家可以想一下在使用TestStand时有一个和语言密切相关的属性。没错那就是表达式(Expressions),在这篇文章中,小编将以Q&A的方式来带着大
2024-08-15 18:10:14
【为昕原理图设计EDA软件试用】试用报告
今天上传一下对为昕原理图绘制报告总结一下,具体 的BUG问题点请看附件。 VMware虚拟机 系统:WIN10专业版 直接上个图吧: 省点事。哈哈 *附件:BUG提交表-第二个表1.xlsx
TestStand基础使用方法知识分享
TestStand作为一款标准商用测试管理软件,拥有基于图形化的操作界面,具备测试管理软件所要求的测试管理和执行功能,也是NI在自动化测试领域重要的软件开发平台。
2023-12-08 13:39:27
基于测试管理环境TestStand的测试系统的应用设计
随着计算机技术、大规模集成电路技术和通讯技术的飞速发展,测试仪器技术领域发生了巨大的变化,虚拟测试仪器平台也进入了新的发展阶段。美国国家仪器公司(National Instruments)推出了测试管理环境TestStand。基于
2020-08-27 10:26:24
NI TestStand介绍
我可以在哪里使用NI TestStand?4. 为什么需要测试管理软件5. 总结图1.NI TestStand序列开发环境与操作者界面NI TestStan
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机