BIRT 报表的自动化测试

发表于:2011-4-27 17:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性。

  报表测试自动化的重要性

  报表在当今企业中是非常重要的一项工具,很多信息系统都要实现报表的功能来满足业务的需求。开源工具 BIRT 是一项很好的报表制作工具,使用简便,功能也较丰富,很多人都选择 BIRT 来制作自己的报表。

  要做好一个软件系统离不开测试,报表也不例外。要通过全面测试来保证报表中数据的正确性。常用的测试方法是运行生成报表,然后人工来检查看数据是否正确。然而,这种方法比较繁琐,每次测试都要花费测试人员一定的时间,测试过程难以重用。现在敏捷开发已逐渐成为主流开发方式,系统的代码会不断变化来适应新的需求,这时全面的回归测试就显得更为重要。人工测试的代价太大,难以满足测试的质量要求,而自动化测试一经开发完成后就可以不断重用,非常方便,几乎不再需要人力去干预,是回归测试的首选,能更好的保证测试的质量。

  然而,要对报表进行自动化测试并不像制作一张报表那样容易,本文将介绍如何对 BIRT 制作的报表进行自动化测试。

  测试的基本思想

  自动化测试的基本思想就是生成报表后,由电脑读出报表的内容,然后与预先计算好的结果进行比较,从而判断报表的结果是否正确。因此,自动化测试用例的重点就是如何编程访问 BIRT 报表的数据。

  BIRT 制作的报表,其设计文件是 .rptdesign 格式,该文件定义了报表的元数据,即如何得到报表的内容以及内容的表示方式。BIRT 引擎就是根据这个文件生成报表的。在具体的生成过程中,BIRT 引擎分为两步,先是根据 .rptdesign 文件中的定义生成数据,再把这些数据以某种格式显示出来。一般情况下,这两步是一起完成的。然而在测试中,我们主要关注的是报表逻辑,即数据是否正确。显示样式的验证则比较简单。因此,我们可以在编码的时候通过调用 BIRT API 来把这两步分开,使 BIRT 在计算出报表所包含的数据后,并不对其进行渲染显示,而是以 .rptdocument 文件格式保存下来,该文件中存放了报表内包含的所有数据。然后,可以通过编程访问该文件,读取其中数据,通过和预计算的结果比较,验证其正确性。

  自动化测试项目工程结构

  在大型项目中,产品的代码与测试的代码是分开的。通常自动化测试会在产品项目工程之外另外建立一个工程。对于 BIRT 报表自动化测试来说,一个典型的项目工程结构如图 1 所示(以 Eclipse 为例)

图 1. BIRT 自动化测试工程结构图

  除了工程常规的 src 和 lib 目录外,BIRT 要能够运行,还需要 ReportEngine,该目录的内容可以在 BIRT runtime 的下载包里找到,直接拷贝过来即可。Rptdesign 目录存放 .rptdesign 报表设计文件,这些也就是我们要测试的报表文件,可以通过编写脚本把产品工程项目中的报表文件同步过来,也可以手动复制。最后就是 rptdocument 目录,该目录用于存放生成的 .rptdocument 文件,便于测试用例从中读取数据进行验证。

  通过 rptdesign 文件来生成 rptdocument

  通过 API 来使用 BIRT 之前,先要得到 BIRT 的 engine,代码如下,其中 ENGINEHOME 就是 ReportEngine 所在的目录路径。

  清单 1. 获得 BIRT 的工作引擎

EngineConfig config = new EngineConfig();
config.setEngineHome(ENGINEHOME);
               
try {
      Platform.startup(config);
} catch (Exception e) {
      e.printStackTrace();
         //handle the exception here
}
                       
IReportEngineFactory factory = (IReportEngineFactory) Platform
      .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
IReportEngine engine = factory.createReportEngine(config);

  在得到 engine 之后,就可以运行报表了。BIRT API 提供了一个 RunTask 类来负责从报表设计文件中计算出报表的数据。代码如下所示。其中 designFile 是 .rptdesign 文件名。DocumentFile 是生成的 .rptdocument 文件名。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号