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 OS 版本集。

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。使用此 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_density

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

此维度的标记。例如:“默认”、“预览”、“已弃用”。

thumbnailUrl

string

设备缩略图(照片)的网址。

DeviceForm

设备是真机设备还是虚拟设备。

枚举
DEVICE_FORM_UNSPECIFIED 请勿使用。仅适用于 Proto 版本控制。
VIRTUAL 使用 Compute Engine 原生虚拟化的 Android 虚拟设备。仅限 Firebase Test Lab。
PHYSICAL 实际硬件。
EMULATOR 在嵌套虚拟化中使用模拟器的 Android 虚拟设备。等同于 Android Studio。

DeviceFormFactor

设备的外形规格。

枚举
DEVICE_FORM_FACTOR_UNSPECIFIED 请勿使用。仅适用于 Proto 版本控制。
PHONE 此设备具有手机的形状。
TABLET 此设备具有平板电脑的形状。
WEARABLE 此设备具有手表或其他可穿戴设备的形状。

PerAndroidVersionInfo

Android 模型的版本专属信息。

JSON 表示法
{
  "versionId": string,
  "deviceCapacity": enum (DeviceCapacity),
  "interactiveDeviceAvailabilityEstimate": string,
  "directAccessVersionInfo": {
    object (DirectAccessVersionInfo)
  }
}
字段
versionId

string

Android 版本。

deviceCapacity

enum (DeviceCapacity)

Android 版本的在线设备数量。

interactiveDeviceAvailabilityEstimate

string (Duration format)

仅限输出。使用“直接访问”功能的单个交互式设备会话的预计等待时间。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

directAccessVersionInfo

object (DirectAccessVersionInfo)

仅限输出。确定此 Android 版本支持 DirectAccess 的客户端。

设备容量

容量基于实验室中的在线设备数量。

重要提示:设备容量不会直接反映当前播放队列的长度。而不会考虑当前流量或设备状态。

对于实体设备,该数量是过去 30 天内在线设备的平均数量。

枚举
DEVICE_CAPACITY_UNSPECIFIED 设备容量的值未知或未设置。
DEVICE_CAPACITY_HIGH

容量较高的设备(实验室中装有大量此类设备)。

通常建议使用这些设备同时运行大量测试(例如超过 100 项测试)。

请注意,由于以下几个因素,高容量设备无法保证等待时间较短:1.流量(任意给定时刻的使用量)2.针对特定用途,高容量设备会优先满足,这可能会导致用户测试速度比选择其他类似设备类型慢。

DEVICE_CAPACITY_MEDIUM

中等容量的设备(实验室中的此类设备数量相当多,但是不像高容量设备那么多)。

这些设备适用于运行较少的测试(例如少于 100 个测试)和分片数较少(例如分片少于 10 个)的情况。

DEVICE_CAPACITY_LOW

容量低的设备(实验室中的此类设备数量很少)。

如果用户需要在这一特定设备型号和版本上进行测试,则可以使用这些设备。请注意,由于容量较低,完成测试可能需要更长时间,尤其是在一次调用大量测试的情况下。这些设备不适合进行测试分片。

DEVICE_CAPACITY_NONE

实验室中完全缺失的设备。

这些设备暂时或永久不可用,您不应提出请求。如果设备还被标记为已弃用,则此状态很可能是永久性的。

直接访问版本信息

指示是否支持直接访问,以及哪些客户端版本支持直接访问。

DirectAccessService 目前以预览版的形式提供给部分开发者。您可以立即代表您和您的团队前往 https://developer.android.com/studio/preview/android-device-streaming 报名

JSON 表示法
{
  "directAccessSupported": boolean,
  "minimumAndroidStudioVersion": string
}
字段
directAccessSupported

boolean

是否支持直接访问。客户端应过滤设备列表,仅显示支持直接访问的 Android 型号和版本(当这是用户 intent 时)。

minimumAndroidStudioVersion

string

仅限输出。指明客户端设备的兼容性,即已知设备只能与在 Android Studio 客户端中实现的特定权宜解决方法配合使用。应采用“major.minor.micro.patch”格式,例如“5921.22.2211.8881706”。

AndroidVersion

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 OS 的字符串。例如:“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,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

marketShare

number

仅限输出。采用此配置的估算总市场份额 (0-1)。

AndroidRuntimeConfiguration

在运行测试时可以选择的 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

此维度的标记。例如:“默认”。

Orientation

设备的屏幕方向。

JSON 表示法
{
  "id": string,
  "name": string,
  "tags": [
    string
  ]
}
字段
id

string

此屏幕方向的 ID。例如:“纵向”。

name

string

此屏幕方向的简单易懂的名称。例如:“纵向”。

tags[]

string

此维度的标记。例如:“默认”。

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)

受支持的运行时配置集。

IosModel

有关可在其上运行测试的 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。使用此 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 模型的版本特定信息。

PerIosVersionInfo

iOS 模型的版本特定信息。

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

string

iOS 版本。

deviceCapacity

enum (DeviceCapacity)

iOS 版本的在线设备数量。

IosVersion

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 版本。

XcodeVersion

与 iOS 版本兼容的 Xcode 版本。

JSON 表示法
{
  "version": string,
  "tags": [
    string
  ]
}
字段
version

string

此版本的 ID。例如:“9.2”。

tags[]

string

此 Xcode 版本的标记。例如:“默认”。

IosRuntimeConfiguration

在运行测试时可以选择的 iOS 配置。

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

object (Locale)

可用的语言区域集。

orientations[]

object (Orientation)

可用的屏幕方向集。

NetworkConfigurationCatalog

JSON 表示法
{
  "configurations": [
    {
      object (NetworkConfiguration)
    }
  ]
}
字段
configurations[]

object (NetworkConfiguration)

NetworkConfiguration

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

string

此网络流量配置的唯一不透明 ID。

upRule

object (TrafficRule)

适用于上传流量的模拟规则。

downRule

object (TrafficRule)

适用于下载流量的模拟规则。

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

连拍大小(以千字节为单位)。

ProvidedSoftwareCatalog

目前在测试设备上提供的软件环境。

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 地址段

设备 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 Test Lab 的日期

方法

get

获取受支持的测试环境目录。