支持多類型和多版本瀏覽器的Web應(yīng)用兼容性測試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種支持多類型和多版本瀏覽器的Web應(yīng)用兼容性測試方法。
【背景技術(shù)】
[0002]現(xiàn)在的Web應(yīng)用與傳統(tǒng)的基于客戶/服務(wù)器的應(yīng)用程序有很大的不同,其表現(xiàn)是用戶只需要使用某一版本的瀏覽器訪問特定的網(wǎng)站就能完成任務(wù),即執(zhí)行特定Web應(yīng)用程序?qū)崿F(xiàn)所需的功能。這給用戶使用帶來了很大的方便,但是在目前市場中瀏覽器類型多,而且即使是同一瀏覽器,其版本也有很多個(gè),不同類型、不同版本的瀏覽器對(duì)Web應(yīng)用的兼容性存在較多的問題。這種問題不光給使用者帶來了困擾,同時(shí)也給Web應(yīng)用的開發(fā)者帶來了挑戰(zhàn)。
[0003]一般來說,具有良好的用戶體驗(yàn)的Web應(yīng)用應(yīng)當(dāng)兼容多種類型和版本的瀏覽器,以適應(yīng)不同用戶的使用偏好。設(shè)計(jì)者在設(shè)計(jì)方案時(shí)應(yīng)該考慮到瀏覽器的特性,比如支持HTML、JavaScript、CSS等方面的能力,在實(shí)現(xiàn)后對(duì)設(shè)計(jì)好的應(yīng)用使用瀏覽器進(jìn)行測試,驗(yàn)證同樣的功能在不同瀏覽器中的表現(xiàn)。要測試得比較充分,除了要考慮設(shè)計(jì)較好的測試用例,還需要考慮所支持的瀏覽器類型和版本的組合。如果瀏覽器類型和版本組合數(shù)量巨大,則測試工作量也會(huì)加大,測試用例執(zhí)行的時(shí)間也會(huì)變長。
[0004]現(xiàn)行的一些兼容性的測試方法側(cè)重于某一類軟件,例如OS (Operating System,操作系統(tǒng))、辦公軟件、數(shù)據(jù)庫管理系統(tǒng)的兼容性測試,專用性較強(qiáng),難以直接應(yīng)用到Web應(yīng)用兼容性測試中。在多類型和多版本瀏覽器的Web應(yīng)用兼容性測試方面,普遍的做法是在一種類型、一種版本的瀏覽器中執(zhí)行已經(jīng)設(shè)計(jì)好的測試用例,測試其Web應(yīng)用,然后再切換到另一種類型或另一種版本的瀏覽器中執(zhí)行相同的測試用例。有些瀏覽器支持多個(gè)版本的“兼容性視圖”,則測試時(shí)只需要在不同的“兼容性視圖”之間切換。該切換過程可以是人工的,也可以設(shè)計(jì)一些腳本或工具將其自動(dòng)化,如何自動(dòng)化則沒有確定的方法。
[0005]多類型和多版本瀏覽器的Web應(yīng)用兼容性測試的另一種方法是使用瀏覽器模擬器。該模擬器能夠模擬特定類型、特定版本的瀏覽器的大部分功能特性,因此一些測試人員利用模擬器來完成大部分兼容性測試工作。
[0006]完全依賴人工進(jìn)行Web應(yīng)用的兼容性測試方法存在一些問題,尤其是在被測對(duì)象兼容的瀏覽器版本多的時(shí)候,測試工作量可能會(huì)很大。影響工作量的因素包括瀏覽器類型和版本的組合數(shù)量、計(jì)算機(jī)的軟硬件配置、瀏覽器安裝和卸載的時(shí)間等,在這些因素的綜合作用下,即使已經(jīng)準(zhǔn)備好了測試用例,要完成一種類型、一種版本的兼容性測試也很可能消耗很長的時(shí)間。雖然有些組織的設(shè)計(jì)能力較強(qiáng),在測試過程中自行設(shè)計(jì)自動(dòng)化的程序或者從外部引入一些自動(dòng)化的手段,能夠做到在多類型多版本的瀏覽器之間或“兼容性視圖”之間切換,但是這種測試過程往往是串行執(zhí)行的,即只能在一種類型、一種版本的瀏覽器中執(zhí)行完成之后才能進(jìn)行另一種類型和另一種版本的瀏覽器中執(zhí)行,難以并行測試,效率不高。
[0007]另一種方法使用模擬器進(jìn)行兼容性測試,效率有所提高,但是目前市場上模擬器并不能完全模擬真實(shí)的瀏覽器,與真實(shí)的瀏覽器還存在不少的差別。如果需要進(jìn)行充分的兼容性測試,對(duì)于沒有模擬到的功能特性,就需要在真實(shí)的瀏覽器中補(bǔ)充相應(yīng)的測試。這也會(huì)帶來不小的工作量。
【發(fā)明內(nèi)容】
[0008]本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)中存在上述缺陷,提供一種支持多類型和多版本瀏覽器的Web應(yīng)用兼容性測試方法,該方法基于虛擬化技術(shù),能夠?qū)崿F(xiàn)并行、自動(dòng)化的測試過程,支持Web應(yīng)用的設(shè)計(jì)者高效率地驗(yàn)證其Web應(yīng)用兼容性。
[0009]根據(jù)本發(fā)明的第一方面,提供了一種支持多類型和多版本瀏覽器的Web應(yīng)用兼容性測試方法,包括:首先,構(gòu)建多個(gè)VM模板,并在VM模板中預(yù)先部署特定瀏覽器和特定測試代理程序;此后,根據(jù)所述特定瀏覽器的類型和版本來創(chuàng)建兼容性矩陣;然后,使得測試控制器根據(jù)兼容性矩陣從VM模板創(chuàng)建相應(yīng)的VM實(shí)例以形成VM池;隨后,將預(yù)定兼容性測試用例分發(fā)到VM池中的每一個(gè)VM實(shí)例中;最后,在VM池中同時(shí)執(zhí)行兼容性測試用例從而并行地執(zhí)行兼容性測試。
[0010]根據(jù)本發(fā)明的第二方面,提供了一種Web應(yīng)用兼容性測試方法,包括下述步驟:第一步:準(zhǔn)備測試所需的虛擬化基礎(chǔ)設(shè)施,其中虛擬化基礎(chǔ)設(shè)施包括硬件資源和軟件資源;虛擬化基礎(chǔ)設(shè)施的虛擬層向上提供VM管理的應(yīng)用程序接口,供測試控制器調(diào)用;而且虛擬化基礎(chǔ)設(shè)施通過交換機(jī)與被測的Web應(yīng)用所在的計(jì)算機(jī)建立物理連接;第二步:準(zhǔn)備VM模板;第三步:將預(yù)定兼容性測試用例設(shè)置為后續(xù)被執(zhí)行的測試用例;第四步:設(shè)置包括瀏覽器類型和版本的瀏覽器參數(shù);第五步:根據(jù)所述特定瀏覽器的類型和版本來創(chuàng)建兼容性矩陣;第六步:根據(jù)VM模板創(chuàng)建測試用VM ;第七步:啟動(dòng)所有VM,以便遍歷VM池中的所有VM,將所有VM開機(jī);第八步:分發(fā)預(yù)定兼容性測試用例;第九步:并行執(zhí)行預(yù)定兼容性測試用例;第十步:在預(yù)定兼容性測試用例執(zhí)行完畢時(shí)生成測試結(jié)果。
[0011]優(yōu)選地,其中第一步、第二步、第三步、第四步和第十二步在用戶層由測試人員執(zhí)行,第五步、第六步、第七步、第八步、第九步、第十步和第十一步在服務(wù)層由測試控制器執(zhí)行,第六步、第七步和第十一步調(diào)用虛擬層提供的應(yīng)用程序接口。
[0012]優(yōu)選地,第二步包括按照兼容性需求列出瀏覽器類型和版本的組合,然后對(duì)于每一種組合執(zhí)行下述步驟:設(shè)定測試所需的硬件相關(guān)參數(shù),創(chuàng)建VM并使得所創(chuàng)建的VM開機(jī),安裝客戶機(jī)OS和基礎(chǔ)軟件;在該VM中安裝該組合對(duì)應(yīng)類型和版本的真實(shí)瀏覽器;在該VM中安裝測試代理程序,用于接收控制器分發(fā)的測試用例、按照控制器的指令啟動(dòng)測試用例的執(zhí)行、將測試結(jié)果反饋給控制器,并且將測試代理程序設(shè)置為開機(jī)自啟動(dòng);將該VM關(guān)機(jī),并將該VM轉(zhuǎn)換為VM模板。
[0013]優(yōu)選地,第五步包括:首先讀取瀏覽器類型和版本的設(shè)置信息文件;然后根據(jù)瀏覽器數(shù)量和版本數(shù)量動(dòng)態(tài)創(chuàng)建能表示兼容性矩陣的二維數(shù)組,其中所述數(shù)組元素類型是表示類型和版本的二元組;再將該矩陣的所有元素初始化為空;最后將從設(shè)置信息文件所讀取的所有瀏覽器和版本信息依次填充入二維數(shù)組,填充時(shí)按照瀏覽器類型優(yōu)先的次序進(jìn)行,一種瀏覽器類型的所有版本處理完畢之后,再處理另一種瀏覽器類型的所有版本。
[0014]優(yōu)選地,第六步包括:首先檢查VM池的情況,如果VM池為空,則不作處理;如果VM池不為空,則逐一檢查VM池中的每一 VM實(shí)例;如果該VM實(shí)例對(duì)應(yīng)的瀏覽器類型和版本在兼容性矩陣中,則保留該VM實(shí)例,否則銷毀該VM實(shí)例;然后,按照瀏覽器類型優(yōu)先的次序進(jìn)行,對(duì)于一種瀏覽器類型的所有版本,檢查VM池中是否存在對(duì)應(yīng)的VM,如果不存在則從對(duì)應(yīng)的VM模板創(chuàng)建VM,而且將該VM實(shí)例加入到VM池中。
[0015]優(yōu)選地,在第九步中,測試控制器向VM池中的所有VM同時(shí)發(fā)出執(zhí)行測試用例的指令,VM池中VM接收到執(zhí)行指令后各自開始執(zhí)行測試用例,調(diào)用其中已安裝的特定類型和版本的瀏覽器,完成測試用例規(guī)定的所有步驟的執(zhí)行。
[0016]優(yōu)選地,所述的Web應(yīng)用兼容性測試方法還包括:第十一步:銷毀VM以釋放計(jì)算機(jī)資源;第十二步:分析測試結(jié)果數(shù)據(jù)以形成多瀏覽器類型和版本的兼容性測試報(bào)告。
[0017]優(yōu)選地,在第十步中,VM池中的所有VM在測試執(zhí)行完成之后將測試用例的詳細(xì)執(zhí)行結(jié)果發(fā)送給測試控制器匯總,測試控制器按照VM對(duì)應(yīng)的瀏覽器類型和版本組織測試結(jié)果;其中如果VM保留標(biāo)志為第一數(shù)值,則轉(zhuǎn)第三步繼續(xù)測試;如果VM保留標(biāo)志為第二數(shù)值,則轉(zhuǎn)第十一步。
【附圖說明】
[0018]結(jié)合附圖,并通過參考下面的詳細(xì)描述,將會(huì)更容易地對(duì)本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中:
[0019]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的支持多類型和