目前,我们的测试需要越来越多的平台,并且测试规模多达数十台机器。为提高测试效率和测试质量,我们结合 STAF(Software Test Automation Framework) 和 XML ,设计并实现了一种测试框架。以XML为配置文件,配置所有平台信息;以STAF为引擎,实现跨平台自动化测试;将测试框架与测试用例分离,实现测试用例的即插即用。本文具有很强的实用性,读者可参考设计跨多个平台的自动化测试。
前言
目前,我们的测试需要覆盖越来越多的平台,以及需要多达几十台机器的测试规模。为了提高测试效率和测试质量,我们设计并实现了一种基于STAF和XML的自动化测试工具,主要解决了以下问题:
应用 STAF 内部服务和 XML 配置文件,实现在多达几十台机器上的自动化测试;
直接在 Perl 脚本中调用 STAF 的内部服务,提供更灵活和更强大的功能;
将测试框架与测试用例分离,每次我们生成一个新的测试用例,只需要将其在 XML 文件中进行配置,实现了测试用例的即插即用。
生成 HTML 格式的日志文件,方便测试者的查询。
我们的测试工作包括下列三个组件:自动化测试框架、配置文件、测试用例。结构如下图所示。
图 1:本自动化测试框架结构图
自动化测试框架
对 STAF 框架的改进
自动化测试框架是基于 STAF 和 XML 实现的。STAF/STAX 是由IBM开发的自动化测试环境,其中STAF是开源的、跨平台的、支持多语言的自动化测试框架。它为自动化测试建立了基础,并加快了自动化测试的进程。STAX 是基于 STAF 的基础上的执行引擎,它在 STAF 的基础上,帮助用户实现测试用例的分发、布置、执行以及结果分析。在测试工作中,测试人员越来越多的将 STAF 与 STAX 结合使用,但是 STAX 本身为 XML 格式文档,且要求嵌入 Python 语言,具有流程复杂,操作不便的特点。为实现跨多平台的综合性自动化测试,以及提高自动化测试的效率,决定在 Perl 脚本中直接调用 STAF 服务,实现关键性的远程进程调用功能和文件传输功能,并配置XML文件管理测试平台及测试用例。
测试框架中涉及的 STAF 服务
STAF是基于重用的组件来构建自动化框架的,这些可重用的组件就是服务。其中,本测试框架中用的服务主要为:
●程序调用服务:内部服务,利用此服务,可用远程调用外部程序。本框架中利用 STAF Process 服务远程执行 Perl 脚本,例如在 Windows 平台下调用语法为:
STAF “hostname” Process start command “cmd /C perl xxxxxxx.pl” |