APP下载

一种TestStand报表数据提取方法

2020-02-02陶宣彤

电子技术与软件工程 2020年18期
关键词:报表代码文档

陶宣彤

(株洲中车时代电气有限公司 湖南省株洲市 412000)

在工业自动化生产过程中,利用TestStand 软件来搭建自动化测试系统,已被广泛应用。TestStand 软件的特点包括具有图形化的操作界面,支持主流应用开发环境编写的代码模块,支持多线程并行测试等[1]。根据用户需求,TestStand 还可以自动生成ASCII、HTML、XML、ATML 报表。测试完成之后,如何快速处理大量的测试报表并从中提取出想要的测试信息,这就给用户提出了一个问题。本文基于此背景,利用Python 语言来介绍一种TestStand报表数据提取方式。

1 开发环境

本文使用的编程语言Python3.8.5,主要解析TestStand2017 生成的ATML 报表,报表格式设置为ATML 5.00 Standards Report Document。

1.1 Python程序设计语言

Python 是一种面向对象、解释型计算机程序设计语言,使用简单、方便。C 或者C++这类编译性语言编写的程序需要通过编译器,将源文件转换为计算机使用的二进制代码,并且需要复制二进制代码到内存中运行。而Python语言编写的程序可以直接从源代码运行。Python 同时提供了强大的标准库,可以帮助处理各种工作,包括文档生成,网页浏览等与系统有关的操作。

1.2 TestStand报表

图1:测试报告内容

图2:ATML 格式文件内容

图3:程序运行界面

图4:运行结果

TestStand 主要提供了ASCII、HTML、XML、ATML 这4 种报表格式。这几种报表格式相比较,HTML 格式的报表解析难度最大,报表数据和格式紧密耦合,需要自定义解析器。ASCII 格式的报表解析难度比HTML 格式低,也是需要自定义解析器,但是格式信息受限。XML、ATML 这两种格式都使用的是标准的XML 架构,可使用XML API 轻松解析。但是ATML 格式的文件在大小上比XML 要小,性能也比XML 格式的要好。本文选择格式为“ATML 5.00 Standards Report Document”的文件进行解析。

2 实现过程

2.1 XML文件

本文利用TestStand 构造了一个测试序列,运行之后生成了多份测试报告,测试报告内容具体如图1所示。

测试报表对应的ATML 格式文件部分内容如图2所示。

本文研究的是在目标文件夹以及其子文件夹中,找到所有TestStand 报表,并提取所有测试报表中,用户所需的某一项测试步骤的结果,并将提取结果返回。例如用户设定提取图中测试步骤“CESHI1-1”,则返回测试步骤名称“CESHI1-1”以及结果“Failed”、具体数值“7.889069184305”。

2.2 具体代码

2.2.1 报表搜寻

OS(operate system)模块是Python 标准库中的一个用于访问操作系统的模块,使用OS 模块中提供的接口,可以实现跨平台的访问。本文需要搜索文件夹以及其子目录文件夹中所有的XML 文件,所以需要使用OS 模块。部分实现代码如下所示。

2.2.2 文件解析

Python 有三种 XML 解析方式:SAX(simple API for XML)、DOM(Document Object Model)、ElementTree。SAX 通过逐行扫描文档,一边扫描一边解析,对于大型文档的解析拥有巨大优势。ElementTree 解析速度快,API 使用也很方便。DOM 是 W3C 组织推荐的标准编程接口,DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入XML 文件。

TESTSTAND 报表内容层次清晰,可以根据节点名称逐层解析,本文采用DOM 来解析XML 文件。部分实现代码如下。

当用户设置测试名称与文档中的测试名称一致时,提取测试结果,部分代码如下。

2.3 程序运行

程序运行后界面如图3所示。

用户输入所需测试步骤名称后,报表数据提取结果如4所示。

3 结束语

本文介绍了一种基于Python 解析TestStand 测试报表的方法,实现了用户自定义所需测试项目,自动提取所有报表中有关该测试项目的具体测试结果,具有实际应用价值。

猜你喜欢

报表代码文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
LabWindows/CVI中Excel报表技术研究
创世代码
创世代码
创世代码
创世代码
从三大报表读懂养猪人的成绩单
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat