將自訂測試環境遷移至新的 iOS 測試主機 - AWS Device Farm

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

將自訂測試環境遷移至新的 iOS 測試主機

若要將現有測試從舊版主機遷移到新的 macOS 測試主機,您需要根據現有的測試規格檔案來開發新的測試規格檔案。

建議的方法是從所需測試類型的範例測試規格檔案開始,然後將相關命令從舊測試規格檔案遷移至新的測試規格檔案。這可讓您利用新主機測試規格範例的新功能和最佳化,同時重複使用現有程式碼片段。

教學課程:使用主控台遷移 iOS 測試規格檔案

在此範例中,Device Farm 主控台將用於加入現有的 iOS 裝置測試規格,以使用新的測試主機。

步驟 1:使用主控台建立新的測試規格檔案

  1. 登入 AWS Device Farm 主控台

  2. 導覽至包含自動化測試的 Device Farm 專案。

  3. 下載您要加入的現有測試規格副本。

    1. 按一下「專案設定」選項,然後導覽至上傳索引標籤。

    2. 導覽至您要加入的測試規格檔案。

    3. 按一下下載按鈕來製作此檔案的本機副本。

  4. 導覽回專案頁面,然後按一下建立執行

  5. 在精靈上填寫選項,就像您開始新的執行一樣,但在選取測試規格選項中停止。

  6. 使用預設選取的 iOS 測試規格,按一下建立測試規格按鈕。

  7. 修改文字編輯器中預設選取的測試規格。

    1. 如果尚未存在,請使用下列方式修改測試規格檔案以選取新的主機:

      ios_test_host: macos_sequoia
    2. 從上一個步驟中下載的測試規格副本中,檢閱每個 phase

    3. 從舊測試規格的階段將命令複製到新測試規格中的每個個別階段,忽略與安裝或選取 Java、Python、Node.js、Ruby、Appium 或 Xcode 相關的命令。

  8. 另存為文字方塊中輸入新的檔案名稱。

  9. 按一下另存新檔按鈕以儲存變更。

如需可用作參考的測試規格檔案範例,請參閱 中提供的範例測試規格範例

步驟 2:選取軟體預先安裝的軟體

在新的測試主機中,會使用稱為 的新標準化版本管理工具來選取預先安裝的軟體版本devicefarm-cli。此工具現在是使用我們在測試主機上提供的各種軟體的建議方法。

例如,您可以新增以下行,以使用不同的 JDK 17 您的測試環境:

- devicefarm-cli use java 17

如需可用軟體的詳細資訊,請參閱:自訂測試環境中支援的軟體

步驟 3:透過軟體選取工具使用 Appium 及其相依性

新的測試主機僅支援 Appium 2.x 及更高版本。請使用 明確選取 Appium 版本devicefarm-cli,同時移除舊版工具,例如 avm。例如:

# This line using 'avm' should be removed # - avm 2.3.1 # And the following lines should be added - devicefarm-cli use appium 2 # Selects the version - appium --version # Prints the version

搭配 選取的 Appium 版本devicefarm-cli已預先安裝適用於 iOS 的相容 XCUITest 驅動程式版本。

此外,您將需要更新您的測試規格以使用 , DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V9而非 DEVICEFARM_WDA_DERIVED_DATA_PATH。新的環境變數指向預先建置的 WebDriverAgent 9.x 版本,這是 Appium 2 測試的最新支援版本。

如需詳細資訊,請檢閱 為 iOS 測試選取 WebDriverAgent 版本Appium 測試的環境變數

新測試主機和舊版測試主機之間的差異

當您編輯測試規格檔案以使用新的 iOS 測試主機,並從舊版測試主機轉換測試時,請注意下列主要環境差異:

  • Xcode 版本:在舊版測試主機環境中,可用的 Xcode 版本是以用於測試的裝置 iOS 版本為基礎。例如,在 iOS 18 裝置上的測試使用舊版主機中的 Xcode 16,而在 iOS 17 上的測試使用 Xcode 15。在新的主機環境中,所有裝置都可以存取相同版本的 Xcode,允許在具有不同版本的裝置上進行測試的一致環境。如需目前可用的 Xcode 版本清單,請參閱 支援的軟體

  • 選取軟體版本:在許多執行個體中,預設軟體版本已變更,因此如果您之前沒有在舊版測試主機中明確選取軟體版本,建議您現在使用 在新的測試主機中指定該版本devicefarm-cli。在絕大多數的使用案例中,我們建議客戶明確選取其使用的軟體版本。透過使用 選取軟體版本devicefarm-cli,您將擁有可預測且一致的使用體驗,並在 Device Farm 計劃從測試主機移除該版本時收到大量警告。

    此外,rvm已移除 nvm avmpyenv和 等軟體選取工具,以支持新的 devicefarm-cli軟體選取系統。

  • 可用的軟體版本:已移除許多先前預先安裝的軟體版本,並新增了許多新版本。因此,請務必在使用 devicefarm-cli 選取軟體版本時,選取支援版本清單中的版本

  • 已移除工具libimobiledevice套件,以使用較新的/第一方工具來追蹤目前的 iOS 裝置測試和業界標準。對於 iOS 17 及更高版本,您可以遷移大多數命令來使用類似的 Xcode 工具,稱為 devicectl。如需 的資訊devicectl,您可以從已安裝 Xcode 的xcrun devicectl help機器執行 。

  • 在舊版主機測試規格檔案中以絕對路徑硬式編碼的檔案路徑,很可能無法如預期在新的測試主機中運作,而且通常不建議用於測試規格檔案。建議您對所有測試規格檔案程式碼使用相對路徑和環境變數。如需詳細資訊,請參閱 上的主題自訂測試環境執行的最佳實務

  • 作業系統版本和架構:舊版測試主機根據指派的裝置使用各種 macOS 版本和 CPU 架構。因此,使用者可能會在環境中可用的系統程式庫中注意到一些差異。如需舊版主機作業系統的詳細資訊,請參閱 舊版 iOS 測試主機

  • 對於 Appium 使用者,選取 WebDriverAgent 的方式已變更為使用環境變數字首 DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V,而非舊字 DEVICEFARM_WDA_DERIVED_DATA_PATH_V首。如需更新變數的詳細資訊,請檢閱 Appium 測試的環境變數

  • 對於 Appium Java 使用者,新的測試主機在其類別路徑中不包含任何預先安裝的 JAR 檔案,而先前的主機包含一個用於 TestNG 架構 (透過環境變數 $DEVICEFARM_TESTNG_JAR)。我們建議客戶在其測試套件內封裝其測試架構所需的 JAR 檔案,並從其測試規格檔案中移除 $DEVICEFARM_TESTNG_JAR變數的執行個體。

如果您對軟體角度的測試主機之間的差異有任何意見回饋或問題,建議您透過支援案例與服務團隊聯絡。