應用程式測試代理程式 (Android)

「應用程式測試」代理是測試案例生成、管理和執行代理,由 Firebase 中的 Gemini 提供技術支援。您可以使用自然語言定義測試目標,虛擬服務專員會運用 AI 瞭解及操作應用程式、模擬使用者互動,並提供詳細的測試結果。

「應用程式測試」代理如何使用您的資料

應用程式測試代理由 Gemini in Firebase 提供,並適用相同條款。如要進一步瞭解 Gemini in Firebase 如何使用您的資料,請參閱「Gemini in Firebase 如何使用您的資料」一文。

事前準備

如果尚未註冊應用程式,請透過 Firebase 註冊

如果您未使用任何其他 Firebase 產品,只需要建立專案並註冊應用程式即可,不必在應用程式中新增任何 SDK。不過,如果您日後決定使用其他產品,請務必完成「使用 Firebase 控制台新增 Firebase」一文中的所有步驟。

建立測試案例

如要執行 AI 引導的測試,應用程式測試代理會使用自然語言測試案例,針對應用程式執行測試。

每個測試案例都會細分成多個步驟,並依序執行。 步驟可讓您將測試案例分成多個階段,每個階段都有自己的判斷。代理程式可能會在任何一個步驟中採取多項動作。

建立測試案例的方式有兩種:使用 YAML 檔案或 Firebase 控制台。您可以透過 YAML 檔案自行管理測試案例,通常是在受版本控管的原始碼存放區中。或者,Firebase 控制台可以遠端儲存測試案例和 App Distribution 資料。

使用 YAML 檔案

以下範例顯示定義兩個測試案例的 YAML 檔案:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

您可以在單一檔案中整理測試群組,並在多個檔案中分隔這些測試套件。如要新增必要條件測試案例,請在測試中新增 ID,然後使用 prerequisiteTestCaseId 參照該 ID。

使用 App Distribution 控制台

或者,您也可以在 Firebase 控制台中建立及管理測試案例。如要建立測試案例,請開啟 Firebase 控制台App Distribution 頁面,然後按照下列步驟操作:

  1. 在「測試案例」分頁中,按一下「新增測試案例」。如果不想自行建立測試案例,可以修改或使用提供的測試案例範例
  2. 在「新增測試案例」對話方塊中,為測試案例命名。這項資訊用於識別測試,但代理程式會忽略。
  3. (選用) 選取包含設定步驟的必要條件測試案例,在主要測試前執行。如果先決條件測試失敗,整個測試都會標示為失敗。測試結果會一併顯示先決條件和主要測試的步驟與結果。
  4. 建議點選「新增另一個步驟」按鈕,將測試分成多個步驟。
  5. 為每個步驟設定目標,說明應用程式測試代理程式應在該步驟執行的動作。
  6. (選用) 新增提示,提供更多資訊,協助應用程式測試專員在該步驟中瞭解及操作應用程式。
  7. 新增最終畫面判斷,協助應用程式測試專員判斷步驟是否順利完成。這項斷言應只參考畫面上顯示的內容。
  8. 完成測驗自訂作業後,按一下「儲存」

測試案例範例

以下範例說明如何使用 App Testing 代理程式建立測試案例:

測試用標題

載入首頁

目標

載入首頁

提示

略過所有新手上路畫面。關閉所有彈出式視窗。請勿登入。

最終畫面斷言

螢幕上會顯示應用程式主畫面、所有圖片都已載入,且不會顯示任何錯誤。

執行測試

測試的執行方式取決於測試案例的建立和管理方式。如果您使用 YAML 檔案定義測試案例,則會使用 Firebase CLI 執行這些測試。如果您在應用程式發布控制台中建立測試案例,則可透過控制台或其中一個應用程式發布 CLI 工具執行測試案例。

使用 YAML 檔案

您可以使用 Firebase CLI 執行 YAML 檔案中定義的測試案例。

  1. 安裝或更新至最新版的 Firebase CLI。建議您下載適用於作業系統的 CLI 獨立二進位檔。
  2. 登入並測試是否可以存取專案。請注意,如果您在 CI 環境中使用 Firebase CLI,也可以透過服務帳戶或使用 login:ci 進行驗證。
  3. 請執行 apptesting:execute 指令。例如:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

必要條件:應用程式的 Firebase 應用程式 ID。您可以在 Firebase 控制台的「General Settings」(一般設定) 頁面找到應用程式 ID。

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

包含測試案例 YAML 檔案的目錄路徑。這項指令會遞迴搜尋這個目錄下的內容,因此您可以選擇將檔案整理到子目錄中。如未設定,系統預設會使用「./tests」。

--test-devices
--test-devices-file

您要將版本發布至「應用程式測試」代理程式功能的測試裝置。

您可以指定測試裝置,方法是以半形分號分隔測試裝置清單:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

或者,您也可以指定路徑,指向包含以半形分號分隔測試裝置清單的純文字檔:

--test-devices-file "/path/to/test-devices.txt"

您可以使用 gcloud CLI 查詢可用的裝置型號。

--test-non-blocking

如果設定此選項,指令會啟動測試,然後立即傳回結果,不會等待測試完成。

--test-file-pattern

規則運算式模式。系統只會執行符合這個模式的檔案所含測試。

--test-name-pattern

規則運算式模式。系統只會執行顯示名稱符合這個模式的測試。

/path/to/app/binary

選用:應用程式二進位檔的路徑。如果省略這個值,代理程式會使用上傳至 App Distribution 的最新版本,用於指定的應用程式。

使用 App Distribution 控制台

如要執行儲存在 App Distribution 中的測試案例,可以使用 Firebase 控制台、Firebase CLI,或 App Distribution 的 Gradle 或 fastlane 外掛程式。

使用 YAML 檔案匯入及匯出測試案例

如要在 Firebase 控制台以外管理測試案例,從 YAML 檔案匯入測試案例就非常實用。匯出測試案例也有助於在專案之間移動案例。您可以使用 LLM 修正現有測試案例或建立新測試案例。您可以從 Firebase 控制台的「測試案例」頁面匯入及匯出測試案例,也可以使用 Firebase CLI 透過程式輔助執行這項操作。如需 YAML 測試案例範例,請參閱「建立 YAML 測試案例」。

查看測試結果

如要查看測試結果,請前往版本「應用程式測試代理程式」分頁的「版本」頁面。按一下「查看詳細資料」按鈕,開啟「測試結果」對話方塊,查看任何問題、應用程式的螢幕截圖,以及 Gemini 在測試期間執行的動作。

如果測試包含重新執行的動作,您可以查看原始的 AI 輔助測試執行或清除快取。

如要進一步瞭解測試結果,請參閱下表:

圖示 名稱 說明
spark AI 動作 表示 App 測試代理程式使用 Gemini 決定採取動作或結束步驟。
重播 已重播動作 表示 App Testing 代理程式已重播先前成功執行的測試動作。
spark AI 斷言 表示 App Testing 代理程式在重播先前成功執行的相同測試動作後,使用 Gemini 驗證最終畫面判斷結果。

偵錯測試結果

如果測試結果與預期不同,您可以使用「測試結果」頁面「查看詳細資料」下方的「顯示代理程式檢視畫面」切換鈕,對測試進行偵錯。代理檢視畫面會顯示應用程式測試代理使用應用程式無障礙資訊時,偵測到的畫面元素。如要進一步瞭解服務專員看到的內容,可以從動作溢位選單下載相關資訊。

您也可以使用「測試結果」頁面上的「查看構件」按鈕,查看測試結果的所有影片、記錄和其他 Cloud 構件。

已知問題和限制

應用程式測試代理預先發布版有一些已知的限制:

  • 由於應用程式測試代理程式會使用生成式 AI 測試應用程式,因此有時會採取不同的動作,但仍會遵循相同的指令。
  • 應用程式測試代理只支援下列動作:輕觸、輸入文字、向上/下/左/右滑動、長按、拖曳、返回和等待。
  • 如果測試只包含一個步驟,但需要執行許多動作才能完成,應用程式測試代理就無法順利執行。如果將複雜工作拆成多個較短的步驟,效果會更好。
  • 應用程式測試代理有時不會捲動畫面,顯示螢幕外的其他元素。如果沒有可捲動的視覺指標,這種情況就更常發生。做為替代方案,您可以使用「提示」欄位建議捲動。
  • 應用程式測試代理有時無法正確計數,例如執行特定次數的動作。
  • 如果啟用 FLAG_SECURE,應用程式測試代理程式就無法瀏覽應用程式。只會看到空白畫面,不會看到應用程式的螢幕截圖。

測試配額

預先發布期間,AI 輔助測試會在配額限制內免費提供。預設配額上限為每個 Firebase 專案每月 200 次測試。

請注意,如果您選擇執行多個測試案例,或在多部裝置上執行相同的測試案例,系統會將這些視為多項測試。舉例來說,如果您在 2 部裝置上執行 2 個測試案例,系統會將此視為共 4 項測試。

如要提高配額,請與 Firebase 支援團隊聯絡,並說明您的用途。