應用程式測試代理是 Firebase 中由 Gemini 提供支援的測試案例產生、管理和執行代理程式。您可以使用自然語言定義測試目標,代理程式就會運用 AI 技術來瞭解及瀏覽應用程式、模擬使用者互動情形,並提供詳細的測試結果。
App Testing 服務代理如何使用您的資料
應用程式測試代理由 Firebase 中的 Gemini 提供,並受相同條款規範。如要進一步瞭解 Firebase 中的 Gemini 如何使用您的資料,請參閱「Firebase 中的 Gemini 如何使用您的資料」。
事前準備
如果您尚未註冊應用程式,請向 Firebase 註冊應用程式。
如果您不使用任何其他 Firebase 產品,只需建立專案並註冊應用程式即可。您不需要在應用程式中新增任何 SDK。不過,如果您日後決定使用其他產品,請務必完成「使用 Firebase 控制台新增 Firebase」中的所有步驟。
當您準備好將應用程式的預先發布版發行給測試人員時,請使用一般程序建構 APK 或 AAB,然後將其上傳至 Firebase 主控台的應用程式發行功能。您必須使用偵錯金鑰或應用程式簽署金鑰簽署 APK。
建立測試案例
為了執行 AI 引導測試,應用程式測試代理會使用自然語言測試案例,針對應用程式執行測試。
每個測試案例都會細分為步驟,並依序執行。您可以使用步驟將測試案例分成各個階段,每個階段都有各自的成功標準。在任何步驟中,代理人可能會採取多項動作。
如要建立測試案例,請開啟 Firebase 主控台的 App Distribution 頁面,然後執行下列步驟:
- 在「Test Cases」分頁中,按一下「New test case」。如果您不想自行建立測試案例,可以修改或使用我們提供的範例測試案例。
- 在「Add test case」對話方塊中,為測試案例命名。這個值用於識別測試,但會遭到服務代理程式忽略。
- 建議您按一下「新增其他步驟」按鈕,將測試分成多個步驟。
- 為每個步驟設定目標,說明應用程式測試代理應在該步驟中執行的動作。
- (選用) 新增提示,提供額外資訊,協助應用程式測試服務專員在該步驟中瞭解及操作應用程式。
- (選用) 新增成功標準,協助應用程式測試代理程式判斷何時已成功完成步驟。
- 完成自訂測驗後,按一下「儲存」。
測試案例範例
以下是使用應用程式測試代理程式建立測試案例的範例:
測試首頁 | |
---|---|
測試用標題 |
載入首頁 |
目標 |
載入首頁 |
提示 |
略過所有新手上路畫面。關閉所有彈出式視窗。請勿登入。 |
成功標準 |
應用程式主畫面會顯示在螢幕上,所有圖片都已載入,且不會顯示任何錯誤。 |
執行測試
您可以透過應用程式測試代理,在控制台中執行 AI 輔助測試,方法是點選「版本」或「測試案例」頁面中的「執行測試」按鈕。這麼做會開啟「App Testing」服務專員自訂畫面,您可以選擇一或多個現有測試案例,讓服務專員執行。您也可以選擇要測試的裝置,以及是否要提供任何登入憑證。
您也可以變更測試類型,選擇執行隨機檢索測試。隨機檢索測試會使用自動化測試器功能。
您可以在「版本」頁面的「應用程式測試代理程式」分頁中,查看測試結果。按一下「查看詳細資料」按鈕,系統就會開啟「測試結果」對話方塊,並顯示任何問題、應用程式的螢幕截圖,以及 Gemini 在測試期間採取的動作。
自動測試建構作業
如要在新的版本上自動執行應用程式測試代理測試 (例如透過 CI/CD 管道),您可以使用 App Distribution 的 Gradle 或 fastlane 外掛程式,或是 Firebase CLI,將版本發布至代理。
使用 Firebase CLI 自動測試建構項目
您必須指定至少一個測試裝置和一個測試案例 ID,才能使用 App Testing 代理程式功能。您可以在 Firebase 控制台的「測試案例」頁面中找到並下載測試案例 ID。如要進一步瞭解如何開始使用 Firebase CLI,以及設定發布作業的不同方式,請參閱「使用 Firebase CLI 將 Android 應用程式發布給測試人員」。
執行 appdistribution:distribute
指令上傳應用程式,並使用下列參數將發布作業設為 App Testing 代理程式功能:
appdistribution:distribute options | |
---|---|
--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 自動測試建構作業
您必須指定至少一個測試裝置和一個測試案例 ID,才能使用 App Testing 代理程式功能。您可以在 Firebase 控制台的「測試案例」頁面中找到並下載測試案例 ID。如要進一步瞭解如何開始使用 Gradle,以及設定發行作業的不同方式,請參閱「使用 Gradle 將 Android 應用程式發布給測試人員」。
您可以新增至少一個 firebaseAppDistribution
區段來設定 App Distribution,並使用下列參數將發布作業設定為 App Testing 代理程式功能:
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 自動測試建構作業
您必須指定至少一個測試裝置和一個測試案例 ID,才能使用 App Testing 代理程式功能。您可以在 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 來測試您的應用程式,因此有時會在遵循相同指示的情況下採取不同的動作。
- 應用程式測試代理程式只支援下列動作:輕觸、輸入文字、向上捲動、向下捲動和等待。
- 應用程式測試代理無法執行僅包含單一步驟的測試,因為這個步驟需要執行多個動作才能完成。將複雜的任務拆解為多個較短的步驟,可提升效能。
- 應用程式測試代理有時不會捲動畫面,因此無法顯示畫面外其他元素。在沒有視覺化捲動功能指示的情況下,這種情況會更常發生。解決方法是使用「提示」欄位,建議使用者捲動畫面。
- 應用程式測試代理程式有時會發生計數問題,例如執行特定次數的動作。
測試配額
在預先發布版期間,系統會在配額限制內免費提供 AI 輔助測試。預設配額上限為每月 100 次測試。
請注意,如果您選擇在多部裝置上執行多個測試案例或相同的測試案例,系統會將這些測試計為多個測試。舉例來說,如果您在 2 部裝置上執行 2 個測試案例,則總計為 4 項測試。
如要將配額提高至超過預設上限,請與 Firebase 支援團隊聯絡,並說明您的用途。