SOA 组合业务服务的自动化测试:第 2 部分

发表于:2008-11-20 17:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杨晢、袁俊峰、宋玉红    来源:IBM

  图 2.3 BuildScript 目录下的文件

  deployBuild.bat 文件主要用于定义一些 WPS profile 的位置、Build 放置的位置、WPS 登录用户名和密码等信息。


  图 2.4 deployBuild.bat 文件的内容

  文件中前 6 行都是运行环境的配置信息:

  pathProfile: WPS 的 profile 路径。

  pathProcServer: WPS 的安装路径。

  pathBuildService: service 层 build 的放置目录。

  pathBuildUI: UI 层 build 的放置目录。

  authStmt: WPS 的用户名和密码,在启动了安全性后用命令行控制 WPS 时需要提供认证信息,在这个示例中我们的用户名和密码都是 IBM。

  第七行是调用 buildToTest.py 的 python 文件,后面的数字 (2007102202) 是要安装 build 的版本号,这个版本号需要开发组和测试组共同协商,确定一个 build 的编号规则,自动脚本下载的 Build 号将以此为唯一标识。一般来说可以采用日期 + 序号的方法,如果所示的 2007102202 就表示的是 2007 年 10 月 22 日的第二个 build。

  buildtoTest.py 文件主要定义了一些自动化的主要步骤。

import os, os.path
from time import strftime,localtime,ctime
import urllib
import smtplib
import sys
top_dir = os.getcwd() 
currentTime = strftime("%Y%m%d", localtime())
# Get Ears
retEars = os.system('ant -Dbuild.number=%s -buildfile %s/otherTargets.xml ftp-get-ears '
%(sys.argv[1] ,top_dir + '/Script'))
# Uninstall and install UI
retunInstall = os.system('%s/uninstallAllUI.bat' %(top_dir + '/Script'))
retinstall = os.system('%s/installAllUI.bat' %(top_dir + '/Script'))
# Uninstall and install services
retunInstall = os.system('%s/uninstallAllApps.bat' %(top_dir + '/Script'))
retinstall = os.system('%s/installAllApps.bat' %(top_dir + '/Script'))

  我们在 python 中定义了 3 个重要的任务:

  GetEars: 该步骤用到了 ant 脚本 (otherTargets.xml) 的 ftp-get-ears 下载 build 到本地目录中,关于 otherTargets.xml 中 ftp-get-ears 的编写,我们在后面会做一个示例性的介绍。

  Uninstall and install UI: 该步骤分别调用了一个卸载旧的 UI 组件 (uninstallAllApps.bat) 和装载新的 UI 组件 (installAllUI.bat) 的批处理命令 , 卸载 UI 的脚本我们将在后面介绍一个自动化框架。

  Uninstall and install services: 该步骤和上面基本相似,不同之处是该步骤卸载和安装的对象是 service 的组件,卸载 Service 的脚本我们将在后面介绍一个自动化框架。

  otherTargets.xml 的一个下载 Build 的代码片断如下所示:

<target name="ftp-get-ears">
<delete dir="../Build/"/>
  <mkdir dir="../Build/"/>
  <ftp action="get"
   server="127.0.0.1" 
   remotedir="/www/Demo /${build.number}/"  
   userid="IBM"
   password="IBM">
   <fileset dir="../Build">
    <include name="**"/>
   </fileset>
  </ftp> 
</target>

  这个 target 由以下几个操作组成:

  1. 删除 Build 文件夹:因为每天的 build 都会放入这个目录,为了保证该文件夹下的 build 都是最新的我们会在下载之前将该文件夹删除。

  2. 新建 Build 文件夹:用于存放即将下载的新 build。

  3. 下载 Build:我们在 <ftp action=”get”> 这个操作里面定义了 FTP 下载所需要的若干参数:

  server : FTP 服务器的 IP 地址。

  remotedir: FTP 服务器存放 build 的路径。

  userid: 登陆 FTP 的用户名。

  password: 用户名所对应的密码。

  大家从这段代码可以看出 Ant 语言的优点:非常简洁,有强大的类库,能用简短的程序完成复杂的操作。如果还要加入其它的任务,只需要加入 <target></target> 代码片段。

52/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号