REST Resource: 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 區塊。

Android裝置目錄

目前支援的Android設備。

JSON 表示
{
  "models": [
    {
      object (AndroidModel)
    }
  ],
  "versions": [
    {
      object (AndroidVersion)
    }
  ],
  "runtimeConfiguration": {
    object (AndroidRuntimeConfiguration)
  }
}
領域
models[]

object ( AndroidModel )

支援的 Android 裝置型號集。

versions[]

object ( AndroidVersion )

支援的 Android 作業系統版本集。

runtimeConfiguration

object ( AndroidRuntimeConfiguration )

支援的運行時配置集。

Android模型

可以運行測試的 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」、「三星」。

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

當且僅當透過將螢幕截圖拼接在一起來記錄此模型的測試時,才為真。請參閱裝置配置中的 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

該維度的標籤。範例:「預設」、「預覽」、「已棄用」。

thumbnailUrl

string

裝置縮圖(照片)的 URL。

設備表單

該設備是實體的還是虛擬的。

列舉
DEVICE_FORM_UNSPECIFIED不使用。僅適用於原型版本控制。
VIRTUAL使用 Compute Engine 本機虛擬化的 Android 虛擬裝置。僅限 Firebase 測試實驗室。
PHYSICAL實際硬體。
EMULATOR Android 虛擬裝置在巢狀虛擬化中使用模擬器。相當於Android Studio。

設備外形尺寸

設備的外形尺寸。

列舉
DEVICE_FORM_FACTOR_UNSPECIFIED不使用。僅適用於原型版本控制。
PHONE該設備具有電話的形狀。
TABLET該設備具有平板電腦的形狀。
WEARABLE該設備具有手錶或其他可穿戴設備的形狀。

每個Android版本信息

Android 型號的版本特定資訊。

JSON 表示
{
  "versionId": string,
  "deviceCapacity": enum (DeviceCapacity)
}
領域
versionId

string

安卓版本。

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

該維度的標籤。範例:「預設」、「預覽」、「已棄用」。

日期

表示整個或部分日曆日期,例如生日。一天中的時間和時區要麼在其他地方指定,要麼無關緊要。該日期是相對於公曆的。這可以代表以下其中之一:

  • 完整日期,具有非零年、月和日值。
  • 一個月和一天,年份為零(例如週年紀念日)。
  • 一年本身,有零個月和零日。
  • 年和月,帶有零日(例如,信用卡到期日)。

相關類型:

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 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "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

該維度的標籤。範例:“預設”。

方向

設備的螢幕方向。

JSON 表示
{
  "id": string,
  "name": string,
  "tags": [
    string
  ]
}
領域
id

string

該方向的 ID。例如:「肖像」。

name

string

此方向的一個人類友善的名稱。例如:「肖像」。

tags[]

string

該維度的標籤。範例:“預設”。

Ios設備目錄

目前支援的 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

該維度的標籤。範例:「預設」、「預覽」、「已棄用」。

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 模型的版本特定資訊。

PerIos版本信息

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

該維度的標籤。範例:「預設」、「預覽」、「已棄用」。

supportedXcodeVersionIds[]

string

此版本的可用 Xcode 版本。

Xcode版本

iOS 版本相容的 Xcode 版本。

JSON 表示
{
  "version": string,
  "tags": [
    string
  ]
}
領域
version

string

該版本的 id。例:“9.2”。

tags[]

string

此 Xcode 版本的標籤。範例:“預設”。

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。

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

packetLossRatio

number

丟包率(0.0 - 1.0)。

packetDuplicationRatio

number

資料包重複率(0.0 - 1.0)。

bandwidth

number

頻寬(以千位元/秒為單位)。

burst

number

突發大小(以 kbit 為單位)。

提供的軟體目錄

目前在被測設備上提供的軟體環境。

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取得。

設備Ip塊目錄

Firebase 測試實驗室使用的 IP 區塊列表

JSON 表示
{
  "ipBlocks": [
    {
      object (DeviceIpBlock)
    }
  ]
}
領域
ipBlocks[]

object ( DeviceIpBlock )

Firebase 測試實驗室使用的設備 IP 區塊

設備IP塊

單一設備IP塊

JSON 表示
{
  "block": string,
  "form": enum (DeviceForm),
  "addedDate": {
    object (Date)
  }
}
領域
block

string

採用 CIDR 表示法的 IP 位址區塊,例如:34.68.194.64/29

form

enum ( DeviceForm )

該區塊是否被實體設備或虛擬設備使用

addedDate

object ( Date )

此區塊新增至 Firebase 測試實驗室的日期

方法

get

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