持续集成能够使开发人员和测试人员在同一个最新的版本上工作。CruiseControl 是现在流行的持续集成的软件。自动化测试能够大大减轻测试人员的工作量,减少测试过程中人为出现的错误。STAF (STAX) 是一个轻量级的自动化测试框架。
本文结合 CruiseControl 和 STAF (STAX) 来介绍一个复杂环境下的自动化测试方案。我们使用 CruiseControl 作为自动化测试的入口和调度器,用它来控制 STAX 任务的执行。STAX 通过 STAX 复杂对测试代码进行分发、编译、部署和测试。在整个测试过程中,我们不仅可以使用 JUnit 测试用例来测试代码,而且可以使用其他方式的测试用例来测试,比如 Rational Functional Tester 脚本,Robot 脚本等。
场景介绍
本文使用一个简化了的复杂应用场景作为运行自动测试解决方案的环境。 该应用由一个提供简单 Echo Service 的 WebService 和一个 Web 界面的 WebService 客户端组成。 用户既可以使用程序来直接访问该 WebService 也以通过在浏览器中操作该客户端来访问 WebService 提供的服务。在访问 WebService 和客户端之前,用户都需要经过身份验证来声明自己的身份。
WebService 和客户端分别运行于 Windows 和 Linux 平台上的 WebSphere 应用服务器之上。在 WebSphere 应用服务器上需要配置登录认证模块来实现用户访问前的身份认证。
在这一应用场景中,测试团队经过分析,对自动化功能测试提出了以下需求:
WebService 和客户端需要分别进行功能测试。
开发团队提供了用于配置应用程序登录模块 (LoginModule) 的自动配置部署脚本,该脚本被发布到一个 FTP 服务器上。
WebService 和客户端的源代码以及测试脚本的源代码都存放在 CVS 上,需要在测试执行前进行自动更新。
自动化测试执行需要每天自动定时运行。
测试执行的结果包括执行日志需要被测试团队和开发团队及时访问到。
自动化测试方案的设计
针对上述需求,我们可以将这一自动化测试方案分隔为如下图所示的几个逻辑组件:
图 1. 自动化测试方案的逻辑框图