

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

# 自訂測試環境的主機
<a name="custom-test-environments-hosts"></a>

 Device Farm 透過使用測試主機環境，支援一組具有預先設定軟體的作業系統。在測試執行期間，Device Farm 會利用 Amazon 受管執行個體 （主機），以動態方式連線至待測的所選裝置。此執行個體會在執行之間完全清除且不重複使用，並在測試執行結束後以其產生的成品終止。

**Topics**
+ [適用於自訂測試環境的測試主機](#custom-test-environments-hosts-available)
+ [選取自訂測試環境的測試主機](#test-host-selection)
+ [自訂測試環境中支援的軟體](custom-test-environments-hosts-software.md)
+ [Android 裝置的測試環境](custom-test-environments-hosts-android.md)
+ [iOS 裝置的測試環境](custom-test-environments-hosts-ios.md)

## 適用於自訂測試環境的測試主機
<a name="custom-test-environments-hosts-available"></a>

 測試主機完全由 Device Farm 管理。下表列出適用於自訂測試環境的目前可用和支援的 Device Farm 測試主機。


| 裝置平台 | 測試主機 | 作業系統 | Architecture(s) | 支援的裝置 | 
| --- | --- | --- | --- | --- | 
|  Android  |  amazon\_linux\_2  |  Amazon Linux 2  |  x86\_64  | Android 6 及更高版本 | 
|  iOS  |  macos\_sequoia  | macOS Sequoia （版本 15) |  arm64  | iOS 15 到 26 | 

**注意**  
Device Farm 會定期為裝置平台新增測試主機，以支援較新的裝置作業系統版本及其相依性。發生這種情況時，個別裝置平台的較舊測試主機會終止支援。

### 作業系統版本
<a name="test-host-os"></a>

 每個可用的測試主機都會使用 Device Farm 當時支援的特定作業系統版本。雖然我們嘗試使用最新的作業系統版本，但這可能不是最新的公開分散式版本。Device Farm 會定期使用次要版本更新和安全性修補程式來更新作業系統。

 若要了解測試執行期間使用之作業系統的特定版本 （包括次要版本），您可以將下列程式碼片段新增至任何測試規格檔案的階段。

**Example**  

```
phases:
  install:
    commands:
      # The following example prints the instance's operating system version details
      - |-
        if [[ "Darwin" == "$(uname)" ]]; then
          echo "$(sw_vers --productName) $(sw_vers --productVersion) ($(sw_vers --buildVersion))";
        else
          echo "$(. /etc/os-release && echo $PRETTY_NAME) ($(uname -r))";
        fi
```

## 選取自訂測試環境的測試主機
<a name="test-host-selection"></a>

 您可以在測試規格檔案的適當 `android_test_host`和 `ios_test_host`變數中指定 Android 和 iOS 測試主機。 [測試規格語法](custom-test-environment-test-spec.md#custom-test-environment-test-spec-syntax)

 如果您未為指定的裝置平台指定測試主機選擇，則測試將在 Device Farm 已設定為指定裝置和測試組態預設值的測試主機上執行。

**重要**  
在 iOS 18 及更低版本上測試時，若未選取主機，則會使用舊版測試主機。如需詳細資訊，請參閱 上的 主題[舊版 iOS 測試主機](custom-test-environments-hosts-ios.md#legacy-ios-host)。

 舉例來說，請檢閱下列程式碼片段：

**Example**  

```
version: 0.1
android_test_host: {{amazon_linux_2}}
ios_test_host: {{macos_sequoia}}

phases:
  # ...
```