成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Selenium WebDriver自動化測試的十大優秀實踐

譯文
開發 開發工具 自動化
本文將和您討論Selenium WebDriver API是如何使用瀏覽器驅動,與真實瀏覽器相交互,以及在Selenium自動化測試中的十種優秀實踐。

[[433410]]

【51CTO.com快譯】目前,廣受開發界歡迎的Selenium,不但是針對Web應用的自動化開源框架,而且可以處理諸如網站監控等各種管理任務。同時,作為科技行業內,最為流行的開源式自動化測試工具,Selenium為端到端測試提供了強大的、基于瀏覽器的自動化測試服務。

Selenium WebDriver從誕生之日起也備受歡迎。它既可以直接運行在瀏覽器上,又能夠使用瀏覽器的內置功能,去觸發那些由測試人員編寫的自動化測試。如下圖所示,Selenium WebDriver 架構由Selenium客戶端庫、JSON Wire協議、瀏覽器驅動、以及瀏覽器,四個主要模塊構建而成。

憑借著多年使用Selenium框架的經驗,我將在下面和您討論Selenium WebDriver API是如何使用瀏覽器驅動,與真實瀏覽器相交互,以及在Selenium自動化測試中的十種優秀實踐,以方便您開發設計出優秀的、且具有可擴展性的測試套件。

自動化測試的優秀實踐

1. 設置命名約定。為已創建的每種類型文件建立標準化的命名約定,將有助于簡化開發和Selenium的測試過程。例如:根據項目的某個階段性需求,貴團隊可能需要臨時增加某個成員臨時編寫的測試代碼。不過在幾個月后,當您的團隊重新訪問該測試時,您可能已記不得、或無法弄清當初的意圖與目的,而只能被動地留存到開發完整的實施階段。因此,我們需要通過以一種“不言自明(self-explanatory)”的方式,去命名各種測試用例,以方便您和您的團隊快速地了解其測試特性與意圖,避免花費時間進行不必要的來回滾屏,或反復瀏覽與比對。此外,如果某些測試在執行階段出現了失敗,那么我們只需快速地查看測試名稱,便可以輕松地定位是哪些功能出現了問題。

2. 避免阻止休眠的調用。作為顯式等待的一個例子,休眠模式雖然并非Selenium WebDriver的特性,但是大多數編程語言的常見功能。當您的程序正在運行時,Thread.Sleep()通常會在某個線程中,按照設定的方式,執行各種自動化檢查。一旦滿足調用的條件,它就會指示應用程序在一段時間內,除了休眠,不做任何事。

不過,Selenium提供了隱式(Implicit)和顯式(Explicit)等待兩種方式,能夠比休眠更加有效地處理各種延遲。其中,隱式等待會通知目標瀏覽器,為頁面上現存的所有Web元素,等待指定的持續時間。如果某個元素的可用性快于隱式延遲時間,那么程序將會順利地移至下一行代碼執行。可見,我們需要避免阻止休眠的調用。讓Selenium自行使用隱式和顯式等待來進行處理。請通過鏈接-- https://itnext.io/how-to-using-implicit-and-explicit-waits-in-selenium-d1ba53de5e15,了解更多有關Selenium隱式和顯式等待的信息。

3. 選擇最適合的Web定位器。我們在執行Selenium自動化測試時,可能碰到的一項挑戰是,如果那些與測試代碼中使用到的定位器相關的具體實現發生了變化,那么我們必須對自動化測試進行相應的更改。其中包括:ID、名稱、鏈接文本、XPath、CSS選擇器、DOM定位器等(請參見下表)。

可見,對于如此繁多的Web定位器,我們有必要選擇合適的定位器,以盡量減少由于用戶界面的變化,而對測試引發的影響。其中,ID、Class和Name不僅易于使用,而且相對其他Web定位器更加穩定。請通過鏈接--https://itnext.io/the-concept-of-the-right-locator-for-selenium-webdriver-automated-scripts-5b8c6bf528e5,了解更多有關Selenium WebDriver自動化腳本如何選擇恰當的定位器的概念。

4. 實施日志記錄和報告。如果在某個廣泛的測試套件中,有個特定的測試失敗了,那么我們可能很難準確地定位失敗的測試用例。對此,測試控制臺(或后臺)日志記錄,將有助于我們更好地理解代碼,在測試代碼中找到適當的位置,進而及時抑制問題。

在流行編程語言中,我們經常用到的日志級別包括:調試性、通知性、警告性、錯誤和重要的日志等。不過,在測試的過程中,添加不必要的日志,也可能會拖慢測試的整體進程。因此,我建議您僅在有助于跟蹤那些失敗原因的場景中,添加具有相應錯誤級別的日志。請通過鏈接--https://itnext.io/implement-logging-and-reporting-best-practices-2cc4b58de9d3,了解更多有關實施日志記錄和報告的優秀實踐。

5. 使用各種設計模式和原則。面對設計和開發自動化過程中的潛在問題,開發人員往往會事先制定和采用各種模式。對此,我們可以回溯到《設計模式(Design Patterns)》一書。該書提供了各種面向對象編程的適用模式。您幾乎能夠為每一種問題找到對應的解決方案。當然,此類設計模式的概念也在不斷迭代和發展。新的工廠(Factory)和裝飾(Decorator)模式也被加入了進去。請通過鏈接--https://antony-s-smirnov.medium.com/all-about-design-patterns-in-automation-testing-7276ad051db8,了解更多有關自動化測試中的設計模式。

6. 集中式的文件夾結構。在Selenium團隊的中央存儲庫中,開發和Selenium測試人員,更愿意使用約定好的命名規則和定義好的文件夾結構。而沒人愿意將時間浪費在,錯誤文件名和代碼問題所產生的負面影響上。例如:在處理那些使用Selenium框架的測試時,我們必須關注測試代碼的可維護性。通常,標準的項目是由Src和Test文件夾所組成。其中,Src文件夾可以包含各種子目錄,例如:頁面對象、幫助函數、以及那些包含在測試場景中的Web定位器文件。而Test文件夾則包含了各種實際的測試實現。

7. 數據驅動測試。被開發出的Web應用也需要針對不同的瀏覽器、設備、以及操作系統的組合(即多種數據集)進行測試。通過Selenium,您可以使用數據驅動框架、關鍵字驅動框架、以及兩者的混合。由于被輸入的測試數據,往往取自外部Excel或CSV等文件,因此數據驅動框架會在如何將數據集與實際測試代碼分離的方面,十分有效。在測試自動化腳本中,對測試值進行硬編碼,并非一種可擴展的解決方案。它往往會導致不必要的軟件臃腫、以及重復性的測試代碼。因此,更好的方案是,使用通過Selenium實現數據驅動的參數化測試。參數化將有助于針對不同的輸入組合(或數據集),去執行各種測試用例。例如:使用TestNG進行參數化、JUnit參數化、以及開展數據驅動的測試等。請通過鏈接--https://antony-s-smirnov.medium.com/how-to-use-the-data-provider-pattern-in-the-project-ea12430d9275,了解更多有關如何在項目中使用數據提供者的模式。

8. 在適當的場景中使用斷言和驗證。

9. 避免代碼的重復,或包裝Selenium的各種調用。

10. 在Selenium中,使用針對JUnit和TestNG編寫的并行測試案例。

原文標題:The best practices test automation withSeleniumWebDriver ,作者: Anton Smirnov

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2020-04-09 13:16:48

自動化工具腳本

2020-09-14 07:00:00

測試自動化框架

2024-01-26 06:09:03

自動化測試技術

2023-03-13 16:25:28

2022-09-12 16:02:32

測試企業工具

2024-08-12 08:36:28

2021-09-07 09:00:00

開發測試工具

2025-04-03 11:25:39

2023-09-20 16:22:44

2024-11-15 15:56:56

2022-07-29 14:18:11

數據安全數據丟失防護

2022-07-18 08:57:08

容器安全容器惡意攻擊

2022-08-19 15:42:26

安全數據隱私網絡安全

2011-01-20 10:17:25

ibmdwWeb

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2022-12-28 14:06:25

自動化數字孿生

2020-04-01 10:34:00

暗網自動化攻擊數據庫泄露

2020-04-29 11:19:13

機器人流程自動化RPA

2020-12-08 08:00:00

機器學習人工智能超自動化

2020-12-04 19:08:57

自動化數字化機器人
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区久久精品爱微奶 | 东京久久| 久久一区视频 | 日本在线播放 | 欧美区日韩区 | 欧美精品一二三 | 成年视频在线观看 | 伊人精品久久久久77777 | 国产精品99久久久久久久久久久久 | 91精品国产乱码久久久久久久久 | 欧美黄色一级毛片 | 国产精品久久久av | 国产成人网 | www国产亚洲精品 | 国产真实精品久久二三区 | 一区二区三区国产精品 | 草逼网站 | 日韩免费一区二区 | 久久亚洲天堂 | www.国产 | 成人免费视频网站在线观看 | 欧美一级全黄 | 91精品国产一区二区在线观看 | 中文字幕视频在线观看 | 日韩一区二区在线视频 | 日本aⅴ中文字幕 | 久久神马| 久久久久成人精品 | 国产激情视频在线免费观看 | 日韩精品一区二区三区中文在线 | 九九久久久 | 亚洲一级黄色 | 国产精品久久777777 | 日韩综合在线播放 | 国产精品人人做人人爽 | 在线中文视频 | 日韩播放 | 久久艹免费视频 | 午夜看片网站 | 久久激情视频 | 国产成人精品一区二区三 |