REST Resource: testEnvironmentCatalog

資源:TestEnvironmentCatalog

測試環境的說明。

JSON 表示法
{

  // Union field environment_catalog can be only one of the following:
  "androidDeviceCatalog": {
    object (AndroidDeviceCatalog)
  },
  "iosDeviceCatalog": {
    object (IosDeviceCatalog)
  },
  "networkConfigurationCatalog": {
    object (NetworkConfigurationCatalog)
  },
  "softwareCatalog": {
    object (ProvidedSoftwareCatalog)
  },
  "deviceIpBlockCatalog": {
    object (DeviceIpBlockCatalog)
  }
  // End of list of possible types for union field environment_catalog.
}
欄位
聯集欄位 environment_catalog。僅供輸出。environment_catalog 只能採用下列其中一種設定:
androidDeviceCatalog

object (AndroidDeviceCatalog)

支援的 Android 裝置。

iosDeviceCatalog

object (IosDeviceCatalog)

支援的 iOS 裝置。

networkConfigurationCatalog

object (NetworkConfigurationCatalog)

支援的網路設定。

softwareCatalog

object (ProvidedSoftwareCatalog)

TestExecutionService 提供的軟體測試環境。

deviceIpBlockCatalog

object (DeviceIpBlockCatalog)

測試環境中裝置使用的 IP 區塊。

AndroidDeviceCatalog

目前支援的 Android 裝置。

JSON 表示法
{
  "models": [
    {
      object (AndroidModel)
    }
  ],
  "versions": [
    {
      object (AndroidVersion)
    }
  ],
  "runtimeConfiguration": {
    object (AndroidRuntimeConfiguration)
  }
}
欄位
models[]

object (AndroidModel)

支援的 Android 裝置型號組合。

versions[]

object (AndroidVersion)

支援的 Android 作業系統版本組合。

runtimeConfiguration

object (AndroidRuntimeConfiguration)

支援的執行階段設定組合。

AndroidModel

可能執行 Android 裝置測試的說明。

JSON 表示法
{
  "id": string,
  "name": string,
  "manufacturer": string,
  "brand": string,
  "codename": string,
  "form": enum (DeviceForm),
  "formFactor": enum (DeviceFormFactor),
  "perVersionInfo": [
    {
      object (PerAndroidVersionInfo)
    }
  ],
  "screenX": integer,
  "screenY": integer,
  "screenDensity": integer,
  "lowFpsVideoRecording": boolean,
  "supportedVersionIds": [
    string
  ],
  "supportedAbis": [
    string
  ],
  "tags": [
    string
  ],
  "thumbnailUrl": string
}
欄位
id

string

此模型的專屬不透明 ID。請使用此項目叫用 TestExecutionService。

name

string

這個裝置型號的人類可讀行銷名稱。例如:「Nexus 5」、「Galaxy S5」。

manufacturer

string

這部裝置的製造商。

brand

string

這部裝置的品牌所屬公司。例如:「Google」、「Samsung」。

codename

string

工業設計的名稱。這會對應至 android.os.Build.DEVICE。

form

enum (DeviceForm)

這部裝置是虛擬或實體裝置。

formFactor

enum (DeviceFormFactor)

這部裝置是否為手機、平板電腦、穿戴式裝置等

perVersionInfo[]

object (PerAndroidVersionInfo)

Android 模型的特定版本資訊,

screenX

integer

水平 (X) 尺寸的螢幕大小,以像素為單位。

screenY

integer

垂直 (Y) 尺寸的螢幕大小,以像素為單位。

screenDensity

integer

以 DPI 為單位的螢幕密度。這對應到 ro.sf.lcd_密度

lowFpsVideoRecording

boolean

只有在使用此模型的測試是拼湊螢幕截圖時,才傳回 true。請參閱裝置設定中的 use_low_spec_video_recording。

supportedVersionIds[]

string

這部裝置支援的 Android 版本組合。

supportedAbis[]

string

此裝置支援的 ABI 清單。這會對應至 android.os.Build.SUPPORTED_ABIS (適用於 API 級別 21 以上) 或 android.os.Build.CPU_ABI/CPU_ABI2。最建議使用的 ABI 是清單中的第一個元素。

元素可視需要加上「versionId:」做為前置字元:(其中 versionId 是 AndroidVersion 的 ID),代表只有特定版本支援的 ABI。

tags[]

string

這個維度的代碼。範例:「default」、「preview」、「已淘汰」。

thumbnailUrl

string

裝置的縮圖 (相片) 網址。

裝置表單

裝置為實體或虛擬。

列舉
DEVICE_FORM_UNSPECIFIED 請勿使用。僅適用於 proto 版本管理。
VIRTUAL 使用 Compute Engine 原生虛擬化技術的 Android 虛擬裝置。僅限 Firebase Test Lab。
PHYSICAL 實際硬體。
EMULATOR 使用巢狀虛擬化模擬器的 Android 虛擬裝置。相當於 Android Studio。

裝置板型規格

裝置的板型規格。

列舉
DEVICE_FORM_FACTOR_UNSPECIFIED 請勿使用。僅適用於 proto 版本管理。
PHONE 這部裝置採用手機的形狀。
TABLET 這部裝置的形狀有平板電腦。
WEARABLE 這部裝置的形狀是智慧手錶或其他穿戴式裝置。

個別 AndroidVersionInfo

Android 模型的版本專屬資訊。

JSON 表示法
{
  "versionId": string,
  "deviceCapacity": enum (DeviceCapacity)
}
欄位
versionId

string

Android 版本。

deviceCapacity

enum (DeviceCapacity)

Android 版本的線上裝置數量。

裝置容量

容量取決於研究室的線上裝置數量。

重要事項:裝置容量不會立即直接反映佇列長度。而不需考量目前的流量或裝置狀態。

以實體裝置來說,這個數字代表過去 30 天內線上裝置的平均值。

列舉
DEVICE_CAPACITY_UNSPECIFIED 裝置容量值不明或未設定。
DEVICE_CAPACITY_HIGH

容量較高的裝置 (研究室有大量這些裝置)。

一般來說,建議使用這類裝置同時執行大量測試 (例如超過 100 項測試)。

請注意,基於下列幾項因素,高容量裝置不保證能縮短等候時間:1.流量 (每個時間點的使用量上限) 2.高容量裝置會優先用於特定用途,這可能導致使用者測試速度比選取其他類似裝置類型的速度慢。

DEVICE_CAPACITY_MEDIUM

中等容量的裝置 (研究室擁有的裝置數量相當多,但容量不如高)。

這些裝置適合減少測試執行次數 (例如測試少於 100 次),且僅適用於資料分割數量偏低 (例如少於 10 個資料分割)。

DEVICE_CAPACITY_LOW

容量不足的裝置 (研究室中有許多裝置)。

如果使用者需要在特定裝置型號和版本上進行測試,則可以使用這些裝置。請注意,由於容量不足,測試可能需要較長時間才能完成,尤其是在一次叫用大量測試的情況下。這些裝置不適用於測試資料分割。

DEVICE_CAPACITY_NONE

研究室中完全沒有裝置。

這些裝置暫時或永久無法使用,因此不應提出要求。如果裝置也標示為已淘汰,這個狀態很有可能是永久的。

Android 版本

Android 作業系統版本。

JSON 表示法
{
  "id": string,
  "versionString": string,
  "apiLevel": integer,
  "codeName": string,
  "releaseDate": {
    object (Date)
  },
  "distribution": {
    object (Distribution)
  },
  "tags": [
    string
  ]
}
欄位
id

string

此 Android 版本的不透明 ID。使用這個 ID 叫用 TestExecutionService。

versionString

string

代表這個版本的 Android 作業系統的字串。例如:「4.3」、「4.4」。

apiLevel

integer

此 Android 版本的 API 級別。範例:18、19。

codeName

string

此 Android 版本的代碼名稱。範例:「JellyBean」、「KitKat」。

releaseDate

object (Date)

這個 Android 版本在市場上推出的日期。

distribution

object (Distribution)

這個版本的市佔率。

tags[]

string

這個維度的代碼。範例:「default」、「preview」、「已淘汰」。

日期

代表完整或部分的日曆日期,例如生日。您可以指明時段和時區,或者在其他地方指定時間或時區。日期以公曆為基準。可能代表下列其中一項:

  • 完整日期,具有非零的年、月和日值。
  • 日期為 0 的月份和日期,例如週年紀念日。
  • 有 1 年,第 0 個月卻為 0 天。
  • 年和月,但數字為零 (例如信用卡到期日)。

相關類型:

JSON 表示法
{
  "year": integer,
  "month": integer,
  "day": integer
}
欄位
year

integer

日期的年份。這個值必須介於 1 至 9999,或 0 之間可指定不含年份的日期。

month

integer

一年中的月份。必須介於 1 到 12 之間,或 0 可以指定不含月份和日期的年份。

day

integer

一個月中的第幾天。這個值必須介於 1 至 31 之間,且有效的年份和月份;或 0 可指定非年度的年份,或是不重要的日期和月份。

分布

掌握執行特定 Android 平台設定的裝置數量相關資料。

JSON 表示法
{
  "measurementTime": string,
  "marketShare": number
}
欄位
measurementTime

string (Timestamp format)

僅供輸出。測量這個分佈情形的時間。

RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

marketShare

number

僅供輸出。使用此設定時,預估總市值的百分比 (0 到 1)。

Android 執行階段設定

執行測試時可選擇的 Android 設定。

JSON 表示法
{
  "locales": [
    {
      object (Locale)
    }
  ],
  "orientations": [
    {
      object (Orientation)
    }
  ]
}
欄位
locales[]

object (Locale)

可用的語言代碼組合。

orientations[]

object (Orientation)

一組可用的方向。

語言代碼

語言標示位置/區域。

JSON 表示法
{
  "id": string,
  "name": string,
  "region": string,
  "tags": [
    string
  ]
}
欄位
id

string

此語言代碼的 ID。例如:「en_US」。

name

string

這個語言/語言代碼的好記名稱。例如:「英文」。

region

string

使用者容易理解的字串,代表此語言代碼的所在區域。例如:「美國」。並非所有地區都有。

tags[]

string

這個維度的代碼。例如:「default」。

紙張方向

裝置的螢幕方向。

JSON 表示法
{
  "id": string,
  "name": string,
  "tags": [
    string
  ]
}
欄位
id

string

此方向的 ID。例如:「portrait」。

name

string

這個螢幕方向的好記名稱。例如:「portrait」。

tags[]

string

這個維度的代碼。例如:「default」。

IosDeviceCatalog

目前支援的 iOS 裝置。

JSON 表示法
{
  "models": [
    {
      object (IosModel)
    }
  ],
  "versions": [
    {
      object (IosVersion)
    }
  ],
  "xcodeVersions": [
    {
      object (XcodeVersion)
    }
  ],
  "runtimeConfiguration": {
    object (IosRuntimeConfiguration)
  }
}
欄位
models[]

object (IosModel)

支援的 iOS 裝置型號組合。

versions[]

object (IosVersion)

支援的 iOS 軟體版本組合。

xcodeVersions[]

object (XcodeVersion)

支援的 Xcode 版本組合。

runtimeConfiguration

object (IosRuntimeConfiguration)

支援的執行階段設定組合。

iOS 模型

可執行 iOS 裝置測試的說明。

JSON 表示法
{
  "id": string,
  "name": string,
  "supportedVersionIds": [
    string
  ],
  "tags": [
    string
  ],
  "deviceCapabilities": [
    string
  ],
  "screenX": integer,
  "screenY": integer,
  "screenDensity": integer,
  "formFactor": enum (DeviceFormFactor),
  "perVersionInfo": [
    {
      object (PerIosVersionInfo)
    }
  ]
}
欄位
id

string

此模型的專屬不透明 ID。請使用此項目叫用 TestExecutionService。

name

string

這個裝置型號的人類可讀名稱。例如:「iPhone 4s」、「iPad Mini 2」。

supportedVersionIds[]

string

這部裝置支援的 iOS 主要軟體版本組合。

tags[]

string

這個維度的代碼。範例:「default」、「preview」、「已淘汰」。

deviceCapabilities[]

string

裝置功能。複製來源:https://developer.apple.com/library/Archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html

screenX

integer

水平 (X) 尺寸的螢幕大小,以像素為單位。

screenY

integer

垂直 (Y) 尺寸的螢幕大小,以像素為單位。

screenDensity

integer

以 DPI 為單位的螢幕密度。

formFactor

enum (DeviceFormFactor)

這部裝置是否為手機、平板電腦、穿戴式裝置等

perVersionInfo[]

object (PerIosVersionInfo)

iOS 型號的特定版本資訊。

PerIosVersionInfo

iOS 型號的版本專屬資訊。

JSON 表示法
{
  "versionId": string,
  "deviceCapacity": enum (DeviceCapacity)
}
欄位
versionId

string

iOS 版本。

deviceCapacity

enum (DeviceCapacity)

iOS 版本的線上裝置數量。

iOS 版本

iOS 版本。

JSON 表示法
{
  "id": string,
  "majorVersion": integer,
  "minorVersion": integer,
  "tags": [
    string
  ],
  "supportedXcodeVersionIds": [
    string
  ]
}
欄位
id

string

這個 iOS 版本的不透明 ID。使用這個 ID 叫用 TestExecutionService。

majorVersion

integer

代表主要 iOS 版本的整數。例如:「8」、「9」。

minorVersion

integer

代表子 iOS 版本的整數。例如:「1」、「2」。

tags[]

string

這個維度的代碼。範例:「default」、「preview」、「已淘汰」。

supportedXcodeVersionIds[]

string

此版本可用的 Xcode 版本。

XcodeVersion

與 iOS 版本相容的 Xcode 版本。

JSON 表示法
{
  "version": string,
  "tags": [
    string
  ]
}
欄位
version

string

這個版本的 ID。例如:「9.2」。

tags[]

string

這個 Xcode 版本的標記。例如:「default」。

iOS 執行階段設定

執行測試時可選擇的 iOS 設定。

JSON 表示法
{
  "locales": [
    {
      object (Locale)
    }
  ],
  "orientations": [
    {
      object (Orientation)
    }
  ]
}
欄位
locales[]

object (Locale)

可用的語言代碼組合。

orientations[]

object (Orientation)

一組可用的方向。

網路設定目錄

JSON 表示法
{
  "configurations": [
    {
      object (NetworkConfiguration)
    }
  ]
}
欄位
configurations[]

object (NetworkConfiguration)

網路設定

JSON 表示法
{
  "id": string,
  "upRule": {
    object (TrafficRule)
  },
  "downRule": {
    object (TrafficRule)
  }
}
欄位
id

string

此網路流量設定的專屬不透明 ID。

upRule

object (TrafficRule)

套用至上傳流量的模擬規則。

downRule

object (TrafficRule)

套用至下載流量的模擬規則。

流量規則

網路模擬參數。

JSON 表示法
{
  "delay": string,
  "packetLossRatio": number,
  "packetDuplicationRatio": number,
  "bandwidth": number,
  "burst": number
}
欄位
delay

string (Duration format)

封包延遲時間,必須大於 0。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

packetLossRatio

number

封包遺失率 (0.0 - 1.0)。

packetDuplicationRatio

number

封包重複比率 (0.0 - 1.0)。

bandwidth

number

頻寬 (KB/秒)。

burst

number

連拍大小 (以 kbp 為單位)。

提供軟體目錄

受測裝置上目前提供的軟體環境。

JSON 表示法
{
  "orchestratorVersion": string,
  "androidxOrchestratorVersion": string
}
欄位
orchestratorVersion
(deprecated)

string

已淘汰:日後請使用 AndroidX Test Orchestrator。

字串,代表環境中目前使用的 Android Test Orchestrator 版本。你可以透過 https://maven.google.com/web/index.html#com.android.support.test:orchestrator 取得套件。

androidxOrchestratorVersion

string

字串,代表環境中目前使用的 AndroidX Test Orchestrator 版本。您可以前往 https://maven.google.com/web/index.html#androidx.test:orchestrator 取得套件。

DeviceIpBlockCatalog

Firebase Test Lab 使用的 IP 區塊清單

JSON 表示法
{
  "ipBlocks": [
    {
      object (DeviceIpBlock)
    }
  ]
}
欄位
ipBlocks[]

object (DeviceIpBlock)

Firebase Test Lab 使用的裝置 IP 區塊

DeviceIpBlock

單一裝置 IP 區塊

JSON 表示法
{
  "block": string,
  "form": enum (DeviceForm),
  "addedDate": {
    object (Date)
  }
}
欄位
block

string

IP 位址區塊,採用 CIDR 標記法,例如:34.68.194.64/29

form

enum (DeviceForm)

這個區塊是供實體或虛擬裝置使用

addedDate

object (Date)

這個區塊新增至 Firebase Test Lab 的日期

方法

get

取得支援的測試環境目錄。