

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

# AWS Device Farm 中的限制
<a name="limits"></a>

**Topics**
+ [服務限制](#service-limits)
+ [檔案限制](#file-limits)
+ [API 限制](#api-limits)
+ [Appium 端點限制](#appium-endpoint-limits)
+ [自訂環境變數限制](#custom-environment-variable-limits)

## 服務限制
<a name="service-limits"></a>
+  測試執行中可以包含的裝置數量沒有限制。不過，Device Farm 在測試執行期間同時測試的裝置數量上限為 5 個。服務團隊可應要求增加此數量，並依個別案例進行評估。
+ 您可以排定的執行次數沒有限制。請注意，它們最多只能保持佇列 24 小時。
+  遠端存取工作階段的持續時間有 150 分鐘的硬性限制。
+  自動化測試執行期間有 150 分鐘的硬性限制 
+  處理中的任務數量上限為 250 個，包括您帳戶中的待定佇列任務。這是軟性限制。
+  您可以在測試執行中包含的裝置數目沒有限制。在任何指定時間可以平行執行測試的裝置 （任務） 數目等於您的帳戶層級並行。Device Farm 中計量使用的預設帳戶層級並行為 5。
+ 視使用案例而定，可依請求將計量並行限制提高到特定閾值。未計量使用的預設帳戶層級並行等於您為該平台訂閱的插槽數量。

   如需預設計量並行限制或一般配額的詳細資訊，請參閱[配額](https://docs.aws.amazon.com/general/latest/gr/devicefarm.html)頁面。
+ 不使用[自訂測試環境](custom-test-environments.md)的自動化執行最多只能有 250 個個別測試案例。否則，可能會略過執行。

## 檔案限制
<a name="file-limits"></a>
+  您可以上傳的應用程式檔案大小上限為 4 GB。請注意，我們目前不接受 Android 的 .aab 格式檔案。
+  在測試執行期間，Device Farm 自動產生的影片大小上限為 1GB。任何超過此大小的影片都會截斷所有剩餘的影片內容。如果存在，客戶仍然可以使用自己的影片錄製解決方案，並將其存放在 Device Farm 受管儲存體之外。
+  測試執行期間，Device Farm 自動產生的裝置日誌 (Android 上的日誌或 iOS 上的 syslog) 的大小上限為 1GB。任何超過此大小的日誌都會截斷所有剩餘的日誌。對於大於 1 GB 的日誌，客戶可以將這些日誌存放在 Device Farm 受管儲存之外。
+  Device Farm 自訂環境模式客戶成品的累積大小上限為 1GB。如果您的成品超過此大小，則無法使用任何成品。
+  如果測試執行期間產生的所有成品的累積大小超過 4GB，則可能會捨棄某些成品 （包括影片、裝置日誌和客戶成品）。

## API 限制
<a name="api-limits"></a>
+  Device Farm 遵循權杖儲存貯體演算法來調節 API 呼叫率。例如，假設建立包含字符的儲存貯體。每個權杖代表一個交易，而一個 API 呼叫會使用權杖。權杖會以固定速率 （例如每秒 10 個權杖） 新增至儲存貯體，且儲存貯體具有最大容量 （例如 100 個權杖）。請求或封包送達時，必須向要處理的儲存貯體請求權杖。如果有足夠的權杖，則允許透過 請求，並移除權杖。如果權杖不足，請求會延遲或捨棄，視實作而定。

   在 Device Farm 中，以下是演算法的實作方式：
  +  **爆量 API 請求**是服務能夠為指定客戶帳戶 ID 中的指定 API 回應的請求數目上限。換句話說，這是儲存貯體的容量。您可以多次呼叫 API，因為儲存貯體中還有權杖，而且每個請求都會使用一個權杖。
  +  **Transactions-per-second數 (TPS) 速率**是可以執行 API 請求的最低速率。換句話說，這是儲存貯體每秒以字符重新填充的速率。例如，如果 API 的爆量為十，但 TPS 為一，您可以立即呼叫它十次。不過，除非您停止呼叫 API 讓儲存貯體重新填充，否則儲存貯體只會以每秒一個權杖的速率重新取得權杖，導致調節為每秒一個呼叫。

 以下是 Device Farm APIs費率：
+  對於列出和取得 APIs，**爆量 API 請求**容量為 `50`，**Transactions-per-second (TPS) 速率**為 `10`。
+  對於所有其他 APIs，**爆量 API 請求**容量為 `10`，**Transactions-per-second (TPS) 速率**為 `1`。

## Appium 端點限制
<a name="appium-endpoint-limits"></a>

下列限制適用於所有 Appium 端點工作階段。有關如何最佳處理限制的問題和指導，請開啟支援案例。
+ 每個 Appium 命令的執行持續時間限制為 4 分鐘，之後命令會逾時。
+ 端點接受高達 20MB 的輸入承載大小，並允許高達 20MB 的輸出承載大小。輸入或輸出大小大於此值的任何請求都會收到 的 WebDriver 錯誤`'unsupported operation'`。
+ 請求會依收到的順序在裝置上循序執行。因此，強烈建議您依序傳送命令，並在傳送新的命令之前等待每個命令的回應。也就是說，某些 Appium 伺服器命令可以平行傳送，特別是：
  + [getStatus](https://appium.io/docs/en/2.19/commands/base-driver/#getstatus)
  + [getSessions](https://appium.io/docs/en/2.19/commands/base-driver/#getsessions)
+ 端點目前不支援 [WebDriver BiDi 通訊協定](https://appium.io/docs/en/2.19/guides/caps/#bidi-protocol-support)。
+ 端點不支援 Appium 外掛程式或 XCUITest 和 UIAutomator2 驅動程式以外的驅動程式。
+ 最多可以用 3 個應用程式做為具有遠端存取工作階段建立請求的輔助應用程式。也就是說，使用 [https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_InstallToRemoteAccessSession.html](https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_InstallToRemoteAccessSession.html) API 的工作階段期間可以安裝多少應用程式沒有限制。

## 自訂環境變數限制
<a name="custom-environment-variable-limits"></a>

下列限制適用於所有自訂環境變數。有關如何最佳處理限制的問題和指導，請開啟支援案例。
+ 指定 Device Farm 專案或執行中最多可設定 32 個變數。
+ 變數名稱長度不可超過 256 個字元。
+ 變數名稱受到 施加的限制`bash`。也就是說，它們只能包含英數字元和底線字元，而且不能以數字開頭。
+ 以 開頭的變數名稱`$DEVICEFARM_`會保留供內部服務使用。
+ 變數值長度不能超過 256 個字元。
+ 環境變數無法用於設定測試規格檔案中的測試主機運算選擇。