書接上文:- Selenium 自動化最佳實踐技巧(上)
確定自動化的內容
自動化測試的最佳實踐之一是明確知道要自動化的內容。在開始實施自動化瀏覽器測試之前,重要的是要知道首先要自動化什麼內容。自動化背後的主要原因是避免重複和搬磚的任務。因此,堅持明確自動化測試內容是非常有意義的。
例如,自動化涉及視覺場景(包括字型,顏色和佈局結構)的測試並不是一個好主意。自動測試可以檢查靜態內容,例如標題、文案和狀態等。當然,前提是我們知道它們很少更改,可以輕鬆地使它們自動化。
自動化用例選擇
在前一點要點的基礎上,有一些特定的測試用例與自動化非常匹配。那麼,下一步應該是什麼?您可以選擇頻繁發生且可以預測的測試用例。
例如:單擊一個選項卡時,一個應用程式開始啟動。這是帶有條件的通用測試。換句話說,當我們知道某個事件肯定會發生時,結果是可以預測的。因此,為避免重複執行,可以自動化這些測試用例。
在開始自動化測試之前,需要考慮到在自動化測試上投入的時間、精力和資源後,看看自動化測試可以帶來什麼好處。以下是確定哪些手動測試應該或不應該自動化應該考慮的問題。俗話說,僅僅因為您可以使某些東西自動化並不一定意味著應該這樣做。
- 簡單>優先順序>穩定性>重複性。
選擇 Selenium 測試工具
切換到自動化瀏覽器測試時,每個公司都有不同的考慮因素。即使市場上有各種各樣的Selenium
測試自動化工具,選擇工具也不是很容易的方法。必須根據公司的需求選擇正確的Selenium
測試自動化工具。
例如,檢查該工具是否支援公司所使用的現有平臺。要問的其他一些問題包括以下內容:需要該工具來執行移動應用程式測試嗎?使用什麼框架設計?工具是否支援記錄和回放測試?可以手動建立自動化測試嗎?
以下是選擇Selenium
測試工具的考慮因素:
記錄和重放:此類別中的工具為自動指令碼提供了記錄選項。螢幕上的每個互動(例如點選,滾動或鍵入)都將被記錄並轉換為自動化步驟。可以重播已錄製的指令碼以執行操作並驗證。
基於座標的識別:此類工具在 x/y 座標的幫助下與被測應用程式互動,以自動化和驗證應用程式。
本機物件識別:使用本機物件識別的工具可檢測給定元素樹上的 UI 或控制元件元素。該樹由 XPATH,XML 或 CSS 構建,以標識元素,驗證和自動化指令碼。
文字識別:文字識別:文字識別或(OCR)光學字元識別工具可根據其文字識別元素。這些工具使用可見文字來推動自動化並驗證應用程式。
影像識別:這些工具會獲取產品中 UI 元素的螢幕截圖,以將其新增到自動化指令碼中。這些螢幕截圖將幫助 AUT 自動執行。
消除 Selenium 測試自動化不確定性
如前文中提到的,作為測試人員,Selenium
自動化測試存在一些常見的障礙。有時,即使沒有BUG
,測試用例也會失敗。另一方面,如果存在BUG
,則測試可能會透過。這是阻礙Selenium
自動化測試成功的重要原因。
當存在任何不一致或誤報時,這會增加我們分析結果和排查問題所花費的時間。因此,在涉及迴歸包時,重點是要消除不穩定的測試用例,寧可放棄掉,也要保證測試用例的高質量。
招聘專業團隊
一個成功的測試團隊包括手動測試人員和自動化測試人員。現在,不少公司最大錯誤是認為一個人實體可以完成兩項任務。但是自動化測試本身就是一項全職工作,手動測試亦是如此。期望手動測試人員執行Selenium
測試自動化是不合理的。
但是,如果企業不願僱用新員工進行自動化測試,而將任務留給有經驗的手動測試人員,則首先讓他們減輕或者解除手動測試和相關職責。他們應該將主要精力集中在自動化測試,而不是其他事情上。
否則,企業需要招聘自動化工程師來完成這項工作。假設公司規模較大。在這種情況下,甚至可以招聘一名自動化架構師。然後可以監督和指導的自動化工程師工作。
確保集體硒測試自動化所有權
有時候單獨任命一名自動化工程師會被證明是錯誤的。通常在這種情況下,團隊的其他成員並不真正知道發生了什麼。但是如果團隊在此領域的集體知識是不斷更新的,則成功實施Selenium
測試自動化的機會就會增加。
保持所有團隊成員的平等參與,方便以後在的工作中推行自動化測試。這樣,自動化測試人員也有機會將他們的知識傳授給團隊的其他成員。因此,當團隊每個人都知道發生了什麼事時,他們都可以為專案的成功做出貢獻。
自動化測試期間的努力
正如我們已經討論的那樣,自動瀏覽器測試是基於團隊的任務。根據不同員工的技能水平,必須劃分與自動化相關的任務。例如,自動化測試工程師應該編寫自動化測試指令碼。另一方面,不熟悉指令碼語言的團隊成員可以利用工具錄製或者匯出測試用例。
甚至非技術人員也可以使用關鍵字驅動測試框架來建立的自動化測試用例。因此,當團隊中的每個人都根據自己的技能做出貢獻時,發現缺陷變得容易得多。
複查 Selenium 測試自動化的有效性
團隊無法在實施自動化之前進行良好的計劃。這可能會對整個軟體測試造成負面影響。有時候,自動化測試無法檢查某些驗證,其背後的主要原因是這些驗證方式可能已過時。
因此,還有一點至關重要,測試團隊必須檢查所有自動化測試用例的有效性。換句話說就是要始終需要確保測試用例是最新的。最好讓固定的人員負責自動化測試的有效性和合理性。
選擇適合的自動化工具
假設團隊資源偏向某種的程式語言,例如Java
或者Python
。因此,要在Java
或者Python
語言環境中測試的應用程式很有意義。在這種情況下,如果選擇了不支援用該語言的指令碼工具,那實際上就沒有意義。我們知道學習一種新語言需要大量的努力並且非常耗時。但是,如果選擇與團隊資源相容的工具,則可以完全避免學習上的麻煩。
公眾號FunTester首發,原創分享愛好者,騰訊雲和掘金社群首頁推薦,知乎七級原創作者,歡迎關注、交流,禁止第三方擅自轉載。
FunTester 熱文精選
- 寫給所有人的程式設計思維
- 2020 年 Tester 自我提升
- 未來的神器 fiddler Everywhere
- 測試開發工程師工作技巧
- Selenium4 IDE,它終於來了
- 如何成為全棧自動化工程師
- 什麼阻礙手動測試發揮價值
- 壓測中測量非同步寫入介面的延遲
- “雙花” BUG 的測試分享