使用 J2EE 和 STAF/STAX 实现全生命周期的自动化回归测试(3)

发表于:2012-03-16来源:IBM作者:杨锐 张冲 支雷点击数: 标签:自动化回归测试;J2EE
对于 测试用例 ,可以将其保存在 VM 镜像中,随镜像的启动自动部署,也可以使用 STAF 的 File System 服务自动下载。原理相同,不再赘述。 回页首 执行 测

  对于测试用例,可以将其保存在 VM 镜像中,随镜像的启动自动部署,也可以使用 STAF 的 File System 服务自动下载。原理相同,不再赘述。

  回页首

  执行测试用例

  使用 python 管理测试信息

  Python 是一种功能强大的编程语言。Python 简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

  STAF 的执行引擎 STAX 就是基于 Python 实现变量和表达式的处理。也就是说除了 STAX 语言之外,用户也可以使用任何的 Python 库。这种特性极大地丰富了 STAX 的功能,给用户带来了方便。

  通常来说,总是由一组测试用例来测试软件的一个功能,我们把这一组用例叫做一个 Bucket 并用一个与之同名的 Python 文件管理所有的信息。格式如下:

  清单 3. Bucket 的 Python 文件格式

				
## Comment: Enter the bucket name here 
bucketName='bucket1'

## Comment: Enter the owner of the bucket, Your short internet email address 
owner='Susan'

…………
…………

#List of testcases need to run 
bucket=[ 
    'com.xxx.testcase1', 
    'com.xxx.testcase2', 
    'com.xxx.testcase3', 
] 

  一次回归测试一般都需要执行很多的 Bucket,而每个 Bucket 的 Python 文件不能完全记录每个 Bucket 的执行条件和场景,所以我们新建了一个 Python 文件来集中记录所有 Bucket 的执行场景以及 STAX 引擎所要用到的变量和表达式,暂命名为 RegInfo.py。这个文件方便与集中管理每个 Bucket 的信息,有利于维护和查找。其格式如下:

  清单 4.RegInfo.py

				
 staxMonitor = 'reg1.XXX.com'
mailServer = 'reg1.XXX.com'
clientMachine = 'reg1.XXX.com'
scenario = 'Reg_01A'
release = 'releaseMain'
workSpaceHome = 'c:/fvt/regression'
UtilLoc = 'c:/StaxUtil.xml'
importDataPath = 'c:/fvt/data'
port = '4444'
user = 'ntUser'
Password = 'ntPwd'
directoryDuration = '90s'
compileDuration = '5m'
testDuration = '60m'
classpath = '%s;%s/classes;%s/lib'%(workSpaceHome,workSpaceHome, workSpaceHome) 
java142 = 'c:\\Java142\\bin\\'
java150 = 'c:\\Java50\\bin\\'
java160 = 'c:\\Java60\\bin\\'
javaVer = java160 
NTV8 	 = 'NTUWV8'
NTV9 	 = 'NTUWV9'
NTV95 	 = 'NTUWV95'

emailList = [ 
    'yruicdl@cn', 
    'zhilei@cn'
] 
BucketList = [ 
    ['bucket1',NTV8ONLY,javaVer,JCCALL], 
    ['bucket2',NT9ABOVE, javaVer,JCCALL,'xmldb'], 
    ['bucket3',NT95ABOVE, javadecFP,JCC3MABOVE,'sample'], 
] 
serverList = [ 
    ['reg1.XXX.com', NTV8 ], 
    ['reg2.XXX.com', NTV9 ], 
    ['reg3.XXX.com', NTV95 ], 
] 

  在下一节中会详细介绍 STAX 引擎是如何使用这些信息来自动执行测试用例的。

  使用 STAF/STAX 自动执行测试

  STAX 提供一种基于 XML 的,专为自动化而设计的编程语言。STAX 执行引擎以这个 XML 为输入来管理引擎的行为和任务的执行。所有的 STAF 服务都可以被 STAX 任务所调用。

  我们建立一个 XML 文件作为执行回归测试的 STAX 任务,命名为 RegExec.xml。首先 RegExec 需要载入 RegInfo.py 从而读入所需要的信息。脚本如下:

  清单 5. 在 STAX 任务中载入 Python 文件

				
 <block name='"Regression Test -- Validating T%s driver"%(driverType)'> 
    <sequence> 
        <!-- Get Global Variables Step 1--> 
        <script> 
            import sys 
            try: 
                sys.path.index('c:/stax/var') 
            except: 
                sys.path.append('c:/stax/var') 
            import RegInfo as reg_type
				reload(reg_type)
        </script> 
                   
        <import 
            machine="reg_type.clientMachine"
            file="reg_type.UtilLoc" /> 
		
        <script> 
            debug = 1 # Set to 0 (no debug) or 1 (debug) 
            dirTimerDuration = reg_type.directoryDuration 
            compileTimerDuration = reg_type.compileDuration 
        </script> 

	…………
        …………

  在载入回归测试需要的信息之后,STAX 引擎将真正开始执行回归测试。测试的第一步是在测试机上为每个 Bucket 建立一个存放日志的目录,以便测试人员方便的找到每个 Bucket 的日志来分析问题。建立日志目录的脚本如下:

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