用 STAF/STAX + LAMP 实现多任务的自动化测试框架

发表于:2009-05-25来源:作者:点击数: 标签:自动化LAMPSTAXSTAF任务
前言 STAF/STAX 是由 IBM 开发 的自动化 测试 运行环境,由于其跨平台和扩展性强的特点,在各种测试工作中被越来越多的使用,但是它也存在流程复杂,操作不便等缺点。而 LAMP 是基于 Linux ,Apache,MySQL 和 PHP 的 开源 网络 开发平台,PHP 可用 Perl 或 P

前言

  STAF/STAX 是由 IBM 开发的自动化测试运行环境,由于其跨平台和扩展性强的特点,在各种测试工作中被越来越多的使用,但是它也存在流程复杂,操作不便等缺点。而 LAMP 是基于Linux,Apache,MySQL 和 PHP 的开源网络开发平台,PHP 可用 Perl 或 Python 代替。Linux+Apache+MySQL+Perl/PHP/Python 常被放在一起使用,来搭建动态网站或者服务器的开源软件,他们拥有了越来越高的兼容度,共同组成了一个强大的 Web 应用程序平台。LAMP 具有搭建快捷,界面友好等特点。为了提高测试运行效率,提供良好的使用体验,我们开发了基于LAMP+STAF/STAX 的自动化测试框架并应用在 WVS 产品的测试中。该框架中前端是 LAMP 实现的动态网站,后端是 STAF/STAX 服务及脚本。我们还利用 STAF 的参数导入特性实现了多任务的自动执行。本文将对基于 LAMP+STAF/STAX 的自动化测试框架的功能特性,体系结构,以及应用在WVS 产品测试中的拓扑结构,设计实现和配置使用进行介绍和分析。

  功能特性

  该框架不仅利用了 STAF/STAX 的自动化功能,还利用了 LAMP 的强大 Web 应用能力,提供了丰富的自动化测试功能和可扩展特性。总体来说,主要有以下功能特性:

  上层应用逻辑和底层自动测试实现松耦合

  自动化测试功能可扩展性强,支持多任务执行

  支持远程程序调用

  方便友好提交测试任务

  可实时监控测试任务和 STAX 运行情况

  历史测试记录可维护

  体系结构

  该框架符合 MVC 的三层结构,主要的功能模块都在控制层,包括提交和监控测试任务,监控 STAX 运行,支持多任务执行,维护历史测试记录等。在该框架中,表示层和控制层的功能实现是以 PHP 形式存在,采用 MySQL 作为数据容器,Apache Server 作为 Web Server,另外在控制层中关于自动化测试的功能实现是以 xml 形式存在,它是被实现层中的 STAF/STAX 所调用。它的体系结构如下图所示:

MILY: Arial">

图 1. LAMP+STAF/STAX测试框架结构图

用 STAF/STAX + LAMP 实现多任务的自动化测试框架

  拓扑结构

  我们把该框架应用在了 WVS 产品的自动化测试中,在这个测试中,我们需要更改 WVS 的配置并对其进行重启,执行 Tester 机器上的脚本,向 Voice Enabler 所在的机器发送 Sip 请求,然后 Voice Enabler 会建立与 WVS 机器的 RTSP 连接以获取其语音识别和语音合成服务,测试结束后再从 WVS 机器拷贝日志进行分析。我们希望这一切都用 STAF/STAX 控制自动完成。因此在所有的机器上都安装了 STAF。另外我们把对测试进行前端控制的 LAMP 软件和代码也配置在了 Tester 机器上,以充分利用其系统资源。对应的,Tester 机器的 STAF 需要安装 STAX 服务来运行本地的 STAX 脚本。该系统的部署图如下所示:

  图 2. LAMP+STAF/STAX 网络拓扑

用 STAF/STAX + LAMP 实现多任务的自动化测试框架

  设计实现

  关于 LAMP 的部分,这里会给出一些应用示图和代码示例,关于 STAF/STAX 中的一些功能给出代码示例,仅供参考。

  提交测试任务:

  该应用提供了 GUI 方式的任务提交,在提交表单中可以选择平台,版本信息,需要运行的用例类型,任务的名字等,方便快捷。如下图所示

  图 3. 提交测试任务页面

用 STAF/STAX + LAMP 实现多任务的自动化测试框架

维护历史测试记录:

原文转自:http://www.ltesting.net