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