

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Device Farm 概念
<a name="concepts"></a>

Device Farm 是一種應用程式測試服務，可讓您在 Amazon Web Services () 託管的實體手機和平板電腦上，測試 Android、iOS 和 Web 應用程式並與之互動AWS。

本節說明重要的 Device Farm 概念。
+ [AWS Device Farm 中的裝置支援Devices](devices.md)
+ [在 AWS Device Farm 中測試環境](test-environments.md)
+ [執行](test-runs.md)
+ [應用程式](apps.md)
+ [AWS Device Farm 中的報告報告](reports.md)
+ [工作階段](sessions.md)

如需 Device Farm 中支援測試類型的詳細資訊，請參閱 [AWS Device Farm 中的測試架構和內建測試](test-types.md)。

# AWS Device Farm 中的裝置支援
<a name="devices"></a>

下列各節提供有關 Device Farm 中裝置支援的資訊。

**Topics**
+ [支援的裝置](#devices-supported)
+ [裝置集區](#devices-pools)
+ [私有裝置](#devices-private)
+ [裝置品牌](#devices-branding)
+ [裝置插槽](#device-slots)
+ [預先安裝的裝置應用程式](#devices-apps)
+ [裝置功能](#devices-capabilities)

## 支援的裝置
<a name="devices-supported"></a>

Device Farm 支援數百種獨特的熱門 Android 和 iOS 裝置和作業系統組合。隨著新裝置在市場上推出，清單中的可用裝置也會增加。如需裝置的完整清單，請參閱 [AWS 主控台中的互動式裝置清單](https://us-west-2.console.aws.amazon.com/devicefarm/home?region=us-west-2#/mobile/publicdevices)。

## 裝置集區
<a name="devices-pools"></a>

Device Farm 會將其裝置組織成可用於測試的裝置集區。這些裝置集區包含相關裝置，例如僅在 Android 上執行或僅在 iOS 上執行的裝置。Device Farm 提供精選的裝置集區，例如適用於熱門裝置的集區。您也可以建立混合公有和私有裝置的裝置集區。

## 私有裝置
<a name="devices-private"></a>

私有裝置允許您確切指定硬體和軟體組態，以滿足您的測試需求。某些組態，例如根 Android 裝置，可以支援為私有裝置。每個私有裝置都是 Device Farm 在 Amazon 資料中心代表您部署的實體裝置。您的私有裝置專為您提供自動和手動測試。在您選擇終止訂閱後，硬體就會從我們的環境中移除。如需詳細資訊，請參閱[私有裝置](https://aws.amazon.com/device-farm/pricing/#privateDevices)和 [AWS Device Farm 中的私有裝置](working-with-private-devices.md)。

## 裝置品牌
<a name="devices-branding"></a>

Device Farm 會在來自各種 OEMs 的實體行動裝置和平板電腦裝置上進行測試。

## 裝置插槽
<a name="device-slots"></a>

裝置插槽會對應到同時執行數量，您購買的裝置插槽數量，會決定您可以在測試或遠端存取工作階段中執行的裝置數量。

有兩種裝置插槽類型：
+ *遠端存取裝置插槽* 是您可以在遠端存取工作階段中同時執行的項目。

  如果您只有一個遠端存取裝置插槽，您一次只能執行一個遠端存取工作階段。如果您購買額外遠端測試裝置插槽，您就可以同時執行多個工作階段。
+ *自動測試裝置插槽* 是您可以同時執行測試的項目。

  如果您只有一個自動測試裝置插槽，您一次只能在一個裝置上執行測試。如果您購買額外的自動測試裝置插槽，您可以在多個裝置上同時執行測試，就能更快獲得測試結果。

 您可以根據裝置系列購買裝置插槽 (用於自動測試的 Android 或 iOS 裝置，以及用於遠端存取的 Android 或 iOS 裝置)。如需詳細資訊，請參閱 [Device Farm 定價](https://aws.amazon.com/device-farm/pricing/)。

## 預先安裝的裝置應用程式
<a name="devices-apps"></a>

Device Farm 中的裝置包含製造商和電信業者已安裝的少量應用程式。

## 裝置功能
<a name="devices-capabilities"></a>

所有裝置都有網際網路連線。裝置未配有電信業者連線，因此無法撥打電話或傳送 SMS。

您可以使用任何支援前後鏡頭的裝置拍照。由於裝置掛載的方式，照片可能會看起來較暗且模糊。

Google Play Services 和 Google Chrome 安裝在 Android 裝置上。

# 在 AWS Device Farm 中測試環境
<a name="test-environments"></a>

AWS Device Farm 提供自訂和標準測試環境，以執行您的自動化測試。您可以選擇自訂測試環境，來完全控制您的自動化測試。或者，您可以選擇 Device Farm 預設標準測試環境，提供自動化測試套件中每個測試的精細報告。

**Topics**
+ [標準測試環境](#test-environments-standard)
+ [自訂測試環境](#custom-test-environment)

## 標準測試環境
<a name="test-environments-standard"></a>

 當您在標準環境中執行測試時，Device Farm 會提供測試套件中每個案例的詳細日誌和報告。您可以檢視每個測試的效能資料、視訊、螢幕擷取畫面和日誌，以在應用程式中找出問題並加以修正。

**注意**  
由於 Device Farm 在標準環境中提供精細的報告，因此測試執行時間可能比在本機執行測試的時間更長。如果您想要更快的執行時間，請在自訂測試環境中執行您的測試。

## 自訂測試環境
<a name="custom-test-environment"></a>

當您自訂測試環境時，您可以指定 Device Farm 應執行的命令來執行您的測試。這可確保 Device Farm 上的測試執行的方式類似於本機電腦上執行的測試。在這個模式上執行您的測試，也會啟用此測試的即時日誌和視訊串流。在自訂測試環境中執行測試時，您不會取得每個測試案例的精細報告。如需詳細資訊，請參閱[AWS Device Farm 中的自訂測試環境](custom-test-environments.md)。

當您使用 Device Farm 主控台、 或 Device Farm API 建立測試執行時 AWS CLI，您可以選擇使用自訂測試環境。

如需詳細資訊，請參閱[使用 和 上傳自訂測試規格 AWS CLI](https://docs.aws.amazon.com/devicefarm/latest/developerguide/how-to-create-test-run.html#how-to-create-test-run-cli-step5)[在 Device Farm 中建立測試執行](how-to-create-test-run.md)。

# 在 AWS Device Farm 中執行
<a name="test-runs"></a>

下列各節包含 Device Farm 中執行的相關資訊。

Device Farm 中的執行代表應用程式的特定建置，以及要在特定裝置集上執行的特定一組測試。執行會產生報告，其中包含執行結果的相關資訊。執行包含一或多個任務。

**Topics**
+ [執行組態](#test-runs-configuration)
+ [執行檔案保留](#test-runs-retention)
+ [執行裝置狀態](#test-runs-device-state)
+ [平行執行](#test-runs-parallel)
+ [設定執行逾時](#test-runs-default-timeout)
+ [執行中的廣告](#test-runs-ads)
+ [執行中的媒體](#test-runs-media)
+ [執行的常見任務](#test-runs-tasks)

## 執行組態
<a name="test-runs-configuration"></a>

在執行過程中，您可以提供 Device Farm 可用來覆寫目前裝置設定的設定。這些包括經緯度座標、額外資料 （包含在 .zip 檔案中） 和輔助應用程式 （應該在要測試的應用程式之前安裝的應用程式）。在 Android 上，可以變更一些額外的設定，例如地區設定和無線電狀態 （藍牙、GPS、NFC 和 Wi-Fi)。

## 執行檔案保留
<a name="test-runs-retention"></a>

Device Farm 會儲存您的應用程式和檔案 30 天，然後將其從系統中刪除。不過，您可以隨時刪除檔案。

Device Farm 會儲存您的執行結果、日誌和螢幕擷取畫面 400 天，然後將其從系統中刪除。

## 執行裝置狀態
<a name="test-runs-device-state"></a>

Device Farm 一律會重新啟動裝置，再讓裝置可供下一個任務使用。

## 平行執行
<a name="test-runs-parallel"></a>

Device Farm 會平行執行測試。

## 設定執行逾時
<a name="test-runs-default-timeout"></a>

您可以設定一值，表示在您停止每個裝置的執行測試前，測試執行應該執行多長時間。例如，如果您的測試需要每個裝置 20 分鐘來完成，則您應該選擇每個裝置 30 分鐘逾時。

如需詳細資訊，請參閱[在 AWS Device Farm 中設定測試執行的執行逾時](how-to-set-default-timeout-for-test-runs.md)。

## 執行中的廣告
<a name="test-runs-ads"></a>

建議您先從應用程式移除廣告，再將它們上傳至 Device Farm。我們無法保證執行期間顯示廣告。

## 執行中的媒體
<a name="test-runs-media"></a>

您可以提供媒體或其他資料來伴隨您的應用程式。提供額外資料的 .zip 檔案，其大小不得超過 4 GB。

## 執行的常見任務
<a name="test-runs-tasks"></a>

如需詳細資訊，請參閱[在 Device Farm 中建立測試執行](how-to-create-test-run.md)及[測試在 AWS Device Farm 中執行測試執行](runs.md)。

# AWS Device Farm 中的應用程式
<a name="apps"></a>

下列各節包含 Device Farm 中應用程式行為的相關資訊。

**Topics**
+ [檢測應用程式](#test-runs-instrumenting)
+ [在執行中重新簽署應用程式](#test-runs-app-resigning)
+ [執行中混淆的應用程式](#test-runs-obfuscated-apps)

## 檢測應用程式
<a name="test-runs-instrumenting"></a>

您不需要檢測您的應用程式，也不需要為 Device Farm 提供應用程式的原始碼。您可以提交未經修改的 Android 應用程式。iOS 應用程式必須搭配 **iOS Device (iOS 裝置)** 目標進行建置，而非搭配模擬器。

## 在執行中重新簽署應用程式
<a name="test-runs-app-resigning"></a>

對於 iOS 應用程式，您不需要將任何 Device Farm UUIDs新增至您的佈建設定檔。Device Farm 會將內嵌佈建設定檔取代為萬用字元設定檔，然後重新簽署應用程式。如果您提供輔助資料，Device Farm 會在 Device Farm 安裝之前將其新增至應用程式的套件，以便輔助存在於應用程式的沙盒中。重新簽署應用程式會移除如下授權：App Group、Associated Domains、Game Center、HealthKit、HomeKit、Wireless Accessory Configuration、In-App Purchase、Inter-App Audio、Apple Pay、Push Notifications，以及 VPN Configuration & Control。

對於 Android 應用程式，Device Farm 會重新簽署應用程式。這可能會中斷取決於應用程式簽章的功能 (例如 Google Maps Android API)，或其可能從 DexGuard 這類產品中觸發反盜版或反竄改偵測。

## 執行中混淆的應用程式
<a name="test-runs-obfuscated-apps"></a>

對於 Android 應用程式，如果應用程式混淆，如果您使用 ProGuard，仍然可以使用 Device Farm 對其進行測試。不過，如果您使用 DexGuard 搭配反盜版措施，則 Device Farm 無法針對應用程式重新簽署和執行測試。

# AWS Device Farm 中的報告
<a name="reports"></a>

下列各節提供 Device Farm 測試報告的相關資訊。

**Topics**
+ [報告保留](#reports-retention)
+ [報告元件](#reports-components)
+ [報告中的日誌](#reports-logs)
+ [報告的常見任務](#reports-tasks)

## 報告保留
<a name="reports-retention"></a>

Device Farm 會儲存您的報告 400 天。這些報告包含中繼資料、日誌、螢幕擷取畫面和效能資料。

## 報告元件
<a name="reports-components"></a>

Device Farm 中的報告包含傳遞和失敗資訊、當機報告、測試和裝置日誌、螢幕擷取畫面和效能資料。

這些報告包含詳細的每一裝置資料和簡要的結果，例如特定問題的出現次數。

## 報告中的日誌
<a name="reports-logs"></a>

這些報告包含 Android 測試的完整 logcat 擷取，以及 iOS 測試的完整裝置主控台日誌。

## 報告的常見任務
<a name="reports-tasks"></a>

如需詳細資訊，請參閱[在 Device Farm 中檢視測試報告](how-to-use-reports.md)。

# AWS Device Farm 中的工作階段
<a name="sessions"></a>

您可以使用 Device Farm 透過遠端存取工作階段對 Android 和 iOS 應用程式執行互動式測試。這包括 Web 瀏覽器中的手動互動，以及從本機用戶端對遠端裝置執行 Appium 測試。開發人員可以在特定裝置上重現應用程式或 Appium 測試的問題，以隔離和解決問題。

**Topics**
+ [支援遠端存取的裝置](#session-devices-supported)
+ [工作階段檔案保留](#session-files-retention)
+ [檢測應用程式](#session-instrumenting)
+ [在工作階段中重新簽署應用程式](#session-resigning-apps)
+ [工作階段中的混淆應用程式](#session-obfuscated-apps)

## 支援遠端存取的裝置
<a name="session-devices-supported"></a>

Device Farm 支援多種獨特的熱門 Android 和 iOS 裝置。隨著新裝置在市場上推出，清單中的可用裝置也會增加。Device Farm 主控台會顯示目前可供遠端存取的 Android 和 iOS 裝置清單。如需詳細資訊，請參閱[AWS Device Farm 中的裝置支援Devices](devices.md)。

## 工作階段檔案保留
<a name="session-files-retention"></a>

Device Farm 會儲存您的應用程式和檔案 30 天，然後將其從系統中刪除。不過，您可以隨時刪除檔案。

Device Farm 會儲存您的工作階段日誌和擷取的影片 400 天，然後從系統中刪除它們。

## 檢測應用程式
<a name="session-instrumenting"></a>

您不需要檢測應用程式，也不需要為 Device Farm 提供應用程式的原始程式碼。您可以提交未經修改的 Android 和 iOS 應用程式。

## 在工作階段中重新簽署應用程式
<a name="session-resigning-apps"></a>

Device Farm 會重新簽署 Android 和 iOS 應用程式。這可能會中斷取決於應用程式簽章的功能。例如，Android 的 Google Maps API 取決於您應用程式的簽章。應用程式重新簽署也可以從 DexGuard for Android 裝置的這類產品中觸發反盜版或反竄改偵測。

## 工作階段中的混淆應用程式
<a name="session-obfuscated-apps"></a>

對於 Android 應用程式，如果應用程式混淆，如果您使用 ProGuard，仍然可以使用 Device Farm 對其進行測試。不過，如果您使用 DexGuard 搭配反盜版措施，則 Device Farm 無法重新簽署應用程式。