用虚拟机搭建多程序软件的网络测试环境

2018-03-24 08:58周梦瑶
中国新技术新产品 2018年6期
关键词:虚拟机软件测试

周梦瑶

摘 要:在对某些同步运行的软件进行网络测试时,搭建软件真实的运行环境通常会遇到各方面的困难。而虚拟机测试系统可以通过多种方便、灵活的方式进行通信,形成复杂和多变的测试环境,继而完成各种复杂的网络测试。本文首先阐述了使用虚拟机搭建测试环境的原因,再通过使用虚拟机对大屏幕导航系统进行网络测试作为示例,介绍了虚拟机测试环境的创建、配置过程。

关键词:虚拟机;软件测试;测试环境搭建

中图分类号:TP316 文献标志码:A

Abstract:In some network testing of softwares which are running synchronously, setting up a real operating environment usually encounters various difficulties. The virtual machine testing system can communicate to form a complex and ever-changing test environment through a variety of convenient and flexible way, and then complete a variety of complex network testing. This paper expounds the reason why the test environment is set up by using virtual machine first. Then it introduces the process of creating and configuring the test environment of virtual machine by means of taking the network testing of Wall Panel Navigation System by using virtual machine as a typical example.

Keywords:virtual machine;software testing;testing environment setup

1 使用虛拟机搭建测试环境原因

1.1 难以配备实际运行环境所需硬件

在对软件进行测试时,通常搭建的测试环境直接还原软件真实的运行环境。测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备,以及打印机、扫 描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。还原软件真实的运行环境即需配备与正式运行环境相同型号的硬件并安装同版本的软件。但对于某些需同步运行的多程序软件,其真实的硬件运行环境复杂,且无法用等价类划分的方法将测试所依赖的运行环境划分至相对简单的测试场景。则需测试人员花费大量时间和成本去搭建结构复杂的硬件测试环境。这时选择虚拟机代替物理主机一种廉价、快捷而又安全的方法。通过虚拟机软件,可以在一台物理计算机上模拟出两台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。

1.2 虚拟机可搭建干净的软件环境

配置软件环境是测试实施的一个重要阶段,软件环境严重影响测试结果的真实性和正确性。

使用虚拟机可以根据需求搭建完全纯净的软件环境。在该环境中测试可排除软件环境对被测软件测试结果的影响,更有益于测试人员定位被测软件的问题。

1.3 使用虚拟机进行测试更便捷

使用虚拟机较使用实体机更为便捷:首先,可以帮助测试人员省去诸如开机、关机等特定操作的等待时间。其次,软件的测试场景复杂多样,在测试过程中随着测试的进展,测试场景需频繁切换,使用虚拟机可省去手工调整实体硬件连接状态的时间,有助于提高测试的效率。同时,实体测试环境还需花费时间和精力对其进行定期维护,而使用虚拟机则可省略此环节。

1.4 若遭到破坏,可迅速重建已经搭建好的测试环境

虚拟机提供的快照功能可将虚拟机恢复至以前的任何状态。将虚拟机关键的状态点打上快照,如果虚拟机系统遇到任何问题,快照可以避免花费大量时间去完成缓慢的系统恢复流程。

2 使用Citrix Xen虚拟化技术对WPNS软件系统的测试环境进行搭建

本文以WPNS软件的测试为例,简述在虚拟机上对多程序进行同步测试的准备过程。

2.1 WPNS软件及所处环境简介

WPNS(Wall Panel Navigation System)即大屏幕导航系统主要功能为位于主控制室内的值长或操纵员通过指定控制台的键盘和鼠标,直接操作某一个大屏幕主机,从而达到调整该大屏幕上的显示画面的目的。WPNS软件为该系统功能的实现提供人机交互界面,同时为WPNS提供软件支持用于发送及接收切换指令。

大屏幕导航系统所处的主控室共有8个控制台与WPNS相关,每两个控制台为一组,每组分别由值长、操作员A、操作员B、操作员C进行控制。一个控制台由1台主机、两台显示器、1套键鼠组成。除控制台主机之外系统还包括大屏幕主机及其对应的大屏幕。KVM切换器是整个大屏幕导航系统的核心,KVM切换器连接着各控制台的键鼠、各控制台的主机及大屏幕主机,能够让值长与操作员自主设置当前控制台的键鼠控制哪一台主机。

WPNS网络配置如图1所示。

其中一个方框代表一个控制台,各设备之间分别由3个不同的局域网进行连接,这3个网分别为C网、D网、KVM网。

其中根据WPNS软件的需求,该软件运行于操作员A右侧控制台主机、操作员B左侧控制台主机、操作员C左侧控制台主机、值长左侧控制台主机、值长右侧控制台主机。在对WPNS软件进行测试时,因其所依赖的测试环境较复杂,因此选择在虚拟机上搭建测试场景对上述环境进行还原。

2.2 虚拟机安装

(1)根据测试场景确定虚拟机个数。搭建测试环境前,首先需根据所设计的测试场景来确定需安装的虚拟机个数。即选出需主机数最大的测试场景。以WPNS软件中测试值长右侧复位按钮功能为例,测试场景需要4台主机分别扮演4个不同角色:操作员、大屏幕、值长左、值长右。流程为操作员点击相应大屏幕的按钮将键鼠控制权切至大屏幕,值长点击值长右侧控制台复位按钮将操作员的键鼠控制权切回本机。其中值长左的WPNS软件用于接受及发送切换指令。分析得出其余任意测试用例所在测试场景所需主机都不大于此测试场景。因此可新建4台虚拟机用于WPNS软件的测试。

(2)根据软件真实使用场景确定虚拟机相关配置:(a)搭建虚拟网络。联网方式简介、示例选用的联网方式及原因:虚拟机有3种联网方式:第一种方式为Bridged(桥接)模式,虚拟机成为网络中一台独立的计算机,可以和网络内其他计算机、宿主机进行互访。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,并且应和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于此虚拟系统是局域网中的一个独立的主机系统,那么可以通过手工配置它的TCP/IP配置信息的方式,实现通过局域网的网关或路由器访问互联网的目的。第二种方式为NAT(网络地址转换)模式,使用NAT模式,就是让虚拟系统借助网络地址转换功能,通过宿主机器所在的网络来访问公网。NAT模式下虚拟系统的TCP/IP配置信息是由虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通信。第三种方式为Host—Only(主机)模式,所有的虚拟子系统和宿主机构建成一个封闭的局域网,提供的是主机和虚拟机之间的网络互访。若要限制只允许虚拟机和主机之间有数据交换,而不想让虚拟机访Internet,需采用此模式。

本文示例中各臺主机上的WPNS软件需要通过局域网进行指令交换,即各虚拟系统间需要实现相互通信,因此采用的是桥接的方式。为模拟软件运行所处的正式环境,本测试环境中间建立了3个局域网用来表示C网、D网、KVM网。

虚拟机上新建网卡:

在宿主机上搭建虚拟网络后,需为虚拟机确定要新建的网卡数量,即为虚拟机需连入的虚拟网络创建对应的网卡。以值长左侧控制台为例,其主机处在C网、D网、KVM网三网中,因此需建立对应的3块网卡。

(b)虚拟机配置。在宿主机上按照以下步骤,用户可以根据自身需求快速地创建所需的虚拟机。选择需安装的系统;配置CPU个数及内存大小;配置硬盘大小;虚拟机配置IP地址。配置IP地址时需保证处于同一局域网的虚拟机其网段相同。

3 按虚拟机角色部署软件

3.1 使用软件安装包

使用软件安装包直接在主机上安装软件是最为常见的部署方式。每当软件发布新版本时,只需测试人员更新软件安装程序包,将其在指定计算机上安装即可。对于多程序软件使用统一安装包的情况,可将安装包关联相应的配置文件,通过在配置文件中设置指定IP地址的主机应安装的程序,达到为不同虚拟机角色部署不同软件的目的。

3.2 使用批处理脚本拷贝运行文件至指定文件夹

在测试过程中为了节省卸载软件、安装软件的时间,也可直接拷贝程序编译后的运行文件至对应的虚拟机下,实现软件的部署。使用批处理脚本可以自动化的执行所有文件创建及拷贝动作,使部署过程更快捷。不同的虚拟机上可为其编辑不同的批处理脚本,拷贝不同程序的运行文件,同样可达到为不同虚拟机角色部署不同软件的目的。对示例中程序进行测试时,为节省更新安装包、安装及卸载程序的时间,采取的即为此种部署方式。

4 与实体机搭建测试环境的差异及是否达到测试目标

在操作方面,使用虚拟机进行多程序的同步测试与在实体机上进行测试并无差异。测试人员只需将虚拟机当成真实的电脑来部署软件、执行测试用例及获取测试结果。在原理上,对于在虚拟机中运行的应用程序而言,它就是一台真正计算机。因此在虚拟机上得出的测试结果与在实体机上进行测试并无任何差别,并且使用虚拟机进行测试能更便捷的完成测试目标。

参考文献

[1]潘艺鹏.结合虚拟机构建模块化的网络测试平台[J].实验室研究与探索,2015,34(1):84-86,96.

[2]支连意.云计算:Xen虚拟机与VMWare ESX 虚拟机性能及稳定性对比研究[J].软件导刊,2012,11(3):46-48.

[3]王太成,蔡勇利.用虚拟机技术完成复杂网络实验[J].计算机技术与发展,2009,19(4):246-249.

猜你喜欢
虚拟机软件测试
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
智能电能表软件测试技术概述
《软件测试》课程教学策略研究