Web UI 自動化測試

2022-05-09 04:18:07 字數 2085 閱讀 3787

1、為什麼我們需要ui自動化測試?ui自動化測試的focus應該在哪幾個方面?

測試自動化並不是為了贏得老闆的讚賞,或者認為這是乙個很潮的技術,不用就會落後,而是為了發現問題,提高產品的質量。做ui自動化測試的主要目的也是基於此的。 除此之外,ui自動化測試還可以從乙個終端使用者(end user)的角度來發現問題,對大數有ui的系統來說,ui是最理想的整合/系統測試入口,也是最需要測試的地方。

ui自動化測試應該集中在:

1)ui的文字,顯示正確性

2)ui的互動邏輯正確性測試

3)ui上的使用者行為正確性測試

4)如果可能,ui的使用者體驗性測試(這個通常並不適合)

2、什麼是gui自動化測試的難點?

對比手工ui測試,ui自動化測試有如下的難點:

1)從ui測試的角度來說,乙個非「預期」產生的缺陷很難被自動化測試發現,而手工測試則能輕鬆的發現這個缺陷;

2)ui本身的變化性,要想達到和手工測試相同的覆蓋率,單純的ui自動化測試往往很難證明自己的投資回報;

3)ui控制項元素本身識別的複雜性;

4)ui自動化測試出現問題時,恢復到下一條測試case執行的場景是複雜的。因為出現這種問題的意外,是非「預期」的;

5)ui的測試case,有很多是關於使用者互動方面的,而這方面也其一定的複雜性;

3、如何做出更好的ui自動化測試?

1)要盡量避免ui自動化測試。這點似乎與我們的初衷有點背道而馳。但細想一下,它還是有一定道理的。其原因是api和功能層級來說更加穩定,所以其自動化和維護的成本都比較低。相比而言,ui自動化測試因為有上述的諸多難點,所以其實施起來比較困難,導致它的開發成本和維護成本都要高出許多。因此,有的公司的自動化測試就有乙個721原則,即70%的測試工作集中在底層介面測試和單元測試,20%的測試工作為整合測試,其他10%的測試即為介面測試。

2)對於ui本身的變化性和ui控制項識別的複雜性,利用id/name定位元素設定ui map,與開發團隊約定元素的命名規則,在盡可能的情況下,確保ui的可自動化測試性。當業務發生變更時,乙個好的模式或者框架來讓測試自動化更加便捷,包括要對業務進行分層,關注資料儲存和資料驅動,做到測試資料與測試**的隔離,ui自動化操作與業務測試邏輯的分離。

3)對ui自動化出現問題時,不能很好的恢復到下一條case的正確執行場景(我們可以稱之為恢復測試場景或batch run),可以通過組織良好的case,我們寫case的時候傾向於case之間是沒有關聯的。我們希望乙個case在執行的時候,它自己能夠將初始化和結尾的工作先做好,a case和b case不應該有關係,b case的成功與失敗不應該依賴於a case的成功與失敗,乙個好的case應該這樣設計。但是有時候a case做完,我們需要先新增乙個使用者,然後再刪除這個使用者,這種情況下,如果沒新增就去刪除,則是失敗的,兩者之間存在一種依賴關係。在這種設計的情況下,有乙個解決的思路是支援case間的依賴,你可以定義乙個標籤去說明某個case依賴於其他的case,這樣就先執行被依賴的case,然後再執行這個case,確保了執行的順序。

基本使用者場景測試和驗收確認(acceptance)測試用例。這 類測試用例要求從真實使用者的使用角度去測試產品的實現,只有包括了ui層才完整和驗證了產品的真實使用者體驗。從實現的角度來看,這類用例應該是只覆蓋最基 本和核心的端到端的使用者場景(end-to-end user scenario),對於敏捷開發,會在使用者故事中描述使用者使用的基本場景。一般不使用基於ui測試實現那些步驟複雜,或者邊邊角角(corner case)的測試用例。

邏輯與使用者介面繫結在的一起,無法繞過ui直接測試核心邏輯模組。這 種情況也是不得已而為之,在實際工程中也最經常出現的,它反映了軟體構架設計方面存在的問題,即沒有很好的模組化、模組之間過度耦合。如果是乙個全新的軟 件和功能,在專案初期,測試人員應該與開發人員/構架師仔細**一下可測試性(testability)問題,特別是針對自動化測試的可測是性, 比如:邏輯與ui分離,是否易於進行介面測試等。一旦錯過這個階段,到了產品的中後期,就很難為了測試再修改產品**。 

WEB UI自動化實踐

宜信技術學院 1.設計背景 隨著it行業的發展,產品愈漸複雜,web端業務及流程更加繁瑣,目前ui測試僅是針對單一頁面,操作量大。為了滿足多頁面功能及流程的需求及節省工時,設計了這款ui 自動化測試程式。旨在提供介面,整合到蝸牛自動化測試框架,方便用例的設計。整個程式是基於 selenium 設計的...

web ui 自動化,知識碎片

獲取html源 執行js得到整個html html driver.execute script return document.documentelement.outerhtml 獲得整個文件的html html driver.find element by xpath get attribute ...

多套測試系統與Web UI自動化測試

web ui自動化專案初期,可能是單一的一套測試環境,裡也只用寫一套url folder path database。隨著專案的進行,很可能生產環境也想跑自動化,驗證系統可用性或者做load test。測試環境也可能多出來幾套,阿爾法,貝塔之類的。此時,hard code待測試系統的相關資訊就顯然不...