CEF-based 應用程式的自動化測試

基本上,CEF-based application 的自動化測試有兩種做法:
Accessibility – 適用 native UI (與 web UI)
啟用 CEF/Chromium 對 accessibility 的支援,再透過不同 OS 的 accessibility API 操控 UI element。
WebDriver – 只適用於 web UI
啟用 CEF/Chromium 的 remote debugging,再搭配 ChromeDriver (WebDriver API) 操控網頁的內容。

Note 在實務上我們通常無法單獨選用一種方法來實作自動化測試,因為 CEF-based application 類似手機上的 hybrid apps,都是用 WebView (在這裡是 CEF) 將網頁內容內嵌在 native UI 中,在一個測試中要交互操作 native UI 跟 web UI 的情況 (切換 context) 並不少見。
下面就用一個簡單的 UI flow 來做說明:(只有第二個畫面 Main 灰色的部份是 web UI,其餘都是 native UI)
test-automation/cef-based-flow.png

假設有一個 test case 會走過上面的 3 個畫面:

  1. 開啟應用程式,完成登入的動作。
  2. 在主畫面搜尋關鍵字 (右上角),並確認搜尋結果 (顯示在中間的網頁) 是否正確。
  3. 透過選單叫出 About 對話框,確認版號是否正確。
可以歸納出 CEF-based application 的特性:
  • 在一個測試中可能交互操作 native UI 跟 web UI,而且 WebView/CEF 可能要經過一些 native UI 的操作後才會出現。
  • 測試的重點也包括 web UI 跟外圍 native UI 的連動。

因此,交互使用 accessibility 跟 WebDriver 分別操作 native UI 跟 web UI 會是最理想的方式,除非 native UI 只有外框,而且一執行起來就會看到 web UI,這種情況就可以單獨使用 WebDriver。

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s