技术开发 频道

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

  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> 代码片段。

   自动安装和配置 SOA 组件

  当待测试的新 SOA 组件从各个开发团队的 FTP 下载到本地服务器之后,我们就要将它们自动部署到测试服务器上,我们将采用 WebSphere 脚本配置和管理 SOA 组件。

0
相关文章