陳琦
(國(guó)電南瑞研究院 江蘇省南京市 210000)
在軟件開發(fā)過程中,利用合理的軟件測(cè)試平臺(tái),能夠在極大程度上提升軟件整體的測(cè)試效率。因此,當(dāng)前相關(guān)領(lǐng)域的研究人員正逐步通過各類現(xiàn)代化的技術(shù)手段,構(gòu)建自動(dòng)化的軟件測(cè)試平臺(tái),對(duì)于未來軟件企業(yè)的建設(shè)和發(fā)展而言具有十分重要的價(jià)值意義[1]。當(dāng)前,現(xiàn)有軟件測(cè)試平臺(tái)已經(jīng)能實(shí)現(xiàn)對(duì)多種不同類型軟件協(xié)同測(cè)試的功能,并做到對(duì)軟件測(cè)試整個(gè)過程中的跟蹤和管理。傳統(tǒng)軟件測(cè)試平臺(tái)在開發(fā)階段,大多采用虛擬機(jī)技術(shù)實(shí)現(xiàn)對(duì)平臺(tái)自動(dòng)化測(cè)試環(huán)境以及監(jiān)控環(huán)境的構(gòu)建[2]。但這種方法在實(shí)際應(yīng)用過程中,會(huì)產(chǎn)生更加高昂的開發(fā)成本,并且耗時(shí)較長(zhǎng),平臺(tái)在日常運(yùn)行過程中很難得到維護(hù)等問題。工業(yè)自動(dòng)化領(lǐng)域中,大多數(shù)用戶需要基于分布式計(jì)算環(huán)境,進(jìn)行軟件測(cè)試,用戶數(shù)量龐大,功能全面而復(fù)雜,這進(jìn)一步導(dǎo)致現(xiàn)有的軟件測(cè)試平臺(tái)不能滿足用戶需求?;诖?,本文開展分布式協(xié)同軟件測(cè)試平臺(tái)研究。
為實(shí)現(xiàn)對(duì)分布式協(xié)同軟件測(cè)試平臺(tái)的搭建,首先根據(jù)平臺(tái)的運(yùn)行特點(diǎn),選擇為其提供運(yùn)行環(huán)境的vSphere 服務(wù)器。同時(shí),為方便對(duì)平臺(tái)進(jìn)行管理,還需要通過虛擬服務(wù)器對(duì)vSphere 服務(wù)器搭建的虛擬環(huán)境進(jìn)行管理。在平臺(tái)虛擬環(huán)境中,通過引入不同的管理程序,能夠根據(jù)需要?jiǎng)?chuàng)建的平臺(tái)客戶端,對(duì)每個(gè)虛擬機(jī)進(jìn)行系統(tǒng)化的安裝和分布式協(xié)同管理[3]。為滿足本文設(shè)計(jì)平臺(tái)的分布式需要,選擇將多臺(tái)虛擬機(jī)相連的方式,構(gòu)建一個(gè)分布式拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò),針對(duì)該網(wǎng)絡(luò)當(dāng)中的多臺(tái)虛擬機(jī)協(xié)同和監(jiān)控,主要是通過部署在虛擬機(jī)上的各個(gè)軟件完成,以此實(shí)現(xiàn)對(duì)軟件的自動(dòng)化測(cè)試。在實(shí)際測(cè)試過程中,平臺(tái)用戶可以通過選擇不同的待測(cè)試軟件的屬性和類型,對(duì)軟件進(jìn)行測(cè)試,并同時(shí)配合多臺(tái)虛擬機(jī)實(shí)現(xiàn)協(xié)同[4]。由于當(dāng)前,傳統(tǒng)自動(dòng)化工具和技術(shù)已經(jīng)無法滿足本文平臺(tái)的運(yùn)行需要,因此,本文通過對(duì)多種不同的搭建技術(shù)的選擇,實(shí)現(xiàn)對(duì)平臺(tái)的構(gòu)建。為實(shí)現(xiàn)本文分布式協(xié)同軟件測(cè)試平臺(tái)的設(shè)計(jì)與開發(fā),綜合其各項(xiàng)優(yōu)勢(shì),得出如下搭建技術(shù)應(yīng)用流程:
利用Python 跨平臺(tái)計(jì)算機(jī)程序?qū)崿F(xiàn)對(duì)本文平臺(tái)中各個(gè)虛擬機(jī)的控制、查詢以及相互之間的通信協(xié)同功能;利用vSphere 腳本控制,結(jié)合自動(dòng)化工具對(duì)vSphere 圖像當(dāng)中的元素進(jìn)行抓取。再利用獲取到的控件對(duì)象,對(duì)虛擬機(jī)的自動(dòng)化腳本操作進(jìn)行編寫;利用Jenkins 開源軟件集成工具對(duì)平臺(tái)在運(yùn)行過程中的外部調(diào)用執(zhí)行工作進(jìn)行監(jiān)控,將平臺(tái)虛擬機(jī)上的操作根據(jù)Jenkins 能夠識(shí)別的格式進(jìn)行編寫,并在軟件測(cè)試過程中,通過調(diào)取相應(yīng)的指令執(zhí)行自動(dòng)化腳本;利用Power CLI 命令行工具通過技術(shù)開發(fā)官方提供的接口,對(duì)vSphere 服務(wù)器在運(yùn)行過程中的各項(xiàng)自動(dòng)化行為進(jìn)行管理。
根據(jù)軟件測(cè)試需要,本文構(gòu)建的分布式協(xié)同軟件測(cè)試平臺(tái)整體框架結(jié)構(gòu)如圖1所示。
圖1:分布式協(xié)同軟件測(cè)試平臺(tái)整體框架結(jié)構(gòu)
由圖1可知,本文分布式協(xié)同軟件測(cè)試平臺(tái)當(dāng)中包含了一個(gè)用于進(jìn)行網(wǎng)絡(luò)互連的Server 服務(wù)器和若干個(gè)sSphere 用戶、一個(gè)vSphere 服務(wù)器,一個(gè)或多個(gè)資源服務(wù)器。其中vSphere 服務(wù)器是本文設(shè)計(jì)的測(cè)試平臺(tái)的控制中心,主要用于對(duì)集群當(dāng)中各個(gè)虛擬機(jī)傳輸?shù)南鄳?yīng)管理指令進(jìn)行發(fā)送[5]。需要在本文測(cè)試平臺(tái)中進(jìn)行測(cè)試的軟件,需要在腳本執(zhí)行要求的自動(dòng)化測(cè)試環(huán)境當(dāng)中,按照不同的部署結(jié)合Power CLI 命令行工具,將其傳輸?shù)綄?duì)應(yīng)的虛擬機(jī)當(dāng)中。同時(shí),測(cè)試過程中,用于協(xié)同多個(gè)虛擬機(jī)的程序也同樣需要部署在相應(yīng)的虛擬機(jī)當(dāng)中。并且,Resource 資源服務(wù)器還需要為軟件處理環(huán)境提供所需的軟件安裝包、工具安裝包以及自動(dòng)化腳本等相關(guān)內(nèi)容的代碼。
由于本文分布式協(xié)同軟件測(cè)試平臺(tái)的主要應(yīng)用場(chǎng)所是常見的各類網(wǎng)絡(luò)環(huán)境,因此在測(cè)試過程中為了保證軟件的安全性,防止其內(nèi)部敏感信息泄露,本文還需要對(duì)測(cè)試用戶的敏感信息進(jìn)行安全防護(hù),以此保證軟件公司的利益。在控制各個(gè)虛擬機(jī)進(jìn)行對(duì)軟件的測(cè)試時(shí),設(shè)置兩個(gè)需要進(jìn)行身份驗(yàn)證的模塊。第一個(gè)模塊設(shè)置在與vSphere服務(wù)器連接的位置,用戶在本文測(cè)試平臺(tái)上,無論是通過圖形界面登錄,還是通過控制命令的形式登錄,都需要進(jìn)行vSphere用戶認(rèn)證。第二個(gè)模塊設(shè)置在Master 程序在執(zhí)行相應(yīng)測(cè)試指令過程中,需要由用戶提供當(dāng)前測(cè)試設(shè)備以及目標(biāo)設(shè)備的操作用戶認(rèn)證。同時(shí),由于登錄內(nèi)容也屬于用戶的敏感信息,因此考慮到登錄賬戶的安全問題,應(yīng)當(dāng)選擇安全級(jí)別較高的網(wǎng)絡(luò)環(huán)境作為登錄環(huán)境,并且在用戶輸入相應(yīng)賬號(hào)和密碼時(shí),不以明文的形式顯示、存儲(chǔ)和傳輸。同時(shí),為了進(jìn)一步保證用戶敏感信息的安全,本文引入證書認(rèn)證的方式,對(duì)用戶敏感信息進(jìn)行二次保護(hù)。在平臺(tái)部署階段,通過輸入密碼的方式生成相應(yīng)的加密證書。利用本文測(cè)試平臺(tái)當(dāng)中的Master 程序,根據(jù)證書和用戶創(chuàng)建的內(nèi)部證書對(duì)象,對(duì)后續(xù)測(cè)試過程中的相應(yīng)指令進(jìn)行驗(yàn)證,以此確保用戶敏感信息的安全性。
表1:兩種測(cè)試平臺(tái)實(shí)驗(yàn)結(jié)果對(duì)比表
為進(jìn)一步提高本文分布式協(xié)同軟件測(cè)試平臺(tái)的測(cè)試效率,在對(duì)平臺(tái)協(xié)同測(cè)試環(huán)境進(jìn)行部署時(shí),通過引入Jenkins 技術(shù),實(shí)現(xiàn)開源項(xiàng)目的應(yīng)用平臺(tái)設(shè)計(jì),以及豐富本文測(cè)試平臺(tái)的功能,并實(shí)現(xiàn)插件的可擴(kuò)展性,方便后續(xù)測(cè)試平臺(tái)的集成和交付。選擇本文測(cè)試平臺(tái)框架當(dāng)中相對(duì)穩(wěn)定的虛擬機(jī),在其中引入帶有Jenkins 技術(shù)的服務(wù)器,在利用Jenkins 技術(shù)對(duì)虛擬機(jī)上部署的客戶端管理的過程中,可通過Jenkins 對(duì)服務(wù)器中創(chuàng)建的各類任務(wù)進(jìn)行管理,以此完成對(duì)虛擬機(jī)的管理、軟件安裝以及相應(yīng)腳本的運(yùn)行。引入Jenkins 技術(shù),實(shí)現(xiàn)自動(dòng)化測(cè)試環(huán)境部署的主要流程為:
第一步,對(duì)測(cè)試部署環(huán)境當(dāng)中的虛擬機(jī)執(zhí)行關(guān)機(jī)動(dòng)作;
第二步,對(duì)平臺(tái)當(dāng)中的虛擬機(jī)執(zhí)行鏡像恢復(fù)操作。在鏡像設(shè)置當(dāng)中主要包含:?jiǎn)⒂弥貑⒑笞詣?dòng)登錄模塊、禁用重啟后輸入關(guān)機(jī)原因?qū)υ捒?、版本更新等?/p>
第三步,對(duì)測(cè)試平臺(tái)部署環(huán)境當(dāng)中的虛擬機(jī)執(zhí)行開機(jī)操作;
第四步,根據(jù)不同軟件的測(cè)試需要,在相應(yīng)的虛擬機(jī)當(dāng)中安裝軟件,并設(shè)置相應(yīng)的配置。安裝的軟件除了包括需要進(jìn)行測(cè)試的軟件以外,還應(yīng)當(dāng)包括支持自動(dòng)化測(cè)試的軟件平臺(tái);
第五步,對(duì)平臺(tái)部署環(huán)境當(dāng)中完成部署的虛擬機(jī)執(zhí)行重啟操作;
第六步,將測(cè)試平臺(tái)當(dāng)中相應(yīng)的虛擬機(jī)進(jìn)行協(xié)同控制;
第七步,啟動(dòng)平臺(tái)當(dāng)中的自動(dòng)化測(cè)試腳本。
根據(jù)上述操作,完成對(duì)本文測(cè)試平臺(tái)的自動(dòng)化測(cè)試環(huán)境部署。
為驗(yàn)證本文設(shè)計(jì)的分布式協(xié)同軟件測(cè)試平臺(tái)在實(shí)際應(yīng)用中的效果,選取常見的幾種軟件作為待測(cè)對(duì)象,分別為Redundancy Client12.0、View FV Client13.5、Talk Wisn Server 10.8 等。分別利用本文設(shè)計(jì)的測(cè)試平臺(tái)和傳統(tǒng)測(cè)試平臺(tái)對(duì)上述多種類型軟件進(jìn)行測(cè)試,為了保證實(shí)驗(yàn)的客觀性,將兩種平臺(tái)同時(shí)搭建在Windows 9 系統(tǒng)當(dāng)中,并保證在搭建的過程中,除本文設(shè)計(jì)的各個(gè)條件存在差異外,其余可能影響實(shí)驗(yàn)結(jié)果的條件均保持一致。對(duì)比兩種測(cè)試平臺(tái)在進(jìn)行不同測(cè)試用例時(shí)的耗時(shí)情況??紤]到在實(shí)驗(yàn)過程中可能會(huì)受到周圍影響因素的干擾,因此為了進(jìn)一步保證本文實(shí)驗(yàn)的公正性,每種測(cè)試用例均在兩種平臺(tái)上執(zhí)行5 次,并取5 次的平均值作為結(jié)果。完成上述操作后,將實(shí)驗(yàn)結(jié)果進(jìn)行記錄,并繪制成如表1所示的實(shí)驗(yàn)結(jié)果對(duì)比表。
表1中的測(cè)試用例A~E 分別表示為:?jiǎn)?dòng)主服務(wù)器,保持備用服務(wù)器運(yùn)行;同時(shí)啟動(dòng)主服務(wù)器和備用服務(wù)器;啟動(dòng)備用服務(wù)器,保持主服務(wù)器正常運(yùn)行;斷開主服務(wù)器;斷開備用服務(wù)器。由表1中的數(shù)據(jù)可以看出,本文測(cè)試平臺(tái)的耗時(shí)在各個(gè)測(cè)試用例當(dāng)中均明顯小于傳統(tǒng)測(cè)試平臺(tái)的耗時(shí)。在實(shí)驗(yàn)過程中發(fā)現(xiàn),造成這一實(shí)驗(yàn)結(jié)果產(chǎn)生的主要原因是本文測(cè)試平臺(tái)在測(cè)試過程中采用了判斷目標(biāo)出現(xiàn)或消失的方式替代傳統(tǒng)測(cè)試平臺(tái)的等時(shí)操作,因此時(shí)間成本得到明顯的降低。因此,通過實(shí)驗(yàn)進(jìn)一步證明,本文提出的分布式協(xié)同軟件測(cè)試平臺(tái)在實(shí)際應(yīng)用中能夠有效提高測(cè)試平臺(tái)的響應(yīng)速度。
針對(duì)復(fù)雜的分布式軟件在進(jìn)行測(cè)試過程中需要多臺(tái)設(shè)備協(xié)同配合的問題,本文提出了一種全新的分布式協(xié)同軟件測(cè)試平臺(tái),并通過實(shí)驗(yàn)證明了該平臺(tái)的應(yīng)用效果。將該測(cè)試平臺(tái)應(yīng)用于實(shí)際,能夠有效提高對(duì)軟件的測(cè)試效率,值得在軟件企業(yè)中廣泛應(yīng)用。