购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.1 虚拟出更多的机器

公司小张最近有点愁眉苦脸,他负责的一个项目要进行十一种语言的本地化测试,每种测试语言还需要在不同的Windows平台上测试一遍。除了测试工期紧以外,最苦恼的就是没有足够的测试资源。十一种语言,每种语言都需要测三个平台(Windows XP、Windows Vista、Windows 7),那么每个测试工程师至少需要有三十三台机器。如何能弄到如此多的测试机器呢?小张十分为难,于是跑到我们自动化测试组来寻求帮助。我们告诉他,现在的虚拟机技术已经非常成熟了,可以利用虚拟机技术在一台物理机器上虚拟出多个机器来使用。他非常高兴,要我简单介绍一下。于是我就给他介绍了如何使用VMWare来最大限度地利用资源,以及如何把VMWare应用在自动化测试中的情形。

首先,在进行自动化测试时,如何能够最大限度地使用硬件资源和最大限度地减少准备测试环境所耗费的时间,是需要考虑的两个重要问题。随着VMWare的功能越来越强大,我们常常借用VMWare的企业版(Esxi)来构建虚拟测试环境系统。Esxi有如下的功能:集中化管理、即时的部署、无须停机的系统维护、经过优化的高效率的持续工作,等等。它可以大量节约硬件成本,节约安装操作系统和各种软件环境的时间成本。

虚拟环境的部署如图5-1所示,在每台物理机器上都安装上VMWare(最好选用VMWare Esxi 4.0及以上,具体安装方法请参看VMWare官方文档http://www.vmware.com/products/vsphere/esxi-and-esx/index.html)。然后根据每台物理机器的硬件条件,可以虚拟出若干个虚拟机来用,虚拟机和真实的物理机几乎是没有区别的,且虚拟机里可以运行不同的操作系统。我对小张说:“这样你就可以解决机器的数量问题了”。而且所有虚拟机都可以由VMWare的中控机来远程集中控制。这样不仅可以大量节约硬件资源,还可以动态分配这些硬件资源。小张面露喜色地说:“哦,这太好了,这正是我所需要的。再说说如何用它来做自动化测试吧。”

其次,自动化测试脚本对运行环境有着非常强的依赖性。它很难像人一样可以智能地适应和处理环境变化,只能机械地在特定环境条件下,按照设定好的测试“路径”去执行,一旦环境出现非预期的变化,脚本极容易发生执行失败。为了保证脚本可以顺利地执行,就需要保证每次运行的脚本环境是一样的。小张非常同意地说:“是啊,我们经常会因为环境问题而导致脚本运行失败。”

图5-1 虚拟环境的部署示意图

虚拟机的测试环境很可能会在测试脚本的运行过程中被脚本改变。而保证测试环境一致的最好办法就是每次测试时,让VMWare重新加载最原始最干净的一份虚拟机镜像文件,具体做法如下。

自动化测试环境通常包括:操作系统、测试工具和其他一些辅助的软件。先将需要的各种工具软件在一个干净的操作系统里安装并配置好,然后将整个系统备份成一个VMWare的镜像文件,把这个镜像文件作为标准文件保存好。每次测试时先复制一份标准镜像文件,让VMWare加载这个复制的镜像文件并启动。然后连接这台虚拟测试机里的测试工具,并分发脚本到机器里去执行自动化测试任务。执行完毕后,这份复制的镜像文件就可以丢掉了。这样就可以保证每次测试使用的环境都是一样的。小张大喜过望,说“这个办法真好,这样我们就不必每次运行完脚本后,还需要再执行一大堆恢复环境的脚本了。”

如果产品要做平台兼容性测试,那我们可以准备很多种标准镜像文件,如:Windows XP、Windows 2003、Windows Vista、Windows 7、Linux 等,都需要一份。测试本地化时,还可以准备各种语言版本的标准镜像文件,表5-1列出了操作系统类型和语言的矩阵关系,即兼容性测试环境的众多组合。对于Web软件客户端,有时还需要加上浏览器的类型和版本,那么需要准备的标准镜像文件类型就更多了。小张点头说:“是,但比以前反复重装系统已经轻松多了。”

表5-1 兼容性测试环境的众多组合

有了这些标准的镜像文件后,每次开始新的测试时,只要复制一份标准镜像文件到虚拟机里运行就可以了,运行完后再将这份“脏”文件丢掉。这样测试环境的维护就可以变得轻松,资源的利用率可以得到大大的提高。小张高兴地道了谢,满怀信心地去做他的测试计划书了。 hWnrVhkqe4GRtGhjgYL7xqYuaD1PsfW259h4X0ocJaKA8zGUlunASi4TuAZmmT+9

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开