简述
自动化测试在软件测试中的地位显得越来越重要,Rational Functional Tester(RFT)是跨平台的 GUI 自动测试工具,可以自动测试基于 Java、HTML 和 .Net 的应用程序。本文主要介绍如何利用 IBM Rational ClearCase, Ant 以及 STAF 对 RFT 脚本来实现自动编译和检测过程的自动化。
回页首
场景介绍
Lotus Automator(简称 LA)是一款基于 Linux 的自动化控制工具。通过使用 LA 测试人员可以登陆 Web 页面实施软件自动下载、安装配置、定制自动操作服务、管理和执行自动化测试。这一测试框架所需环境有 LA server、RFT clients、STAF。下面我们首先来介绍一下某测试团队基于 LA 这一框架下的自动化测试的场景及流程。
图 1. 当前自动化测试流程
如图 1,测试人员通过 LA Web 页面提交任务到给 LA server,LA 通过 STAF 控制测试机上的 RFT 执行自动化脚本的更新,然后执行脚本,收集脚本执行信息以及发送邮件报告。
LA Admin 为了保证 LA 上的脚本的更新,会在本机安装好 RFT 和 ClearCase Remote Client(CCRC),通过 CCRC 手动更新 ClearCase 上的最新代码,通过本机 RFT 编译脚本,然后打包压缩放到 LA 服务器上。如果有编译错误也是 LA Admin 发送邮件去通知脚本开发人员。
随着测试任务的加重和项目的扩大,当前这一流程的缺点越来越显示出来。每天有大量的代码更新,LA Admin 耗费了大量的时间在维护 LA Server 上的工作,重复性极高。测试工作也非常依赖于 LA Admin,否则就不能及时得到最新的脚本和最新的测试结果。
于是在这一场景中,测试团队经过分析提出了这样一个需求,如何将 LA Server 上的测试脚本能够每天进行自动更新和编译,并且最新的脚本中不能有编译错误,这样才能保证测试机上拿到的脚本也是最新的,也不会影响到测试任务的执行。同时也节省了 LA Admin 维护更新代码的时间,把每天重复性的工作自动化起来。
本文中就是要实现这样两个目标,一是自动更新没有编译错误的脚本到 LA Server 上,二是如果发现有编译错误,及时通知到脚本的开发人员要求及时修复编译错误。
回页首
工具简介
本文主要利用版本控制工具 Rational ClearCase,开源软件 STAF 和编译工具 Ant 来实现上述场景中的两个目标。
现在先简要介绍下这几个工具在本文中的应用。
ClearCase: ClearCase(CC) 主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。本文中的 ClearCase 主要用于版本控制,代码的更新和查询代码更新者,以及创建代码的 baseline 以备后用。
STAF:STAF(Software Testing Automation Framework)是开源、跨平台、支持多语言的自动化测试框架,它的设计核心理念是称为“服务”的可重用组件(例如,进程调用,资源管理,日志和监控等)。STAF 提供的常用服务有程序调用服务(Process Service),文件系统服务(FileSystem Service),日志服务(Log Service),资源池服务(ResPool Service),监控服务(Monitor Service),信号量服务(Sem Service),压缩服务(Zip Service),Ping 服务(Ping Service),变量服务(Var Service)等等。
在本文中 STAF 除了用来作为测试机客户端和 LA 服务器通信之外,主要还用到定时服务(Cron Service)来定时启动服务,程序调用服务(Process Service)调用 Java 外部程序,邮件服务(Email Service)来发送邮件,压缩服务(Zip Service)来打包脚本上传到 LA 服务器。像 Cron 和 Email 这些服务需要 STAF V3 以上的版本。
ANT:Ant 是一种基于 Java 的 build 工具。当开始一个新的项目时,首先应该编写好 Ant 构建文件。构建文件定义了构建过程,并被团队开发中每个人使用。Ant 构建文件默认命名为 build.xml,也可以取其他的名字。这里主要用它来编译 RFT 脚本。
回页首
流程实现与步骤
现在我们就基于上面提到的这些工具来实现对 RFT 脚本进行自动更新和编译检错。
我们将用一台安装好 ClearCase Client 的机器替代 LA Admin 的工作,在这台机器上需要准备以下环境:
安装 ClearCase Client 并且加入到你所在的项目当中去
安装 STAF
安装 Ant
图 2. 改进后的自动化测试流程
改进后的方案如图 2,从图 2 中我们可以看到 QE 的工作流程没有变,仍然跟以前一样通过 LA Web 页面提交任务到 LA 服务器上来控制测试机上的测试工作。改进的是把 LA Admin 的工作从这个流程当中去掉了。取而代之的是一台装好 ClearCase Client,STAF,Ant 的机器。利用 Ant 编译测试脚本,Cleartool 自动更新 View,找到发生编译错误的测试脚本的 owner,并且新增了一个创建每日的 baseline 的功能,方便找回任意时间的 baseline 代码。利用 STAF 开启定时服务,启动脚本进行测试代码的更新编译和上传,无需人工干预。
图 3. 测试脚本更新和编译流程
具体的更新和编译流程如图 3,下面我们来逐步解析下这个流程:
一、Update view(Cleartool)
首先是要通过 ClearCase Client 端来更新到最新的测试脚本,命令如下:
cleartool update <path> |