應用程式測試代理是測試案例生成、管理和執行代理,由 Firebase 中的 Gemini 提供技術支援。您可以使用自然語言定義測試目標,代理程式會運用 AI 理解及瀏覽應用程式、模擬使用者互動,並提供詳細的測試結果。
應用程式測試代理程式如何使用您的資料
應用程式測試代理是由 Gemini in Firebase 提供,並受相同條款規範。如要進一步瞭解 Gemini in Firebase 如何使用您的資料,請參閱「Gemini in Firebase 如何使用您的資料」一文。
事前準備
如果您尚未向 Firebase 註冊應用程式,請先完成這項操作。
如果您未使用任何其他 Firebase 產品,只需要建立專案並註冊應用程式即可,不必在應用程式中新增任何 SDK。不過,如果您日後決定使用其他產品,請務必完成「使用控制台新增 Firebase」Firebase中的所有步驟。
準備好將應用程式的預先發布版發布給測試人員時,請使用一般程序建構 APK 或 AAB,然後上傳至 Firebase 控制台的 App Distribution。您必須使用偵錯金鑰或應用程式簽署金鑰簽署 APK。
建立測試案例
如要執行 AI 引導的測試,應用程式測試代理會使用自然語言測試案例,針對應用程式執行測試。
每個測試案例都會細分為多個步驟,並依序執行。
步驟可將測試案例劃分為多個階段,每個階段都有各自的成功條件。代理程式可能會在任何一個步驟中採取多項動作。
如要建立測試案例,請開啟Firebase控制台的「App Distribution」頁面,然後按照下列步驟操作:
- 在「測試案例」分頁中,按一下「新增測試案例」。如果不想自行建立測試案例,可以修改或使用我們提供的範例測試案例。
- 在「新增測試案例」對話方塊中,為測試案例命名。這項資訊用於識別測試,但代理程式會忽略這項資訊。
- 建議點按「新增其他步驟」按鈕,將測試分成多個步驟。
- 為每個步驟設定「目標」,說明應用程式測試代理程式應執行的動作。
- (選用) 新增提示,提供更多資訊,協助應用程式測試專員瞭解及操作應用程式。
- (選用) 新增「成功條件」,協助應用程式測試專員判斷步驟是否順利完成。
- 完成測驗自訂作業後,按一下「儲存」。
測試案例範例
以下範例說明如何使用 App Testing 代理程式建立測試案例:
測試首頁 |
測試用標題
|
載入首頁
|
目標
|
載入首頁
|
提示
|
略過所有新手上路畫面。關閉所有彈出式視窗。請勿登入。
|
成功標準
|
螢幕上會顯示應用程式主畫面、所有圖片都已載入,且不會顯示任何錯誤。
|
執行測試
應用程式測試代理可讓您在管理中心中執行 AI 輔助測試,只要在「版本」或「測試案例」頁面點選「執行測試」按鈕即可。這會開啟「應用程式測試」虛擬服務專員自訂畫面,您可以在這裡選擇一或多個現有測試案例,供虛擬服務專員執行。您也可以選擇要測試的裝置,以及是否提供任何登入憑證。
您也可以變更測試類型,選擇執行隨機檢索測試。
隨機檢索測試會使用「自動測試人員」功能。
您可以在版本「應用程式測試代理程式」分頁的「版本」頁面中,查看測試結果。按一下「查看詳細資料」按鈕,即可開啟「測試結果」對話方塊,查看所有問題、應用程式的螢幕截圖,以及 Gemini 在測試期間執行的動作。
自動測試建構作業
如要自動在新版本 (例如來自 CI/CD 管道) 上執行應用程式測試代理測試,可以使用 App Distribution 的 Gradle 或 fastlane 外掛程式,或是 Firebase CLI,將版本發布給代理。
使用 Firebase CLI 自動測試建構作業
如要使用 App Testing 代理程式功能,您必須至少指定一個測試裝置和一個測試案例 ID。您可以在 Firebase 控制台的「測試案例」頁面中,找到並下載測試案例 ID。如要進一步瞭解如何開始使用 Firebase CLI,以及設定發布作業的不同方式,請參閱「使用 Firebase CLI 將 Android 應用程式發布給測試人員」。
執行 appdistribution:distribute
指令上傳應用程式,並使用下列參數將發布作業設定為 App 測試代理程式功能:
appdistribution:distribute 選項 |
--test-devices 或
--test-devices-file
|
您要將版本發布至應用程式測試代理功能所用的測試裝置。
您可以指定測試裝置,方法是以半形分號分隔測試裝置清單:
--test-devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您也可以指定純文字檔的路徑,其中包含以半形分號分隔的測試裝置清單:
--test-devices-file: "/path/to/test-devices.txt"
|
--test-username
|
測試期間自動登入時要使用的使用者名稱。
|
--test-password 或
--test-password-file
|
測試期間自動登入時要使用的密碼。
或者,您也可以指定含有密碼的純文字檔路徑:
--test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
以非同步方式執行測試。前往 Firebase 控制台查看自動測試結果。
|
--test-case-ids 或
--test-case-ids-file
|
以半形逗號分隔的測試案例 ID 清單,用於執行 AI 輔助自動化測試:
--test-case-ids: "load-app,play-the-first-level"
或者,您也可以指定純文字檔案的路徑,其中包含以半形逗號或換行符號分隔的測試案例 ID 清單:
--test-case-ids-file: "/path/to/test-case-ids.txt"
|
使用 Gradle 自動測試建構作業
如要使用 App Testing 代理程式功能,您必須至少指定一個測試裝置和一個測試案例 ID。您可以在 Firebase 控制台的「測試案例」頁面中,找到並下載測試案例 ID。如要進一步瞭解如何開始使用 Gradle,以及設定發布作業的不同方式,請參閱「使用 Gradle 將 Android 應用程式發布給測試人員」。
您可以新增至少一個 firebaseAppDistribution
區段來設定 App Distribution,並使用下列參數設定發布至應用程式測試代理程式功能:
App Distribution 建立參數 |
testDevices 或
testDevicesFile
|
您要將版本發布至應用程式測試代理功能所用的測試裝置。
您可以指定測試裝置,方法是以半形分號分隔裝置規格清單
testDevices="model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您也可以指定檔案路徑,其中包含以半形分號分隔的裝置規格清單:
testDevicesFile="/path/to/testDevices.txt"
|
testUsername
|
測試期間自動登入時要使用的使用者名稱。
|
testPassword 或
testPasswordFile
|
測試期間自動登入時要使用的密碼。
或者,您也可以指定含有密碼的純文字檔路徑:
testPasswordFile="/path/to/testPassword.txt"
|
testNonBlocking |
以非同步方式執行測試。前往 Firebase 控制台查看自動測試結果。
|
testCases 或
testCasesFile
|
以半形逗號分隔的測試案例 ID 清單,用於執行 AI 輔助自動化測試:
testCases: "load-app,play-the-first-level"
或者,您也可以指定純文字檔案的路徑,其中包含以半形逗號或換行符號分隔的測試案例 ID 清單:
testCasesFile: "/path/to/test-case-ids.txt"
|
使用 fastlane 自動測試建構作業
如要使用 App Testing 代理程式功能,您必須至少指定一個測試裝置和一個測試案例 ID。您可以在 Firebase 控制台的「測試案例」頁面中,找到並下載測試案例 ID。如要進一步瞭解如何開始使用 fastlane,以及設定發布作業的不同方式,請參閱「使用 fastlane 將 Android 應用程式發布給測試人員」一文。
在 ./fastlane/Fastfile
軌道中新增 firebase_app_distribution
區塊。使用下列參數,為 App Testing 代理程式功能設定發布作業:
firebase_app_distribution 參數 |
test_devices 或
test_devices_file
|
您要將版本發布至應用程式測試代理功能所用的測試裝置。您可以指定測試裝置,方法是以半形分號分隔測試裝置清單:
test_devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您也可以指定純文字檔的路徑,其中包含以半形分號分隔的測試裝置清單:
test_devices_file: "/path/to/test-devices.txt"
|
test_username
|
測試期間自動登入時要使用的使用者名稱。
|
test_password 或
test_password_file
|
測試期間自動登入時要使用的密碼。
或者,您也可以指定含有密碼的純文字檔路徑:
test_password_file: "/path/to/test-password.txt"
|
test_non_blocking |
以非同步方式執行測試。前往 Firebase 控制台查看自動測試結果。
|
--test_case_ids 或
--test_case_ids_file
|
以半形逗號分隔的測試案例 ID 清單,用於執行 AI 輔助自動化測試:
--test_case_ids: "load-app,play-the-first-level"
或者,您也可以指定純文字檔案的路徑,其中包含以半形逗號或換行符號分隔的測試案例 ID 清單:
--test_case_ids_file: "/path/to/test-case-ids.txt"
|
偵錯測試結果
如果測試結果與預期不同,您可以使用「測試結果」頁面「查看詳細資料」下方的「顯示代理程式檢視畫面」切換鈕,對測試進行偵錯。代理程式檢視畫面會顯示應用程式測試代理程式使用應用程式無障礙資訊時,偵測到的畫面元素。如要進一步瞭解服務專員看到的內容,可以從動作溢位選單下載相關資訊。
您也可以使用「測試結果」頁面上的「查看構件」按鈕,查看測試結果的所有影片、記錄和其他 Cloud 構件。
已知問題和限制
應用程式測試代理預先發布版有一些已知限制:
- 由於應用程式測試代理會使用生成式 AI 測試應用程式,因此有時會採取不同的動作,但仍會遵循相同的指令。
- 應用程式測試代理僅支援下列動作:輕觸、輸入文字、向上/下/左/右滑動,以及等待。
- 如果測試只包含一個步驟,但需要執行多個動作才能完成,應用程式測試代理就無法順利執行測試。如果將複雜任務拆成多個較短的步驟,效果會更好。
- 應用程式測試代理有時不會捲動畫面,顯示螢幕外的其他元素。如果沒有可捲動的視覺指標,就更容易發生這種情況。做為替代方案,您可以使用「提示」欄位建議捲動。
- 應用程式測試代理程式有時無法計數,例如執行特定次數的動作。
- 如果啟用
FLAG_SECURE
,應用程式測試代理程式就無法瀏覽應用程式。對方只會看到空白畫面,不會看到應用程式的螢幕截圖。
測試配額
預先發布期間,您可以在配額限制內免費使用 AI 輔助測試。每個 Firebase 專案的預設配額上限為每月 200 次測試。
請注意,如果您選擇執行多個測試案例,或在多部裝置上執行相同的測試案例,系統會將這些視為多項測試。舉例來說,如果您在 2 部裝置上執行 2 個測試案例,系統會將此視為共 4 項測試。
如要提高配額,請與 Firebase 支援團隊聯絡並說明用途。