張周浩 賈孝輝
摘要:Web應(yīng)用的驗(yàn)收測(cè)試往往是一系列的手工測(cè)試任務(wù),最常見(jiàn)的操作像打開(kāi)一個(gè)瀏覽器,然后執(zhí)行一個(gè)測(cè)試用例的操作,例如某些數(shù)據(jù)的增加、修改、刪除等操作。但是手工執(zhí)行的任務(wù)容易出現(xiàn)操作人員的錯(cuò)誤,并且浪費(fèi)大量的人力和物力以及時(shí)間。而且作為一個(gè)簡(jiǎn)單的應(yīng)用插件,它的版本交替速度往往特別的快,測(cè)試的速度遠(yuǎn)遠(yuǎn)跟不上產(chǎn)品發(fā)布的速度。因此,盡可能的去實(shí)現(xiàn)這些測(cè)試用例的自動(dòng)化,消除人為因素、節(jié)約測(cè)試成本、提高自動(dòng)化測(cè)試腳本的維護(hù)性和移植性,從而更好的去保證和提高軟件的質(zhì)量成為一個(gè)迫在眉睫的問(wèn)題。
關(guān)鍵詞:Web自動(dòng)化;測(cè)試;前景
一、基于Selenium的Web自動(dòng)化測(cè)試
不同于一般應(yīng)用系統(tǒng)的測(cè)試,Web測(cè)試需要檢查和驗(yàn)證系統(tǒng)是否按照設(shè)計(jì)好的要求去運(yùn)行,而且還需要測(cè)試系統(tǒng)在不同用戶(hù)的瀏覽器中顯示是否符合要求。還要從用戶(hù)的角度進(jìn)行安全性和可用性測(cè)試。Selenium測(cè)試腳本執(zhí)行的時(shí)候,瀏覽器會(huì)自動(dòng)按照腳本代碼做出點(diǎn)擊、輸入、打開(kāi)、驗(yàn)證等操作,就像是真實(shí)用戶(hù)所做的一樣,從終端用戶(hù)的角度來(lái)測(cè)試Web應(yīng)用程序。
(一)Selenium的介紹
自動(dòng)化測(cè)試工具越來(lái)越多,但開(kāi)源的卻不多,比如QTP、QC、LR、WR這些測(cè)試工具功能強(qiáng)大,但由于這些軟件都不是開(kāi)源的,所以被很多公司拒之門(mén)外。還有一些因?yàn)榧嫒菪圆缓没蛘呖墒褂玫恼Z(yǔ)言過(guò)少,比如Watir、WebInject、MaxQ等。Selenium相對(duì)而言卻是一款更實(shí)用、更方便、更經(jīng)濟(jì)的測(cè)試工具,它的功能可以滿(mǎn)足測(cè)試人員的工作需要,并且最讓公司和測(cè)試人員認(rèn)同的是它是一個(gè)開(kāi)源、免費(fèi)、并且兼容性好,能使用多種語(yǔ)言的測(cè)試工具。
(二)Web自動(dòng)化測(cè)試的意義
1、Web應(yīng)用的特點(diǎn):
Web應(yīng)用一般有非常巨大的用戶(hù)量,并且還要對(duì)Web資源進(jìn)行跨瀏覽器、跨平臺(tái)的訪問(wèn),同時(shí)還要有處理并發(fā)事務(wù)的能力,綜上所述,Web應(yīng)用的特點(diǎn)是分布、異構(gòu)、并發(fā),因此它涉及到的問(wèn)題比一般應(yīng)用程序更多。Web應(yīng)用的服務(wù)器一般來(lái)說(shuō)有三層:
第一層:表示層,用戶(hù)對(duì)Web應(yīng)用的直觀體驗(yàn)全都在這一層,在這一層上將提供各種用戶(hù)需要的信息以及交互操作,并把用戶(hù)的請(qǐng)求發(fā)送到應(yīng)用服務(wù)端,然后把相應(yīng)的結(jié)果返回給用戶(hù)。
第二層:業(yè)務(wù)層,運(yùn)行應(yīng)用服務(wù)器。在這里運(yùn)行的軟件模擬業(yè)務(wù)流程。
第三層:數(shù)據(jù)層,從一個(gè)或者多個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中存儲(chǔ)和獲取數(shù)據(jù),它包含了與第二層進(jìn)行通信的數(shù)據(jù)庫(kù)設(shè)備。進(jìn)入數(shù)據(jù)層的接口由數(shù)據(jù)模型來(lái)定義,模型描述了怎樣進(jìn)行數(shù)據(jù)存儲(chǔ),并通過(guò)負(fù)載均衡機(jī)制來(lái)緩解應(yīng)用系統(tǒng)的高事務(wù)量。
2、Web自動(dòng)化測(cè)試?yán)碚摶A(chǔ):
自動(dòng)化測(cè)試(Automatedtest):是指在測(cè)試過(guò)程中無(wú)需人工干預(yù),完全由預(yù)先設(shè)計(jì)好的計(jì)算機(jī)程序或者機(jī)器代替手工對(duì)待測(cè)軟件進(jìn)行測(cè)試,并在測(cè)試的過(guò)程中,詳細(xì)記錄測(cè)試的操作日志,對(duì)程序的異常信息進(jìn)行捕獲上報(bào),以便測(cè)試結(jié)束后,可以有依據(jù)的去分析測(cè)試結(jié)果,而且還會(huì)提供一份詳細(xì)的自動(dòng)化測(cè)試結(jié)果報(bào)告。而自動(dòng)化執(zhí)行期間,由于程序或者機(jī)器沒(méi)有主觀意識(shí),所以需要在程序中預(yù)先設(shè)定好驗(yàn)證點(diǎn)的正確預(yù)期結(jié)果,同時(shí)由于程序幾乎沒(méi)有疲憊的時(shí)候,只要程序邏輯沒(méi)有問(wèn)題,長(zhǎng)時(shí)間的重復(fù)測(cè)試就也不會(huì)出錯(cuò),這個(gè)是人工無(wú)法確保的。自動(dòng)化測(cè)試的最大好處就是,可以代替手工進(jìn)行大量的重復(fù)性測(cè)試任務(wù),這樣既降低了人力成本,又提高了測(cè)試的效率。不同于一般應(yīng)用系統(tǒng)的測(cè)試,Web測(cè)試需要檢查和驗(yàn)證系統(tǒng)是否按照設(shè)計(jì)的要求運(yùn)行,而且需要測(cè)試系統(tǒng)在不同用戶(hù)的瀏覽器中顯示是否合適。還要從用戶(hù)的角度進(jìn)行安全性和可用性測(cè)試。這就更需要自動(dòng)化測(cè)試來(lái)對(duì)其質(zhì)量就行把關(guān)。
3、Web自動(dòng)化測(cè)試的主要內(nèi)容:
(1)功能測(cè)試
對(duì)Web應(yīng)用提供給用戶(hù)的所有外部功能點(diǎn)進(jìn)行全面測(cè)試,測(cè)試中,只需要關(guān)注業(yè)務(wù)邏輯是否實(shí)現(xiàn)正確,是否存在功能缺陷。無(wú)需關(guān)心產(chǎn)品的內(nèi)部結(jié)構(gòu)以及其邏輯的具體實(shí)現(xiàn)方法。Web應(yīng)用在版本更新迭代時(shí),需要在多個(gè)平臺(tái)上對(duì)舊功能進(jìn)行回歸測(cè)試,以保證新版本的質(zhì)量。Web應(yīng)用在執(zhí)行功能測(cè)試的時(shí)候,最需要關(guān)注數(shù)據(jù)的準(zhǔn)確性、一致性。
(2)性能測(cè)試
目前同類(lèi)型的產(chǎn)品市場(chǎng)競(jìng)爭(zhēng)非常的激烈,為了增大用戶(hù)量從而贏取利益,僅僅保證Web產(chǎn)品的功能實(shí)現(xiàn),這樣已經(jīng)無(wú)法滿(mǎn)足廣大用戶(hù)的需求,還需要保證產(chǎn)品在使用時(shí)用戶(hù)有一個(gè)好的性能體驗(yàn),這時(shí),開(kāi)展性能測(cè)試就顯得尤其重要,性能測(cè)試時(shí),一般需要測(cè)試如下幾個(gè)性能指標(biāo),如系統(tǒng)響應(yīng)速度、用戶(hù)高峰期時(shí)的并發(fā)率、內(nèi)存和CPU占用等,其中系統(tǒng)響應(yīng)速度的快慢用戶(hù)是可以很直觀地感受到的。在一般負(fù)載情況下,要求系統(tǒng)的響應(yīng)時(shí)間控制在2秒之內(nèi),否則如果響應(yīng)過(guò)慢,有些用戶(hù)會(huì)因?yàn)闆](méi)有耐心等待而選擇離開(kāi)頁(yè)面。
(3)兼容性測(cè)試
Web應(yīng)用程序的使用者分布于多種平臺(tái)上,包括不同的操作系統(tǒng)、不同類(lèi)型的瀏覽器、不同版本的瀏覽器等等。每當(dāng)Web應(yīng)用要進(jìn)行版本更新時(shí),為了保證所有用戶(hù)都能正常使用產(chǎn)品,就需要在各種不同的平臺(tái)上對(duì)待測(cè)應(yīng)用的新版本以及舊版本進(jìn)行兼容性測(cè)試,而在進(jìn)行兼容性測(cè)試時(shí),無(wú)法保證測(cè)試可以覆蓋到所有的平臺(tái),因此最起碼需要保證主流的、用戶(hù)量大的平臺(tái)必須兼容。
二、Selenium自動(dòng)化測(cè)試的應(yīng)用前景和展望
基于Selenium 的 Web 自動(dòng)化測(cè)試框架,通過(guò)人們不斷的研究和實(shí)踐,已經(jīng)大量投入到具體的自動(dòng)化測(cè)試項(xiàng)目中,每天都會(huì)對(duì)穩(wěn)定模塊的用例進(jìn)行日建測(cè)試,大大地提高了版本迭代的效率。Selenuim自動(dòng)化測(cè)試運(yùn)行穩(wěn)定,測(cè)試的結(jié)果數(shù)據(jù)準(zhǔn)確,極大的提高了測(cè)試效率,保障了產(chǎn)品的質(zhì)量,節(jié)省了測(cè)試和維護(hù)所需要的成本,為企業(yè)帶來(lái)了經(jīng)濟(jì)效益,有很大的實(shí)用價(jià)值。在 Selenium 自動(dòng)化測(cè)試框架下應(yīng)用數(shù)據(jù)驅(qū)動(dòng)技術(shù)可以有效地降低測(cè)試時(shí)間,提高測(cè)試效率。相信今后隨著自動(dòng)化測(cè)試技術(shù)的不斷發(fā)展,會(huì)有大量自動(dòng)化測(cè)試新方法以及新工具的涌現(xiàn),自動(dòng)化測(cè)試一定會(huì)走向成熟化、標(biāo)準(zhǔn)化。
參考文獻(xiàn):
[1]賴(lài)?yán)h,劉強(qiáng).Web 應(yīng)用程序的一種功能自動(dòng)化測(cè)試模型與實(shí)現(xiàn)[J].計(jì)算機(jī)工程, 2006(17):14-39.
[2]劉偉,郭秋月,胡志剛.基于Selenium的Web自動(dòng)化測(cè)試框架優(yōu)化及應(yīng)用研究[J].電子測(cè)試,2018(20):51-53.
河南科技大學(xué)軟件工程學(xué)院 河南 洛陽(yáng) 471003