本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將自訂測試環境遷移至新的 iOS 測試主機
若要將現有測試從舊版主機遷移到新的 macOS 測試主機,您需要根據現有的測試規格檔案來開發新的測試規格檔案。
建議的方法是從所需測試類型的範例測試規格檔案開始,然後將相關命令從舊測試規格檔案遷移至新的測試規格檔案。這可讓您利用新主機測試規格範例的新功能和最佳化,同時重複使用現有程式碼片段。
教學課程:使用主控台遷移 iOS 測試規格檔案
在此範例中,Device Farm 主控台將用於加入現有的 iOS 裝置測試規格,以使用新的測試主機。
步驟 1:使用主控台建立新的測試規格檔案
-
導覽至包含自動化測試的 Device Farm 專案。
-
下載您要加入的現有測試規格副本。
-
按一下「專案設定」選項,然後導覽至上傳索引標籤。
-
導覽至您要加入的測試規格檔案。
-
按一下下載按鈕來製作此檔案的本機副本。
-
-
導覽回專案頁面,然後按一下建立執行。
-
在精靈上填寫選項,就像您開始新的執行一樣,但在選取測試規格選項中停止。
-
使用預設選取的 iOS 測試規格,按一下建立測試規格按鈕。
-
修改文字編輯器中預設選取的測試規格。
-
如果尚未存在,請使用下列方式修改測試規格檔案以選取新的主機:
ios_test_host: macos_sequoia -
從上一個步驟中下載的測試規格副本中,檢閱每個
phase。 -
從舊測試規格的階段將命令複製到新測試規格中的每個個別階段,忽略與安裝或選取 Java、Python、Node.js、Ruby、Appium 或 Xcode 相關的命令。
-
-
在另存為文字方塊中輸入新的檔案名稱。
-
按一下另存新檔按鈕以儲存變更。
如需可用作參考的測試規格檔案範例,請參閱 中提供的範例測試規格範例。
步驟 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、avm、pyenv和 等軟體選取工具,以支持新的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變數的執行個體。
如果您對軟體角度的測試主機之間的差異有任何意見回饋或問題,建議您透過支援案例與服務團隊聯絡。