
馬克·柯林
本書通過大量測試代碼、界面截圖和操作步驟,介紹瞭如何使用SeleniumWebDriver3.0實現Web自動化測試。主要內容包括如何構建測試框架、如何處理失敗的測試、Selenium生成的各種異常的含義、自動化測試失敗的原因、頁面對象的使用方法、高級用戶交互API的使用方法、JavascriptExecutor類的使用方法、Selenium的缺點、如何在Selenium中使用Docker等。本書有助於讀者快速掌握並在實際工作中使用SeleniumWebDriver3.0,適合測試人員、開發人員以及相關專業人士閱讀。
5星推薦。推薦【有selenium基礎+有Java基礎+2年自動化測試項目經驗】的測試人員閱讀。 ~~~ 摘要 【1】自動化測試框架設計時,需要注意:測試效率要高、代碼運行要穩定和可靠、框架要可擴展 【2】自動化測試的難點: 如何處理失敗的測試 如何根據異常判斷測試出的原因 如何巧妙地選擇等待策略和超時機制 如何使用頁面對象避免失效 如何使用高級用戶交互AP|執行復雜的操作 如何使用JavaScript解決複雜的自動化測試問題。 【3】編寫自動化測試框架的目的是:隱藏Selenium的細節。要達到這個目的,需要對Selenium的API非常瞭解。 【4】定期運行smoke test,確保開發在改動的版本中,沒有影響到核心功能。 【5】因爲啓動Web瀏覽器是一項計算量很大的任務,所以可以選擇在每次測試之後暫不關閉瀏覽器。 【6】使用顯式等待。不建議使用Thread.sleep的方式來進行硬等待,因爲影響頁面加載的外部因素很多,運行電腦不同、服務器不同、JavaScript引擎性能不同、網絡不同等,都會影響頁面的加載時長。也不建議使用隱式等待,因爲如果要檢查某個元素是否不存在,隱式等待會增加該檢查的執行時間,從而減緩測試速度,同時,隱式等待可能會影響顯式等待的運行。 【7】Selenium對於元素是否可以交互,有很多考慮因素,其中還包括了元素的z-index屬性。有時,視覺上要單擊的元素是可見的,但是selenium會視爲不可見,原因是元素上方覆蓋了一個透明元素,阻擋了單擊操作,此時selenium會將其視爲不可見。 【8】如果你正在使用JavaScript執行器來重寫Selenium已經提供的代碼,那絕對是錯誤的做法。你所編寫的代碼未必更加出色。因爲這是Selenium開發團隊長期以來一直在做的事,很多人都投入其中,大部分人都是該領域的專家。如果你還在編寫在頁面上查找元素的方法,則很可能已誤入歧途。請使用Selenium已經提供的.findElement()方法。 【9】文件下載的最好方法是使用Http的方法去下載,再保存。AutoIt只適用於Windows,如果CI服務器是Linux系統,則不適合。 ~~~ 新知識點&難點 【1】如何使用TestNG在同一個瀏覽器中運行多個實例 【2】如何將Docker和Selenium結合在一起 【3】如何編寫和應用監聽器 【4】Selenium的3種內置等待機制 【5】顯示等待的核心——流式等待 【6】導入JavaScript庫 【7】執行異步腳本 【8】跟蹤網絡流量 【9】使用JMeter作爲記錄網絡流量的代理服務器,收集Selenium運行期間向服務器發送的網絡請求,從而構建一個基本的測試計劃 【10】將Docker整合到Selenium中