周夢(mèng)瑤
摘 要:在對(duì)某些同步運(yùn)行的軟件進(jìn)行網(wǎng)絡(luò)測(cè)試時(shí),搭建軟件真實(shí)的運(yùn)行環(huán)境通常會(huì)遇到各方面的困難。而虛擬機(jī)測(cè)試系統(tǒng)可以通過(guò)多種方便、靈活的方式進(jìn)行通信,形成復(fù)雜和多變的測(cè)試環(huán)境,繼而完成各種復(fù)雜的網(wǎng)絡(luò)測(cè)試。本文首先闡述了使用虛擬機(jī)搭建測(cè)試環(huán)境的原因,再通過(guò)使用虛擬機(jī)對(duì)大屏幕導(dǎo)航系統(tǒng)進(jìn)行網(wǎng)絡(luò)測(cè)試作為示例,介紹了虛擬機(jī)測(cè)試環(huán)境的創(chuàng)建、配置過(guò)程。
關(guān)鍵詞:虛擬機(jī);軟件測(cè)試;測(cè)試環(huán)境搭建
中圖分類號(hào):TP316 文獻(xiàn)標(biāo)志碼: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 使用虛擬機(jī)搭建測(cè)試環(huán)境原因
1.1 難以配備實(shí)際運(yùn)行環(huán)境所需硬件
在對(duì)軟件進(jìn)行測(cè)試時(shí),通常搭建的測(cè)試環(huán)境直接還原軟件真實(shí)的運(yùn)行環(huán)境。測(cè)試環(huán)境包括硬件環(huán)境和軟件環(huán)境,硬件環(huán)境指測(cè)試必需的服務(wù)器、客戶端、網(wǎng)絡(luò)連接設(shè)備,以及打印機(jī)、掃 描儀等輔助硬件設(shè)備所構(gòu)成的環(huán)境;軟件環(huán)境指被測(cè)軟件運(yùn)行時(shí)的操作系統(tǒng)、數(shù)據(jù)庫(kù)及其他應(yīng)用軟件構(gòu)成的環(huán)境。還原軟件真實(shí)的運(yùn)行環(huán)境即需配備與正式運(yùn)行環(huán)境相同型號(hào)的硬件并安裝同版本的軟件。但對(duì)于某些需同步運(yùn)行的多程序軟件,其真實(shí)的硬件運(yùn)行環(huán)境復(fù)雜,且無(wú)法用等價(jià)類劃分的方法將測(cè)試所依賴的運(yùn)行環(huán)境劃分至相對(duì)簡(jiǎn)單的測(cè)試場(chǎng)景。則需測(cè)試人員花費(fèi)大量時(shí)間和成本去搭建結(jié)構(gòu)復(fù)雜的硬件測(cè)試環(huán)境。這時(shí)選擇虛擬機(jī)代替物理主機(jī)一種廉價(jià)、快捷而又安全的方法。通過(guò)虛擬機(jī)軟件,可以在一臺(tái)物理計(jì)算機(jī)上模擬出兩臺(tái)或多臺(tái)虛擬的計(jì)算機(jī),這些虛擬機(jī)完全就像真正的計(jì)算機(jī)那樣進(jìn)行工作,例如可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問(wèn)網(wǎng)絡(luò)資源等等。
1.2 虛擬機(jī)可搭建干凈的軟件環(huán)境
配置軟件環(huán)境是測(cè)試實(shí)施的一個(gè)重要階段,軟件環(huán)境嚴(yán)重影響測(cè)試結(jié)果的真實(shí)性和正確性。
使用虛擬機(jī)可以根據(jù)需求搭建完全純凈的軟件環(huán)境。在該環(huán)境中測(cè)試可排除軟件環(huán)境對(duì)被測(cè)軟件測(cè)試結(jié)果的影響,更有益于測(cè)試人員定位被測(cè)軟件的問(wèn)題。
1.3 使用虛擬機(jī)進(jìn)行測(cè)試更便捷
使用虛擬機(jī)較使用實(shí)體機(jī)更為便捷:首先,可以幫助測(cè)試人員省去諸如開(kāi)機(jī)、關(guān)機(jī)等特定操作的等待時(shí)間。其次,軟件的測(cè)試場(chǎng)景復(fù)雜多樣,在測(cè)試過(guò)程中隨著測(cè)試的進(jìn)展,測(cè)試場(chǎng)景需頻繁切換,使用虛擬機(jī)可省去手工調(diào)整實(shí)體硬件連接狀態(tài)的時(shí)間,有助于提高測(cè)試的效率。同時(shí),實(shí)體測(cè)試環(huán)境還需花費(fèi)時(shí)間和精力對(duì)其進(jìn)行定期維護(hù),而使用虛擬機(jī)則可省略此環(huán)節(jié)。
1.4 若遭到破壞,可迅速重建已經(jīng)搭建好的測(cè)試環(huán)境
虛擬機(jī)提供的快照功能可將虛擬機(jī)恢復(fù)至以前的任何狀態(tài)。將虛擬機(jī)關(guān)鍵的狀態(tài)點(diǎn)打上快照,如果虛擬機(jī)系統(tǒng)遇到任何問(wèn)題,快照可以避免花費(fèi)大量時(shí)間去完成緩慢的系統(tǒng)恢復(fù)流程。
2 使用Citrix Xen虛擬化技術(shù)對(duì)WPNS軟件系統(tǒng)的測(cè)試環(huán)境進(jìn)行搭建
本文以WPNS軟件的測(cè)試為例,簡(jiǎn)述在虛擬機(jī)上對(duì)多程序進(jìn)行同步測(cè)試的準(zhǔn)備過(guò)程。
2.1 WPNS軟件及所處環(huán)境簡(jiǎn)介
WPNS(Wall Panel Navigation System)即大屏幕導(dǎo)航系統(tǒng)主要功能為位于主控制室內(nèi)的值長(zhǎng)或操縱員通過(guò)指定控制臺(tái)的鍵盤和鼠標(biāo),直接操作某一個(gè)大屏幕主機(jī),從而達(dá)到調(diào)整該大屏幕上的顯示畫(huà)面的目的。WPNS軟件為該系統(tǒng)功能的實(shí)現(xiàn)提供人機(jī)交互界面,同時(shí)為WPNS提供軟件支持用于發(fā)送及接收切換指令。
大屏幕導(dǎo)航系統(tǒng)所處的主控室共有8個(gè)控制臺(tái)與WPNS相關(guān),每?jī)蓚€(gè)控制臺(tái)為一組,每組分別由值長(zhǎng)、操作員A、操作員B、操作員C進(jìn)行控制。一個(gè)控制臺(tái)由1臺(tái)主機(jī)、兩臺(tái)顯示器、1套鍵鼠組成。除控制臺(tái)主機(jī)之外系統(tǒng)還包括大屏幕主機(jī)及其對(duì)應(yīng)的大屏幕。KVM切換器是整個(gè)大屏幕導(dǎo)航系統(tǒng)的核心,KVM切換器連接著各控制臺(tái)的鍵鼠、各控制臺(tái)的主機(jī)及大屏幕主機(jī),能夠讓值長(zhǎng)與操作員自主設(shè)置當(dāng)前控制臺(tái)的鍵鼠控制哪一臺(tái)主機(jī)。
WPNS網(wǎng)絡(luò)配置如圖1所示。
其中一個(gè)方框代表一個(gè)控制臺(tái),各設(shè)備之間分別由3個(gè)不同的局域網(wǎng)進(jìn)行連接,這3個(gè)網(wǎng)分別為C網(wǎng)、D網(wǎng)、KVM網(wǎng)。
其中根據(jù)WPNS軟件的需求,該軟件運(yùn)行于操作員A右側(cè)控制臺(tái)主機(jī)、操作員B左側(cè)控制臺(tái)主機(jī)、操作員C左側(cè)控制臺(tái)主機(jī)、值長(zhǎng)左側(cè)控制臺(tái)主機(jī)、值長(zhǎng)右側(cè)控制臺(tái)主機(jī)。在對(duì)WPNS軟件進(jìn)行測(cè)試時(shí),因其所依賴的測(cè)試環(huán)境較復(fù)雜,因此選擇在虛擬機(jī)上搭建測(cè)試場(chǎng)景對(duì)上述環(huán)境進(jìn)行還原。
2.2 虛擬機(jī)安裝
(1)根據(jù)測(cè)試場(chǎng)景確定虛擬機(jī)個(gè)數(shù)。搭建測(cè)試環(huán)境前,首先需根據(jù)所設(shè)計(jì)的測(cè)試場(chǎng)景來(lái)確定需安裝的虛擬機(jī)個(gè)數(shù)。即選出需主機(jī)數(shù)最大的測(cè)試場(chǎng)景。以WPNS軟件中測(cè)試值長(zhǎng)右側(cè)復(fù)位按鈕功能為例,測(cè)試場(chǎng)景需要4臺(tái)主機(jī)分別扮演4個(gè)不同角色:操作員、大屏幕、值長(zhǎng)左、值長(zhǎng)右。流程為操作員點(diǎn)擊相應(yīng)大屏幕的按鈕將鍵鼠控制權(quán)切至大屏幕,值長(zhǎng)點(diǎn)擊值長(zhǎng)右側(cè)控制臺(tái)復(fù)位按鈕將操作員的鍵鼠控制權(quán)切回本機(jī)。其中值長(zhǎng)左的WPNS軟件用于接受及發(fā)送切換指令。分析得出其余任意測(cè)試用例所在測(cè)試場(chǎng)景所需主機(jī)都不大于此測(cè)試場(chǎng)景。因此可新建4臺(tái)虛擬機(jī)用于WPNS軟件的測(cè)試。
(2)根據(jù)軟件真實(shí)使用場(chǎng)景確定虛擬機(jī)相關(guān)配置:(a)搭建虛擬網(wǎng)絡(luò)。聯(lián)網(wǎng)方式簡(jiǎn)介、示例選用的聯(lián)網(wǎng)方式及原因:虛擬機(jī)有3種聯(lián)網(wǎng)方式:第一種方式為Bridged(橋接)模式,虛擬機(jī)成為網(wǎng)絡(luò)中一臺(tái)獨(dú)立的計(jì)算機(jī),可以和網(wǎng)絡(luò)內(nèi)其他計(jì)算機(jī)、宿主機(jī)進(jìn)行互訪。在橋接模式下,需要手工為虛擬系統(tǒng)配置IP地址、子網(wǎng)掩碼,并且應(yīng)和宿主機(jī)器處于同一網(wǎng)段,這樣虛擬系統(tǒng)才能和宿主機(jī)器進(jìn)行通信。同時(shí),由于此虛擬系統(tǒng)是局域網(wǎng)中的一個(gè)獨(dú)立的主機(jī)系統(tǒng),那么可以通過(guò)手工配置它的TCP/IP配置信息的方式,實(shí)現(xiàn)通過(guò)局域網(wǎng)的網(wǎng)關(guān)或路由器訪問(wèn)互聯(lián)網(wǎng)的目的。第二種方式為NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)模式,使用NAT模式,就是讓虛擬系統(tǒng)借助網(wǎng)絡(luò)地址轉(zhuǎn)換功能,通過(guò)宿主機(jī)器所在的網(wǎng)絡(luò)來(lái)訪問(wèn)公網(wǎng)。NAT模式下虛擬系統(tǒng)的TCP/IP配置信息是由虛擬網(wǎng)絡(luò)的DHCP服務(wù)器提供的,無(wú)法進(jìn)行手工修改,因此虛擬系統(tǒng)也就無(wú)法和本局域網(wǎng)中的其他真實(shí)主機(jī)進(jìn)行通信。第三種方式為Host—Only(主機(jī))模式,所有的虛擬子系統(tǒng)和宿主機(jī)構(gòu)建成一個(gè)封閉的局域網(wǎng),提供的是主機(jī)和虛擬機(jī)之間的網(wǎng)絡(luò)互訪。若要限制只允許虛擬機(jī)和主機(jī)之間有數(shù)據(jù)交換,而不想讓虛擬機(jī)訪Internet,需采用此模式。
本文示例中各臺(tái)主機(jī)上的WPNS軟件需要通過(guò)局域網(wǎng)進(jìn)行指令交換,即各虛擬系統(tǒng)間需要實(shí)現(xiàn)相互通信,因此采用的是橋接的方式。為模擬軟件運(yùn)行所處的正式環(huán)境,本測(cè)試環(huán)境中間建立了3個(gè)局域網(wǎng)用來(lái)表示C網(wǎng)、D網(wǎng)、KVM網(wǎng)。
虛擬機(jī)上新建網(wǎng)卡:
在宿主機(jī)上搭建虛擬網(wǎng)絡(luò)后,需為虛擬機(jī)確定要新建的網(wǎng)卡數(shù)量,即為虛擬機(jī)需連入的虛擬網(wǎng)絡(luò)創(chuàng)建對(duì)應(yīng)的網(wǎng)卡。以值長(zhǎng)左側(cè)控制臺(tái)為例,其主機(jī)處在C網(wǎng)、D網(wǎng)、KVM網(wǎng)三網(wǎng)中,因此需建立對(duì)應(yīng)的3塊網(wǎng)卡。
(b)虛擬機(jī)配置。在宿主機(jī)上按照以下步驟,用戶可以根據(jù)自身需求快速地創(chuàng)建所需的虛擬機(jī)。選擇需安裝的系統(tǒng);配置CPU個(gè)數(shù)及內(nèi)存大??;配置硬盤大??;虛擬機(jī)配置IP地址。配置IP地址時(shí)需保證處于同一局域網(wǎng)的虛擬機(jī)其網(wǎng)段相同。
3 按虛擬機(jī)角色部署軟件
3.1 使用軟件安裝包
使用軟件安裝包直接在主機(jī)上安裝軟件是最為常見(jiàn)的部署方式。每當(dāng)軟件發(fā)布新版本時(shí),只需測(cè)試人員更新軟件安裝程序包,將其在指定計(jì)算機(jī)上安裝即可。對(duì)于多程序軟件使用統(tǒng)一安裝包的情況,可將安裝包關(guān)聯(lián)相應(yīng)的配置文件,通過(guò)在配置文件中設(shè)置指定IP地址的主機(jī)應(yīng)安裝的程序,達(dá)到為不同虛擬機(jī)角色部署不同軟件的目的。
3.2 使用批處理腳本拷貝運(yùn)行文件至指定文件夾
在測(cè)試過(guò)程中為了節(jié)省卸載軟件、安裝軟件的時(shí)間,也可直接拷貝程序編譯后的運(yùn)行文件至對(duì)應(yīng)的虛擬機(jī)下,實(shí)現(xiàn)軟件的部署。使用批處理腳本可以自動(dòng)化的執(zhí)行所有文件創(chuàng)建及拷貝動(dòng)作,使部署過(guò)程更快捷。不同的虛擬機(jī)上可為其編輯不同的批處理腳本,拷貝不同程序的運(yùn)行文件,同樣可達(dá)到為不同虛擬機(jī)角色部署不同軟件的目的。對(duì)示例中程序進(jìn)行測(cè)試時(shí),為節(jié)省更新安裝包、安裝及卸載程序的時(shí)間,采取的即為此種部署方式。
4 與實(shí)體機(jī)搭建測(cè)試環(huán)境的差異及是否達(dá)到測(cè)試目標(biāo)
在操作方面,使用虛擬機(jī)進(jìn)行多程序的同步測(cè)試與在實(shí)體機(jī)上進(jìn)行測(cè)試并無(wú)差異。測(cè)試人員只需將虛擬機(jī)當(dāng)成真實(shí)的電腦來(lái)部署軟件、執(zhí)行測(cè)試用例及獲取測(cè)試結(jié)果。在原理上,對(duì)于在虛擬機(jī)中運(yùn)行的應(yīng)用程序而言,它就是一臺(tái)真正計(jì)算機(jī)。因此在虛擬機(jī)上得出的測(cè)試結(jié)果與在實(shí)體機(jī)上進(jìn)行測(cè)試并無(wú)任何差別,并且使用虛擬機(jī)進(jìn)行測(cè)試能更便捷的完成測(cè)試目標(biāo)。
參考文獻(xiàn)
[1]潘藝鵬.結(jié)合虛擬機(jī)構(gòu)建模塊化的網(wǎng)絡(luò)測(cè)試平臺(tái)[J].實(shí)驗(yàn)室研究與探索,2015,34(1):84-86,96.
[2]支連意.云計(jì)算:Xen虛擬機(jī)與VMWare ESX 虛擬機(jī)性能及穩(wěn)定性對(duì)比研究[J].軟件導(dǎo)刊,2012,11(3):46-48.
[3]王太成,蔡勇利.用虛擬機(jī)技術(shù)完成復(fù)雜網(wǎng)絡(luò)實(shí)驗(yàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(4):246-249.