View a markdown version of this page

自訂測試環境的主機 - AWS Device Farm

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

自訂測試環境的主機

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

適用於自訂測試環境的測試主機

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

裝置平台 測試主機 作業系統 Architecture(s) 支援的裝置
Android amazon_linux_2 Amazon Linux 2 x86_64

Android 6 及更高版本

iOS macos_tahoe

macOS Tahoe (26 版)

arm64

iOS 17 到 27

iOS macos_sequoia

macOS Sequoia (版本 15)

arm64

iOS 15 到 26

注意

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

選取自訂測試環境的測試主機

若要選取所需的測試主機,請在測試規格檔案的適當 android_test_hostios_test_host變數中指定 Android 和 iOS 測試主機。 測試規格語法

您可以透過下列其中一種方式選取測試主機:

  1. 選取特定主機 – 您指定要使用的確切測試主機。

  2. 讓 Device Farm 選擇 – 您將測試主機設定為 default,而 Device Farm 會根據裝置的作業系統版本來挑選主機。

  3. 使用備用主機 – 您省略 欄位,而 Device Farm 會將舊版測試主機指派為備用主機。不建議使用此選項。如需更多資訊,請參閱舊版 iOS 測試主機

管理測試主機是 Device Farm 與您共同的責任。您的責任會根據您選擇的選擇類型而有所不同。下表摘要說明建議的選取類型。

選擇類型 Device Farm 的責任 客户的責任

選取特定主機

對您指定的確切主機執行測試,每次執行時都有一組一致的軟體版本。

指定提供測試所需軟體版本的主機 (例如 macos_sequoia或 amazon_linux_2)。將您的測試規格更新為每個主要裝置作業系統版本的較新主機,因為 Device Farm 會隨著時間結束對較舊主機的支援。

讓 Device Farm 選擇

選取與裝置的作業系統版本相容的主機,並將未來作業系統版本的測試路由到支援的主機。

將測試主機值設定為 default。如果您的測試需要特定的軟體版本,請改為明確指定主機,因為在極少數情況下,較舊版本的相依性可能無法在較新的主機上使用。

如需與 共同責任的詳細資訊 AWS,請參閱 AWS 網站上的共同責任模型

選項 1:選取特定主機

當您建立測試規格檔案時,請在對應的 android_test_hostios_test_host 欄位中提供確切的測試主機值。

範例
version: 0.1 android_test_host: amazon_linux_2 ios_test_host: macos_tahoe phases: # ...

選項 2:讓 Device Farm 選擇

您可以將測試主機設定為 值default,讓 Device Farm 根據待測裝置的作業系統版本選取主機。

注意

目前, ios_test_host僅適用於 default 。未來版本android_test_host預計支援 。

下表顯示裝置作業系統版本的預設主機映射。

平台 裝置作業系統版本 指派的測試主機
iOS

17 到 27

macos_tahoe
iOS

15 到 16

macos_sequoia
範例
version: 0.1 ios_test_host: default phases: # ...

作業系統版本

每個可用的測試主機都會使用 Device Farm 當時支援的特定作業系統版本。Device Farm 會定期使用次要版本更新和安全性修補程式來更新作業系統。

您可以找到測試執行期間使用的確切作業系統版本,包括次要版本。若要這樣做,請將下列程式碼片段新增至測試規格檔案的任何階段:

範例
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