周有志 杜明
摘 要:性能測(cè)試是一種昂貴且耗時(shí)的測(cè)試活動(dòng),是評(píng)估系統(tǒng)性能至關(guān)重要的手段。在傳統(tǒng)測(cè)試環(huán)境下進(jìn)行性能測(cè)試存在冗余測(cè)試次數(shù)增多、性能瓶頸定位困難等問(wèn)題,人們開(kāi)始思考和研究如何利用當(dāng)前流行的云計(jì)算技術(shù)來(lái)提高性能測(cè)試的效率。在本文中,我們研究了云環(huán)境下性能測(cè)試技術(shù)的最新研究成果,設(shè)計(jì)并實(shí)現(xiàn)了基于CloudStack云平臺(tái)的自動(dòng)化性能測(cè)試原型系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,在云環(huán)境下的性能測(cè)試,能顯著簡(jiǎn)化用戶(hù)的測(cè)試工作,并具有與傳統(tǒng)測(cè)試環(huán)境下相一致的性能測(cè)試結(jié)果。
關(guān)鍵詞:云計(jì)算;云測(cè)試;性能測(cè)試;TaaS;CloudStack
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-2163(2015)02-
Performance Testing Research and Application on Cloud Environment
ZHOU Youzhi,DU Ming
(School of Computer Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: Performance testing is an expensive and time-consuming testing activities and is a vital tool to assess the system performance. In the traditional test environment to test the presence of increased redundancy performance test times, difficult to locate performance bottlenecks and other issues, people began to think and study how to use the current popular cloud computing technologies to improve the efficiency of performance testing. In this paper, the latest research of performance testing technology in cloud environment is presented and a prototype system of automated performance testing based on CloudStack cloud platform is designed and implemented. Experimental results show that, in a cloud environment performance tests, the proposed method can significantly simplify the user testing, and having consistent with conventional test environment performance test results.
Keywords: Cloud Computing; Cloud Testing; Performance Testing; TaaS; CloudStack
0 引 言
隨著計(jì)算機(jī)和網(wǎng)絡(luò)相關(guān)技術(shù)的飛速發(fā)展,使得當(dāng)今軟件系統(tǒng)的規(guī)模越來(lái)越大,復(fù)雜度越來(lái)越高。軟件測(cè)試是保證軟件質(zhì)量的有效技術(shù)策略,而性能測(cè)試則是軟件測(cè)試的一個(gè)重要組成部分。性能測(cè)試是指,通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試; 是驗(yàn)證系統(tǒng)的性能是否滿(mǎn)足用戶(hù)的功能需求,是否達(dá)到設(shè)計(jì)目的,是否可交付的主要手段。一般來(lái)說(shuō),軟件系統(tǒng)性能的好壞,決定著企業(yè)對(duì)外向用戶(hù)提供服務(wù)的質(zhì)量?jī)?yōu)劣,關(guān)系著一個(gè)企業(yè)經(jīng)營(yíng)的存亡成敗。
性能測(cè)試是一種資源密集型測(cè)試活動(dòng)。對(duì)于軟件系統(tǒng)的性能測(cè)試,在傳統(tǒng)測(cè)試環(huán)境下,每次都需要花費(fèi)巨資去搭建和拆除測(cè)試環(huán)境,如:自動(dòng)化測(cè)試工具安裝與配置,負(fù)載機(jī)配置,服務(wù)器安裝與配置等。此外,軟件系統(tǒng)在使用過(guò)程中,其現(xiàn)實(shí)的運(yùn)行環(huán)境發(fā)生有一定變化,而測(cè)試人員每次手動(dòng)配置的測(cè)試環(huán)境卻是一成不變的,所以傳統(tǒng)模式下的性能測(cè)試實(shí)際上很難得到被測(cè)系統(tǒng)在不同配置和網(wǎng)絡(luò)變化環(huán)境下的性能表現(xiàn)。
當(dāng)今,計(jì)算機(jī)軟件在社會(huì)各行業(yè)中已經(jīng)發(fā)揮了關(guān)鍵性的支配作用,用戶(hù)對(duì)于安全、可靠、方便的應(yīng)用軟件的需求也呈現(xiàn)上升趨勢(shì)。中小型企業(yè)由于資源有限,并不具有進(jìn)一步測(cè)試、分析、調(diào)優(yōu)系統(tǒng)的能力,這就使得其在市場(chǎng)競(jìng)爭(zhēng)中必將處于不利地位。相反,有些大型企業(yè)內(nèi)部卻存在著大量的服務(wù)器資源只為一些軟件系統(tǒng)的特定場(chǎng)景提供服務(wù)的具體事實(shí),這就使得彼此間閑置的系統(tǒng)資源并不能跨越融合,進(jìn)而導(dǎo)致資源的嚴(yán)重浪費(fèi)。
云計(jì)算是一種能夠通過(guò)網(wǎng)絡(luò)以便利快捷、按需付費(fèi)的方式獲取計(jì)算資源,并提高其可用性的模式,這些資源來(lái)自一個(gè)共享的、可配置的資源池,并可以高效、自動(dòng)的方式進(jìn)行獲取和釋放[1]。云計(jì)算的按需服務(wù)、泛化接入、資源池化、彈性服務(wù)、可計(jì)費(fèi)服務(wù)等特點(diǎn),使得用戶(hù)可以在云環(huán)境下構(gòu)建智能升級(jí)的性能測(cè)試平臺(tái),并通過(guò)網(wǎng)絡(luò)為所需用戶(hù)提供在線(xiàn)的性能測(cè)試服務(wù),從而簡(jiǎn)化性能測(cè)試過(guò)程,提高性能測(cè)試的效率。
本文基于開(kāi)源的云計(jì)算平臺(tái)CloudStack,設(shè)計(jì)并實(shí)現(xiàn)了針對(duì)B/S架構(gòu)應(yīng)用軟件進(jìn)行性能測(cè)試的原型系統(tǒng),證明了對(duì)部署在云環(huán)境中的軟件進(jìn)行性能測(cè)試的可行性,重點(diǎn)對(duì)比分析在相同配置條件下傳統(tǒng)測(cè)試環(huán)境和云測(cè)試環(huán)境性能測(cè)試結(jié)果的異同。
1 相關(guān)工作
當(dāng)前,學(xué)術(shù)界的研究方向主要集中在基于云計(jì)算技術(shù)對(duì)軟件的功能測(cè)試,很少有學(xué)者關(guān)注云環(huán)境下的性能測(cè)試技術(shù)研究。
文獻(xiàn)[2]從被測(cè)軟件的特征和所執(zhí)行的測(cè)試類(lèi)型這兩個(gè)方面綜述了何時(shí)適合將軟件測(cè)試遷移到云環(huán)境下進(jìn)行,其中在測(cè)試類(lèi)型中提出,將云計(jì)算技術(shù)與性能測(cè)試工具相結(jié)合構(gòu)建云測(cè)試系統(tǒng)能更好地按需模擬用戶(hù)負(fù)載對(duì)被測(cè)程序進(jìn)行性能測(cè)試,但卻并未展開(kāi)具體工作。文獻(xiàn)[3]通過(guò)對(duì)從事不同軟件領(lǐng)域的測(cè)試服務(wù)提供商和使用者進(jìn)行調(diào)研,而全面論述了對(duì)軟件測(cè)試是否遷移到云環(huán)境中關(guān)鍵的影響因素。同時(shí),文獻(xiàn)[4]又提出了Cloud9模型,一個(gè)測(cè)試即服務(wù)平臺(tái)原型系統(tǒng),使用并行符號(hào)執(zhí)行引擎技術(shù),利用商業(yè)化云平臺(tái)(Amazon EC2)中的海量資源解決了以往符號(hào)測(cè)試中CPU和內(nèi)存資源不足,以及無(wú)法應(yīng)用于大型軟件系統(tǒng)測(cè)試的缺陷,由此而提高了符號(hào)測(cè)試的能力,并可為用戶(hù)提供方便、快捷、成本低廉的測(cè)試服務(wù)。文獻(xiàn)[5-6]則提出了D-Cloud模型,在云環(huán)境下,以改進(jìn)的、帶有錯(cuò)誤或異常植入功能的虛擬機(jī)實(shí)例模擬真實(shí)的物理節(jié)點(diǎn),再由云平臺(tái)Eucalyptus管理、分配和執(zhí)行測(cè)試任務(wù),即為大型并行分布式軟件系統(tǒng)一旦部署就難以測(cè)試的問(wèn)題提供了新的解決思路。還有,文獻(xiàn)[7]提出了一個(gè)測(cè)試框架HadoopUnit,這是對(duì)原有JUnit測(cè)試框架的擴(kuò)展,而且將云計(jì)算技術(shù)與Hadoop技術(shù)相結(jié)合,使得傳統(tǒng)的單元測(cè)試過(guò)程可以在分布式的云環(huán)境下并行運(yùn)行,提高了單元測(cè)試效率。此外,另有文獻(xiàn)[8]通過(guò)利用云計(jì)算提供的超大規(guī)模測(cè)試資源為網(wǎng)絡(luò)管理系統(tǒng)構(gòu)建測(cè)試環(huán)境,有效地解決了傳統(tǒng)測(cè)試環(huán)境下對(duì)大規(guī)模軟件進(jìn)行性能測(cè)試所存在的測(cè)試資源不足和測(cè)試環(huán)境搭建困難的問(wèn)題,并且進(jìn)一步通過(guò)測(cè)試實(shí)驗(yàn)證明了這種方法的可行性。
以上研究文獻(xiàn),通過(guò)將云計(jì)算技術(shù)與傳統(tǒng)的軟件測(cè)試方法相結(jié)合,對(duì)原有的測(cè)試問(wèn)題和測(cè)試方法作了相關(guān)的拓展和應(yīng)用,其共同特點(diǎn)是利用云計(jì)算技術(shù)解決了被測(cè)軟件在原有測(cè)試環(huán)境下測(cè)試資源不足的問(wèn)題。但是,卻均未考慮和研究如何對(duì)部署在云測(cè)試環(huán)境中的軟件進(jìn)行性能測(cè)試。基于此,本文即開(kāi)展了改進(jìn)式的綜合研究,實(shí)現(xiàn)過(guò)程如下。
2 云環(huán)境下性能測(cè)試
2.1 測(cè)試環(huán)境部署
大體上,按照性能測(cè)試的目標(biāo),將性能測(cè)試可以劃分為負(fù)載測(cè)試、壓力測(cè)試、并行測(cè)試、可靠性測(cè)試、容量測(cè)試等。在傳統(tǒng)測(cè)試環(huán)境下,利用自動(dòng)化的測(cè)試工具錄制用戶(hù)行為,生成、并編輯形成測(cè)試腳本,再分配到測(cè)試代理機(jī)上運(yùn)行,以此來(lái)模擬真實(shí)用戶(hù)的行為。隨著被測(cè)系統(tǒng)規(guī)模和復(fù)查度的擴(kuò)大,傳統(tǒng)的性能測(cè)試面臨著如下問(wèn)題:(1)測(cè)試難度增加;(2)冗余測(cè)試次數(shù)增多;(3)很難定位性能瓶頸。為此,若將對(duì)軟件的性能測(cè)試過(guò)程遷移到云環(huán)境中來(lái),則是云計(jì)算技術(shù)在軟件測(cè)試領(lǐng)域的一種新的應(yīng)用。
如圖1所示,用戶(hù)對(duì)軟件系統(tǒng)的性能測(cè)試活動(dòng)存在3種部署情況。在圖1(a)中,是傳統(tǒng)測(cè)試環(huán)境下的性能測(cè)試部署拓?fù)鋱D,被測(cè)軟件和測(cè)試代理機(jī)全都部署在同一個(gè)局域網(wǎng)內(nèi)。圖1(b)和圖1(c)是基于云計(jì)算性能測(cè)試的兩種部署拓?fù)鋱D。在云環(huán)境下,云計(jì)算作為一種可以快速獲取海量測(cè)試資源的有效方式,已經(jīng)參與到性能測(cè)試活動(dòng)的各階段中。
如圖1(b)所示,測(cè)試代理機(jī)部署在云環(huán)境中,而將被測(cè)軟件部署在局域網(wǎng)環(huán)境中,有效利用云計(jì)算提供的資源對(duì)云環(huán)境以外的其他軟件進(jìn)行性能測(cè)試,為其搭建廉價(jià)、快捷、高效的測(cè)試環(huán)境。在圖1(c)中,被測(cè)軟件部署在云環(huán)境中,這是針對(duì)部署在云環(huán)境中的軟件進(jìn)行性能測(cè)試。此種部署模式,支持面向需求的軟件測(cè)試服務(wù)市場(chǎng),云計(jì)算服務(wù)提供商可以通過(guò)網(wǎng)絡(luò)為具有測(cè)試服務(wù)需要的個(gè)人或企業(yè)提供在線(xiàn)的軟件測(cè)試服務(wù)(TaaS)。
在本文中,研究的是基于圖1(c)中性能測(cè)試環(huán)境的部署模式,也就是針對(duì)部署在云環(huán)境中的軟件進(jìn)行性能測(cè)試相關(guān)技術(shù)的研究。
(a)局域網(wǎng)-局域網(wǎng)
(a)LAN-LAN
(b)局域網(wǎng)-云環(huán)境
(b)LAN- Cloud Environment
(c)局域網(wǎng)-云環(huán)境(被測(cè)軟件在云環(huán)境中)
(c) LAN- Cloud Environment(The software under test?in a cloud environment)
圖1測(cè)試環(huán)境部署模式
Fig.1 Test environment deployment mode
2.2兩種模式對(duì)比
從圖1中,根據(jù)在傳統(tǒng)測(cè)試環(huán)境下和云環(huán)境下測(cè)試環(huán)境部署模式的不同,可以從如下七個(gè)方面分析這兩種測(cè)試環(huán)境部署之間的差異性,具體如表1所示。
表1差異性分析
Tab.1 Difference analysis
角度
傳統(tǒng)性能測(cè)試
云環(huán)境下性能測(cè)試
基礎(chǔ)設(shè)施
企業(yè)自行購(gòu)買(mǎi)各種測(cè)試基礎(chǔ)設(shè)施
由云測(cè)試服務(wù)提供商提供測(cè)試基礎(chǔ)設(shè)施服務(wù)
價(jià)格模型
一次性付費(fèi),在項(xiàng)目初期投入較大
按需付費(fèi),可以按照被測(cè)項(xiàng)目規(guī)模、被測(cè)目標(biāo)、被測(cè)時(shí)間等付費(fèi)
測(cè)試人員要求
企業(yè)需要投入較多資源對(duì)測(cè)試人員進(jìn)行專(zhuān)業(yè)技能培訓(xùn)
由云測(cè)試服務(wù)提供商配置專(zhuān)業(yè)的測(cè)試人員,無(wú)需用戶(hù)考慮
測(cè)試過(guò)程管理
分散管理模式,參差不齊的軟件質(zhì)量保證
集中管理模式,統(tǒng)一的軟件質(zhì)量保證
安全模型
企業(yè)內(nèi)部管理,安全系數(shù)高,安全機(jī)制簡(jiǎn)單
共享公共云測(cè)試平臺(tái),需要測(cè)試服務(wù)需求方、云測(cè)試服務(wù)提供商等多方參與,安全機(jī)制復(fù)雜
測(cè)試環(huán)境部署
手工配置和分配測(cè)試資源
云計(jì)算平臺(tái)動(dòng)態(tài)分配測(cè)試資源,自動(dòng)化配置測(cè)試環(huán)境
商業(yè)擴(kuò)展
增加軟硬件資源,易產(chǎn)生資源閑置,可擴(kuò)展性差
有效利用云計(jì)算平臺(tái)資源池化,可擴(kuò)展性強(qiáng)
3云環(huán)境下性能測(cè)試平臺(tái)
3.1 云測(cè)試平臺(tái)架構(gòu)
云環(huán)境下性能測(cè)試系統(tǒng)基于B/S架構(gòu),主要由三層構(gòu)成,分別為:用戶(hù)接口層、任務(wù)管理層和云資源服務(wù)層,其總體架構(gòu)如圖2所示。
圖2云測(cè)試平臺(tái)架構(gòu)
Fig.2 Cloud testing platform architecture
由圖2可知,云測(cè)試平臺(tái)架構(gòu)中各層級(jí)的功能實(shí)現(xiàn)可描述如下:
(1)用戶(hù)接口層:是用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)云測(cè)試平臺(tái)的入口,該層主要用于與用戶(hù)交互,其功能將表述為:① 提交性能測(cè)試腳本;② 提交性能測(cè)試環(huán)境的資源需求描述文件;③ 跟蹤性能測(cè)試的執(zhí)行過(guò)程;④ 可視化展示測(cè)試結(jié)果,下載測(cè)試報(bào)告。
(2)任務(wù)管理層:該層主要包括四大模塊,分別是測(cè)試環(huán)境自動(dòng)化配置模塊,測(cè)試任務(wù)調(diào)度模塊,測(cè)試任務(wù)監(jiān)控模塊和云計(jì)算服務(wù)管理模塊。在性能測(cè)試任務(wù)執(zhí)行前,該層首先需要根據(jù)測(cè)用戶(hù)提交的測(cè)試環(huán)境資源描述文件,通過(guò)與云資源服務(wù)層交互,自動(dòng)化配置性能測(cè)試環(huán)境,并為測(cè)試任務(wù)提供不同并行粒度的調(diào)度服務(wù)。在測(cè)試任務(wù)執(zhí)行時(shí),負(fù)責(zé)監(jiān)控測(cè)試任務(wù)的狀態(tài),還可實(shí)時(shí)反饋給用戶(hù)。而在測(cè)試任務(wù)執(zhí)行完畢之后,對(duì)測(cè)試結(jié)果進(jìn)行分析統(tǒng)計(jì),同時(shí)則為用戶(hù)生成性能測(cè)試報(bào)告,供用戶(hù)下載和查看。
(3)云資源服務(wù)層:本文基于開(kāi)源的云計(jì)算平臺(tái)CloudStack,對(duì)各種物理硬件資源集中管理,通過(guò)虛擬化技術(shù)(KVM)為測(cè)試用戶(hù)提供計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)以及其他資源,利于用戶(hù)能夠部署操作系統(tǒng)、被測(cè)軟件和其他軟件。該層根據(jù)任務(wù)管理層的指令,選擇合適的鏡像文件,創(chuàng)建虛擬機(jī)實(shí)例,并把測(cè)試任務(wù)腳本分發(fā)到各虛擬機(jī)實(shí)例上,再將虛擬機(jī)充當(dāng)負(fù)載機(jī),執(zhí)行測(cè)試腳本,對(duì)被測(cè)軟件進(jìn)行性能測(cè)試。而在測(cè)試任務(wù)結(jié)束后,銷(xiāo)毀虛擬機(jī)實(shí)例,釋放其所占用的資源。
3.2 云環(huán)境下性能測(cè)試執(zhí)行流程
在該云測(cè)試平臺(tái)下,性能測(cè)試執(zhí)行流程如圖3所示。為了減少自動(dòng)化配置測(cè)試環(huán)境所需要的時(shí)間,云測(cè)試平臺(tái)將會(huì)維護(hù)一份常用的測(cè)試資源模板庫(kù),具體表現(xiàn)形式為虛擬機(jī)實(shí)例對(duì)應(yīng)的各種鏡像文件。多數(shù)情況下,每個(gè)鏡像都有一個(gè)資源描述文件,其中包含有安裝時(shí)常用的操作系統(tǒng)和應(yīng)用軟件。
圖3性能測(cè)試執(zhí)行流程
Fig.3 Performance testing execution process
3.3 技術(shù)方案
本文基于B/S架構(gòu),搭建云環(huán)境下的性能測(cè)試平臺(tái)。其綜合設(shè)計(jì)方案具體如下:
(1)用戶(hù)接口層:采用JSP、AJAX等技術(shù)開(kāi)發(fā),主要負(fù)責(zé)與云測(cè)試平臺(tái)用戶(hù)交互。
(2)任務(wù)管理層:主要使用Java、MySQL和SSH框架等技術(shù)實(shí)施研發(fā),并負(fù)責(zé)測(cè)試環(huán)境自動(dòng)配置、測(cè)試任務(wù)調(diào)度、測(cè)試執(zhí)行過(guò)程監(jiān)控、測(cè)試結(jié)果回收和生成測(cè)試報(bào)告等功能實(shí)現(xiàn)。
(3)云資源服務(wù)層:主要包括云管理服務(wù)器和云節(jié)點(diǎn)服務(wù)器。基于開(kāi)源的云計(jì)算平臺(tái)CloudStack對(duì)各種物理的軟硬件資源進(jìn)行管控,利用KVM虛擬化技術(shù)在云節(jié)點(diǎn)服務(wù)器上按照鏡像模板生成各種虛擬機(jī),并在云虛擬機(jī)上使用商用的自動(dòng)化性能測(cè)試工具(LoadRunner)執(zhí)行用戶(hù)提交的測(cè)試腳本。
3.4 服務(wù)流程
該云測(cè)試平臺(tái)以用戶(hù)需求為核心,從測(cè)試用戶(hù)的角度出發(fā),使用性能測(cè)試服務(wù)的流程則如圖4所示。具體來(lái)說(shuō),就是用戶(hù)通過(guò)自動(dòng)化性能測(cè)試工具(LoadRunner)錄制或編程語(yǔ)言(C、Java)編寫(xiě)形成測(cè)試腳本,并由云測(cè)試平臺(tái)門(mén)戶(hù)網(wǎng)站上傳測(cè)試腳本和測(cè)試環(huán)境資源描述文件,再經(jīng)過(guò)云測(cè)試平臺(tái)對(duì)上傳文件進(jìn)行分析,由此即為用戶(hù)相應(yīng)性能測(cè)試環(huán)境的配置和搭建,同時(shí)則將測(cè)試腳本分發(fā)到各虛擬機(jī)實(shí)例上運(yùn)作且執(zhí)行,等測(cè)試任務(wù)執(zhí)行結(jié)束,將返回性能測(cè)試結(jié)果,用戶(hù)就可以在門(mén)戶(hù)網(wǎng)站個(gè)人中心處查看或者下載對(duì)應(yīng)的測(cè)試報(bào)告。
圖4服務(wù)流程
Fig.4 Service process
4 實(shí)驗(yàn)
4.1 實(shí)驗(yàn)配置與步驟
基于上圖1(a)和1(c)中性能測(cè)試環(huán)境的兩種部署模式,研究采用JPetStore作為被測(cè)系統(tǒng),分別對(duì)其在兩個(gè)測(cè)試平臺(tái)下的性能測(cè)試結(jié)果進(jìn)行觀察和分析。其中,JpetStore運(yùn)行在Tomcat 7.0中,使用MySQL 5.5.27作為JpetStore的數(shù)據(jù)庫(kù)服務(wù)器。
在傳統(tǒng)性能測(cè)試環(huán)境下,本文采用兩臺(tái)物理機(jī)作為負(fù)載機(jī),一臺(tái)物理機(jī)作為控制機(jī)和部署機(jī)。云環(huán)境下,在CloudStack計(jì)算節(jié)點(diǎn)服務(wù)器上,創(chuàng)建3個(gè)虛擬機(jī)實(shí)例,其中兩個(gè)虛擬機(jī)作為負(fù)載機(jī),另一個(gè)作為部署機(jī)。物理機(jī)的配置為:CPU,雙核2G;內(nèi)存,2G;操作系統(tǒng),Ubuntu 12.04。
通過(guò)對(duì)JPetStore架構(gòu)和用戶(hù)使用行為分析,為了更好地模擬真實(shí)用戶(hù)的行為習(xí)慣,研究中定義用戶(hù)的行為如圖5所示。在性能測(cè)試用例的設(shè)計(jì)中,每個(gè)虛擬用戶(hù)都需經(jīng)歷3個(gè)動(dòng)作,其中第二動(dòng)作會(huì)以不同的概率發(fā)生。
圖5測(cè)試用例設(shè)計(jì)
Fig.5 Test case design
4.2 實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)一:在虛擬機(jī)實(shí)例和物理機(jī)配置相同的情況下,研究測(cè)試了16組JPetStore在不同負(fù)載條件下的性能指標(biāo),取平均后結(jié)果值如表2所示,單位為毫秒(ms)。
表2虛擬機(jī)與物理機(jī)配置相同
Tab.2 Virtual machines and physical machines configured with the same
虛擬用戶(hù)數(shù)
平臺(tái)
響應(yīng)時(shí)間
請(qǐng)求成功率
50
LAN
1668
100%
CLOUD
1876
100%
150
LAN
2048
100%
CLOUD
2628
99.6%
300
LAN
3665
97.8%
CLOUD
4746
94.2%
500
LAN
6067
87.4%
CLOUD
7852
80.8%
實(shí)驗(yàn)二:云測(cè)試平臺(tái)下,不同配置的虛擬機(jī)實(shí)例,在相同的測(cè)試腳本下,其性能指標(biāo)隨負(fù)載變化的情況如表3所示,單位為毫秒(ms)。Small虛擬機(jī)實(shí)例的配置為:CPU,單核1G;內(nèi)存,1G;操作系統(tǒng),Ubuntu 12.04。Medium虛擬機(jī)實(shí)例的配置為:CPU,單核2G;內(nèi)存,1G;操作系統(tǒng),Ubuntu 12.04。Large虛擬機(jī)實(shí)例的配置為:CPU,雙核2G,內(nèi)存2G;操作系統(tǒng),Ubuntu 12.04。
表3虛擬機(jī)配置不同
Tab.3 Different virtual machines configuration
虛擬用戶(hù)數(shù)
虛擬機(jī)實(shí)例
響應(yīng)時(shí)間
請(qǐng)求成功率
50
Small
2 236
100%
Medium
2 012
100%
Large
1 862
100%
150
Small
3 762
95.8%
Medium
2 976
97%
Large
2 578
99.7%
300
Small
6 292
52%
Medium
5 372
84%
Large
4 823
96.9%
500
Small
18 876
32%
Medium
11 778
54%
Large
7 836
87.2%
實(shí)驗(yàn)一結(jié)果表明,在測(cè)試環(huán)境配置和負(fù)載數(shù)量都相同的情況下,傳統(tǒng)測(cè)試環(huán)境和云測(cè)試平臺(tái)具有相一致的性能測(cè)試結(jié)果,這間接驗(yàn)證了將軟件的性能測(cè)試活動(dòng)遷移到云計(jì)算環(huán)境下的可行性。實(shí)驗(yàn)二結(jié)果表明,在云測(cè)試環(huán)境下,隨著虛擬機(jī)實(shí)例的配置越高,其生成負(fù)載的質(zhì)量越好,而對(duì)應(yīng)的性能測(cè)試結(jié)果就越可靠。
5 結(jié)束語(yǔ)
本文結(jié)合云計(jì)算和自動(dòng)化性能測(cè)試技術(shù),解決了在傳統(tǒng)測(cè)試環(huán)境下,性能測(cè)試環(huán)境構(gòu)建困難、測(cè)試資源不足等難題,設(shè)計(jì)并實(shí)現(xiàn)了云環(huán)境下性能測(cè)試平臺(tái)的原型系統(tǒng)。通過(guò)該云測(cè)試平臺(tái),測(cè)試用戶(hù)只需要通過(guò)提交測(cè)試環(huán)境資源描述文件和測(cè)試腳本,云平臺(tái)即可進(jìn)行測(cè)試資源的動(dòng)態(tài)分配,測(cè)試環(huán)境的自動(dòng)配置,并把測(cè)試任務(wù)分配到各虛擬機(jī)實(shí)例上執(zhí)行,最后將測(cè)試結(jié)果集中展現(xiàn)給用戶(hù)。實(shí)驗(yàn)結(jié)果表明,云環(huán)境下的性能測(cè)試,有助于用戶(hù)節(jié)省巨大的測(cè)試成本,且能明顯優(yōu)化用戶(hù)的測(cè)試工作,并可獲得與傳統(tǒng)測(cè)試環(huán)境下的性能測(cè)試相一致的測(cè)試結(jié)果。
在實(shí)驗(yàn)過(guò)程中,卻仍存在測(cè)試虛擬機(jī)運(yùn)行效率不高,虛擬機(jī)調(diào)度算法適應(yīng)性不強(qiáng)等問(wèn)題。若能研發(fā)更好的調(diào)度算法,則將在更大程度上展現(xiàn)云環(huán)境下性能測(cè)試的優(yōu)勢(shì)。
參考文獻(xiàn):
[1] NIST, NIST. The NIST definition of Cloud Computing[J]. COMMUNICATIONS OF THE ACM, 2010, 53(6):50-50.
[2] PARVEEN T, TILLEY S. When to migrate software testing to the Cloud?[J]. Software Testing, Verification, and Validation Workshops, Third International Conference on, 2010:424 - 427.
[3] RIUNGU L M, TAIPALE O, SMOLANDER K. Software testing as an online service: Observations from practice[C]//Software Testing, Verification, and Validation Workshops (ICSTW), 2010 Third International Conference on. [s.l.]:IEEE, 2010:418 - 423.
[4] CIORTEAL, ZAMFCC, BUCURS, et al. Cloud9: a software testing service[J]. IEEE Trans on Operating Systems Review, 2009, 43(4) :5-10.
[5] TAKAYUKI B, HITOSHI K, RYOK, et al. D-cloud: design of a software testing environment for reliable distributed systems using cloud computing technology [C] //Proc of the10thInternational Conference on Cluster, Cloud and Grid Computing. Washington DC: IEEE Computer Society, 2010:631-636.
[6] HANAWAT, BANZAIT, KOIZUMIH, et al.Large-scale software testing environment using cloud computing technology for dependable parallel and distributed systems[C]//Proc of the 3rd International Conference on Software Testing, Verification,and Validation. Washington DC: IEEE Computer Society, 2010:428-433.
[7] PARVEEN T, TILLEY S, DALEY N, et al. Towards a distributed execution framework for JUnit test cases[C]//Software Maintenance, Icsm, IEEE International Conference on. [s.l.]:IEEE, 2009:425-428.
[8] GANON Z, ZILBERSHTEIN I E. Cloud-based performance testing of Network Management Systems[C]//Computer Aided Modeling and Design of Communication Links and Networks, 2009. CAMAD '09. IEEE 14th International Workshop on. [s.l.]:IEEE, 2009:1-6.
1基金項(xiàng)目:上海市教育委員會(huì)科研創(chuàng)新項(xiàng)目(12ZZ060),上海市科委啟明星項(xiàng)目(12QB1402300)。
作者簡(jiǎn)介:周有志(1989-),男,湖南衡陽(yáng)人,碩士研究生,主要研究方向: 云計(jì)算、軟件測(cè)試;
杜 明(1975-),男,黑龍江虎林人,博士,副教授,主要研究方向: 閃存數(shù)據(jù)庫(kù)。