Selenium自動化最佳實踐技巧(上)

2022-09-16 22:33:20 字數 2922 閱讀 5435

近年來,越來越多的的web端自動化測試都選擇過渡到selenium測試自動化的敏捷組織。畢竟,對於新功能的快速反饋,絕大部分人都不想錯過web端自動化測試的機會。雖然趨勢如此,一些測試人員仍抱怨自動化測試不穩定且不可靠。造成這些問題的原因有很多,大多數時候,導致測試不穩定的原因是都是沒有遵循適合的selenium測試自動化的正確做法。

儘管編寫selenium測試自動化指令碼沒有權威的硬性規定,但是可以遵循一些技巧來編寫更好的測試指令碼。

在本文中將分享其中的selenium測試自動化最佳實踐技巧,這將幫助測試工程師從自動化測試工作中獲得最大的價值。

selenium測試自動化的最佳實踐之一是盡可能早且經常進行測試。隨著組織遠離瀑布模型,測試人員必須更多地參與開發過程,這與傳統瀑布型開發模式中的軟體測試形成對比,因為這對專案的發版週期和成本都具有重大影響。

這引起了左移測試的概念,這意味著從需求收集階段開始就讓測試人員參與其中。這樣,他們可以通過了解終端使用者的期望提前提出更加合理的測試用例。這裡的主要思想是避免開發完成後遇到錯誤,這樣的bug修復起來代價會更高。測試人員可以提供寶貴的意見,並以改善使用者體驗的方式幫助開發人員開發更好的產品。另外,可以避免開發人員在軟體的開發實中使用不推薦的功能實現以及選擇存在風險的工具庫。

這就是為什麼敏捷測試應該盡快開始自動化測試,並根據需要進行頻繁測試的原因。開始測試的時間越早,發現缺陷和發現的問題越早,可以幫助團隊節省sdlc(軟體開發生命週期)中的時間和資源。

bdd也就行為驅動開發,是執行selenium test automation時流行的開發模式。bdd使測試人員可以用簡單的工具或者語言編寫selenium測試自動化用例,可以使得更多具備基礎知識的人都可以理解。這進一步有助於在業務團隊和技術團隊之間架起一座橋梁,以了解測試專案中實際發生的操作,從而團隊協作層面上創造更好的價值。

通過使用bdd編寫selenium測試自動化指令碼,測試團隊還可以建立統一的規範,這將幫助測試團隊以更好的方式理解測試和要求。這可以節省總的測試時間,因為減少向任何利益相關方不必要解釋測試。

由於網路環境、伺服器問題或其他各種原因,web應用程式經常需要花費一些時間來等待載入。為了解決這個問題,測試團隊經常需要暫停指令碼執行以等待所有元素載入完成。這是在對它們進行測試時確保所有web元素都在其中的好方法。

暫停指令碼的一種方法是使用thread.sleep()函式,它會在指定時間內暫停測試指令碼執行。但是此功能存在乙個主要缺陷,假設要開啟網頁,並且選擇等待時間為6秒,如果**實際載入得更快,指令碼會浪費很多時間

在存在更多不確定的場景中,測試人員可能會浪費大量的額外時間執行selenium測試自動化,而在較慢的場景中,可能會獲得失敗的結果。因此,為了避免此類情況,測試人員編寫指令碼時候需要使用selenium隱式等待或顯式等待替換掉原來的thread.sleep()

selenium測試自動化報告的生成可以為帶來巨大的回報,它可以有組織地管理測試資料,從而節省了大量的時間。因此,測試人員可以更好地控制測試進展,因為使用這些資料可以分析測試指令碼何時失敗以及失敗的原因。

隨著web應用程式的ui更改,與之關聯的定位器設定也將會隨之變化,所有相關測試都可能需要重新編寫。針對這個問題有乙個很好的解決方案,通過使用pageobject模型,無需乙個個更改所有測試指令碼。

大多數情況下,測試人員只需更改一次頁面物件,因為所有定位器都位於乙個**儲存庫中。在測試用例中,每個網頁都有乙個單獨的頁面類,以在其上查詢web元素以及這些web元素的頁面方法。這使專案更加可靠穩定,因為框架開發人員無需掃瞄所有**和測試指令碼,只需針對變更的ui元素進行一次性修改即可。

執行selenium測試自動化指令碼必定會遇到一些報錯、故障,甚至是偶現的問題。在這種情況下,建議通過selenium grid收集測試指令碼執行的自動螢幕截圖。

如果正在使用第三方提供的selenium grid執行selenium測試自動化,則不用對此過多擔心。完全可以採取第三方的影象和日誌的手機功能來解決上述問題。

在開始自動化測試之前,提前設計場景和測試方案是乙個好習慣。如果沒有適當的測試設計,直接進入自動化測試具有很大的風險。這就是為什麼要成功完成selenium測試自動化,必須將測試設計以及策略和計畫結合在一起的原因。測試人員需要開發描述測試程式結構以及如何管理測試程式的測試體系結構和軟體框架。

在沒有適當設計的情況下,自動執行測試用例表明測試人員對於指令碼的有效性過於看重。實際上測試用例和測試指令碼的可維護性同樣重要,對於長期的自動化專案和提高自動化測試質量顯得更加重要。畢竟自動化測試通常是乙個長期的專案,更加側重遠期的roi,站在更長期的時間維度編寫測試用例更有助於實現selenium自動化的價值。

自動化工具是諸如自動化瀏覽器測試之類的不同測試活動的重要組成部分。但是測試人員應該知道他們並不能解決所有問題。選擇合適且正確的工具是切換到自動化瀏覽器測試框架的重要組成部分,但這僅僅是乙個開始。

但是通常情況下,有些管理者會誤認為如果選擇正確的工具,就可以實現自動化。實際上沒有工具可以提供所需的一切。即使它們簡化了整個過程,減少了時間,但是如果沒有足夠多的額外資源投入,僅僅依靠自動化工具是難以發揮selenium自動化的價值的。

嘗試在沒有任何人工干預的情況下使用自動化工具時,在識別軟體或應用程式上的複雜物件時,它們可能會出現停頓。如果團隊又對特殊需求進行優化和改進,就可以使該工具克服複雜的情況,並為公司節省更多的隱性成本。

Selenium自動化最佳實踐技巧(下)

書接上文和上上文 使用測試技術是自動瀏覽器測試的最佳實踐之一。作為一名測試人員,總要留出時間和精力都集中在學習測試技術上。當然,手動測試也是需要一定的測試技術才能夠勝任的。不要讓自己擁有的寶貴知識在selenium測試自動化專案中白白浪費。因為測試技術範圍遠遠超出手動測試所要求的。如果測試人員在測試...

selenium 自動化測試。

第一步安裝 谷歌瀏覽器。第三步編寫測試測試指令碼 第四步 安裝selemium coding utf 8 引入webdriver和unittest所需要的包 from selenium import webdriver from selenium.webdriver.common.by import...

《QTP自動化測試最佳實踐》推薦語

這本書由淺入深地引領讀者掌握自動化測試的精髓,有效地幫助我們團隊開展自動化測試工作。環球市場集團 技術總監 餘勁 自動化的回歸測試能幫助測試人員更為快速地驗證軟體系統的功能正確性,為快速交付軟體產品打下堅實的質量保證基礎。本書比較全面地涵蓋了主流自動化測試工具qtp的方方面面技術,是自動化測試工程師...