应用程序的部署
  对 Web 应用程序而言,测试的第一步是部署。有了源代码后,测试系统使用 Ant 编写的脚本编译源代码,停止当前已有的 Web 服务器,部署产品代码,然后重新启动 Web 服务器。在这段时间中,产品的测试环境可能暂时无法访问(参见以下代码)。
  清单 4.代码部署
def deploybuild(self):
… // 清理文件夹,将源代码解压到 d 盘 buildtar 目录
try:
tar = tarfile.open(self.target + myHtml.srcbuild, "r:gz")
for tarinfo in tar:
print(tarinfo.name, "is", tarinfo.size, "bytes in size")
tar.extractall("d:/buildtar")
tar.close()
except :

// 编译源代码
os.chdir("d:/buildtar")
os.system("Ant all")
// 关闭 web 服务
os.system("net stop ”servicename"");
… // 部署系统
// 开启 web 服务
os.system("net start "servicename"")
  运行自动测试脚本
  当新版本的 Web 应用程序部署完后,测试系统开始进入自动测试。本系统使用 SVN 对测试脚本进行版本控制。所以有必要在一开始通过 SVN 更新近的测试脚本。这里使用 Ant 来调用 SVN 的命令行工具,参见下图。
  使用如下 Python 脚本调用相应的 Ant 任务:
  清单 5.Python 脚本
def runseleniumtestcase(self):
// 下载测试脚本
os.chdir("d:/")
os.system("Ant download-testcase -buildfile=task.xml")
// 运行测试脚本 os.chdir("d:/v510")
os.system("Ant start-selenium -buildfile=build.xml")                      
svn"/>
  事例中的任务 download-testcase 用来从站点 9.19.199.9 的 web/v100 目录下载新版本的测试脚本。start-selenium 任务将启动 selenium 的 proxy server,然后按照 TestNG 配置的顺序运行测试脚本。
  测试系统的脚本应用 Selenium 和 TestNG 的测试工具,实现对各类型 Web 界面的测试需求。在第三节中将详细介绍 Selenium 工具在本系统的应用,并在第四章中介绍 TestNG 工具在配置 Selenium 测试脚本中的作用。
  为适应项目开发周期不同阶段的测试需求,Web 管理站点将列出当前所以测试案例。用户可以自由地挑选下次测试需要的用例。当用户选择保存后,这些测试脚本会在下次系统自动部署时候被运行。如果用户选择运行,那么系统可以马上在当前已部署的产品环境上运行测试脚本。
  发布自动测试报告
  运行完自动测试用例后,测试结果自动生成于测试工具目录下面。这样会覆盖原先的文件,不利于项目的跟踪和信息的交流。所以,我们的测试系统会将测试报告发布到 Web 管理站点。用户只需按照上面的时间点击链接,可以看到每次测试的运行结果(参见图 4)。

图 4. 测试报告界面