陳琦
(國電南瑞研究院 江蘇省南京市 210000)
在軟件開發過程中,利用合理的軟件測試平臺,能夠在極大程度上提升軟件整體的測試效率。因此,當前相關領域的研究人員正逐步通過各類現代化的技術手段,構建自動化的軟件測試平臺,對于未來軟件企業的建設和發展而言具有十分重要的價值意義[1]。當前,現有軟件測試平臺已經能實現對多種不同類型軟件協同測試的功能,并做到對軟件測試整個過程中的跟蹤和管理。傳統軟件測試平臺在開發階段,大多采用虛擬機技術實現對平臺自動化測試環境以及監控環境的構建[2]。但這種方法在實際應用過程中,會產生更加高昂的開發成本,并且耗時較長,平臺在日常運行過程中很難得到維護等問題。工業自動化領域中,大多數用戶需要基于分布式計算環境,進行軟件測試,用戶數量龐大,功能全面而復雜,這進一步導致現有的軟件測試平臺不能滿足用戶需求。基于此,本文開展分布式協同軟件測試平臺研究。
為實現對分布式協同軟件測試平臺的搭建,首先根據平臺的運行特點,選擇為其提供運行環境的vSphere 服務器。同時,為方便對平臺進行管理,還需要通過虛擬服務器對vSphere 服務器搭建的虛擬環境進行管理。在平臺虛擬環境中,通過引入不同的管理程序,能夠根據需要創建的平臺客戶端,對每個虛擬機進行系統化的安裝和分布式協同管理[3]。為滿足本文設計平臺的分布式需要,選擇將多臺虛擬機相連的方式,構建一個分布式拓撲結構網絡,針對該網絡當中的多臺虛擬機協同和監控,主要是通過部署在虛擬機上的各個軟件完成,以此實現對軟件的自動化測試。在實際測試過程中,平臺用戶可以通過選擇不同的待測試軟件的屬性和類型,對軟件進行測試,并同時配合多臺虛擬機實現協同[4]。由于當前,傳統自動化工具和技術已經無法滿足本文平臺的運行需要,因此,本文通過對多種不同的搭建技術的選擇,實現對平臺的構建。為實現本文分布式協同軟件測試平臺的設計與開發,綜合其各項優勢,得出如下搭建技術應用流程:
利用Python 跨平臺計算機程序實現對本文平臺中各個虛擬機的控制、查詢以及相互之間的通信協同功能;利用vSphere 腳本控制,結合自動化工具對vSphere 圖像當中的元素進行抓取。再利用獲取到的控件對象,對虛擬機的自動化腳本操作進行編寫;利用Jenkins 開源軟件集成工具對平臺在運行過程中的外部調用執行工作進行監控,將平臺虛擬機上的操作根據Jenkins 能夠識別的格式進行編寫,并在軟件測試過程中,通過調取相應的指令執行自動化腳本;利用Power CLI 命令行工具通過技術開發官方提供的接口,對vSphere 服務器在運行過程中的各項自動化行為進行管理。
根據軟件測試需要,本文構建的分布式協同軟件測試平臺整體框架結構如圖1所示。

圖1:分布式協同軟件測試平臺整體框架結構
由圖1可知,本文分布式協同軟件測試平臺當中包含了一個用于進行網絡互連的Server 服務器和若干個sSphere 用戶、一個vSphere 服務器,一個或多個資源服務器。其中vSphere 服務器是本文設計的測試平臺的控制中心,主要用于對集群當中各個虛擬機傳輸的相應管理指令進行發送[5]。需要在本文測試平臺中進行測試的軟件,需要在腳本執行要求的自動化測試環境當中,按照不同的部署結合Power CLI 命令行工具,將其傳輸到對應的虛擬機當中。同時,測試過程中,用于協同多個虛擬機的程序也同樣需要部署在相應的虛擬機當中。并且,Resource 資源服務器還需要為軟件處理環境提供所需的軟件安裝包、工具安裝包以及自動化腳本等相關內容的代碼。
由于本文分布式協同軟件測試平臺的主要應用場所是常見的各類網絡環境,因此在測試過程中為了保證軟件的安全性,防止其內部敏感信息泄露,本文還需要對測試用戶的敏感信息進行安全防護,以此保證軟件公司的利益。在控制各個虛擬機進行對軟件的測試時,設置兩個需要進行身份驗證的模塊。第一個模塊設置在與vSphere服務器連接的位置,用戶在本文測試平臺上,無論是通過圖形界面登錄,還是通過控制命令的形式登錄,都需要進行vSphere用戶認證。第二個模塊設置在Master 程序在執行相應測試指令過程中,需要由用戶提供當前測試設備以及目標設備的操作用戶認證。同時,由于登錄內容也屬于用戶的敏感信息,因此考慮到登錄賬戶的安全問題,應當選擇安全級別較高的網絡環境作為登錄環境,并且在用戶輸入相應賬號和密碼時,不以明文的形式顯示、存儲和傳輸。同時,為了進一步保證用戶敏感信息的安全,本文引入證書認證的方式,對用戶敏感信息進行二次保護。在平臺部署階段,通過輸入密碼的方式生成相應的加密證書。利用本文測試平臺當中的Master 程序,根據證書和用戶創建的內部證書對象,對后續測試過程中的相應指令進行驗證,以此確保用戶敏感信息的安全性。

表1:兩種測試平臺實驗結果對比表
為進一步提高本文分布式協同軟件測試平臺的測試效率,在對平臺協同測試環境進行部署時,通過引入Jenkins 技術,實現開源項目的應用平臺設計,以及豐富本文測試平臺的功能,并實現插件的可擴展性,方便后續測試平臺的集成和交付。選擇本文測試平臺框架當中相對穩定的虛擬機,在其中引入帶有Jenkins 技術的服務器,在利用Jenkins 技術對虛擬機上部署的客戶端管理的過程中,可通過Jenkins 對服務器中創建的各類任務進行管理,以此完成對虛擬機的管理、軟件安裝以及相應腳本的運行。引入Jenkins 技術,實現自動化測試環境部署的主要流程為:
第一步,對測試部署環境當中的虛擬機執行關機動作;
第二步,對平臺當中的虛擬機執行鏡像恢復操作。在鏡像設置當中主要包含:啟用重啟后自動登錄模塊、禁用重啟后輸入關機原因對話框、版本更新等;
第三步,對測試平臺部署環境當中的虛擬機執行開機操作;
第四步,根據不同軟件的測試需要,在相應的虛擬機當中安裝軟件,并設置相應的配置。安裝的軟件除了包括需要進行測試的軟件以外,還應當包括支持自動化測試的軟件平臺;
第五步,對平臺部署環境當中完成部署的虛擬機執行重啟操作;
第六步,將測試平臺當中相應的虛擬機進行協同控制;
第七步,啟動平臺當中的自動化測試腳本。
根據上述操作,完成對本文測試平臺的自動化測試環境部署。
為驗證本文設計的分布式協同軟件測試平臺在實際應用中的效果,選取常見的幾種軟件作為待測對象,分別為Redundancy Client12.0、View FV Client13.5、Talk Wisn Server 10.8 等。分別利用本文設計的測試平臺和傳統測試平臺對上述多種類型軟件進行測試,為了保證實驗的客觀性,將兩種平臺同時搭建在Windows 9 系統當中,并保證在搭建的過程中,除本文設計的各個條件存在差異外,其余可能影響實驗結果的條件均保持一致。對比兩種測試平臺在進行不同測試用例時的耗時情況??紤]到在實驗過程中可能會受到周圍影響因素的干擾,因此為了進一步保證本文實驗的公正性,每種測試用例均在兩種平臺上執行5 次,并取5 次的平均值作為結果。完成上述操作后,將實驗結果進行記錄,并繪制成如表1所示的實驗結果對比表。
表1中的測試用例A~E 分別表示為:啟動主服務器,保持備用服務器運行;同時啟動主服務器和備用服務器;啟動備用服務器,保持主服務器正常運行;斷開主服務器;斷開備用服務器。由表1中的數據可以看出,本文測試平臺的耗時在各個測試用例當中均明顯小于傳統測試平臺的耗時。在實驗過程中發現,造成這一實驗結果產生的主要原因是本文測試平臺在測試過程中采用了判斷目標出現或消失的方式替代傳統測試平臺的等時操作,因此時間成本得到明顯的降低。因此,通過實驗進一步證明,本文提出的分布式協同軟件測試平臺在實際應用中能夠有效提高測試平臺的響應速度。
針對復雜的分布式軟件在進行測試過程中需要多臺設備協同配合的問題,本文提出了一種全新的分布式協同軟件測試平臺,并通過實驗證明了該平臺的應用效果。將該測試平臺應用于實際,能夠有效提高對軟件的測試效率,值得在軟件企業中廣泛應用。