REST Resource: projects.histories.executions

资源:执行

Execution 代表一系列步骤。例如,它可以表示:- 针对一系列设备配置执行的移动测试;具有构建步骤后跟测试步骤的 jenkins 作业

执行消息的大小上限为 1 MiB。

可以更新 Execution,直至其状态设为 COMPLETE,此时它将不可变。

JSON 表示法
{
  "executionId": string,
  "state": enum (State),
  "creationTime": {
    object (Timestamp)
  },
  "completionTime": {
    object (Timestamp)
  },
  "outcome": {
    object (Outcome)
  },
  "dimensionDefinitions": [
    {
      object (MatrixDimensionDefinition)
    }
  ],
  "specification": {
    object (Specification)
  },
  "testExecutionMatrixId": string
}
字段
executionId

string

此执行的历史记录中的唯一标识符。

如果调用方设置或覆盖了此字段,则返回 INVALID_ARGUMENT。

  • 始终设置“回复”
  • 创建/更新请求中:永不设置
state

enum (State)

初始状态为 IN_PROGRESS。

唯一合法状态是从 IN_PROGRESS 转换为 COMPLETE。

如果请求无效转换,则返回 PRECONDITION_FAILED。

状态只能设置为 COMPLETE 一次。如果多次将状态设置为 COMPLETE,将返回 FAILED_PRECONDITION。

如果状态设为 COMPLETE,则执行中所有正在进行的步骤都将设为 COMPLETE。如果未设置步骤的结果,则结果将设置为 INCONCLUSIVE。

  • 始终设置“回复”
  • 在创建/更新请求中:可选
creationTime

object (Timestamp)

作业的创建时间。

此值将在调用 executions.create 时自动设置。

  • 回复:Always set
  • 创建/更新请求中:永不设置
completionTime

object (Timestamp)

执行状态转换为“完成”的时间。

当状态转换为 COMPLETE 时,系统会自动设置此值。

  • 响应时:在执行状态为 COMPLETE 时设置。
  • 创建/更新请求中:永不设置
outcome

object (Outcome)

将结果分类,例如分类为 SUCCESS 或 FAILURE

  • 响应:如果通过创建/更新请求设置,则存在
  • 在创建/更新请求中:可选
dimensionDefinitions[]

object (MatrixDimensionDefinition)

此执行中不同步骤的维度可能会有所不同。这必须在执行生命周期内保持不变。

如果在更新请求中设置了此字段,则返回 INVALID_ARGUMENT。

如果多个维度定义中出现了相同的名称,则返回 INVALID_ARGUMENT。

如果列表的大小超过 100,则返回 INVALID_ARGUMENT。

  • 响应:如果由 create 设置,则存在
  • 在创建请求中:可选
  • 在更新请求中:从未设置
specification

object (Specification)

有关执行请求的轻量级信息。

  • 响应:如果由 create 设置,则存在
  • 创建时:可选
  • 更新中:可选
testExecutionMatrixId

string

TestExecutionService 使用的 TestExecution 矩阵 ID。

  • 响应:如果由 create 设置,则存在
  • 创建时:可选
  • 更新中:从未设置

矩阵维度定义

此类型没有字段。

不同步长运行的矩阵的一个维度。

规范

有关如何运行执行的详细信息。

JSON 表示法
{

  // Union field specification can be only one of the following:
  "androidTest": {
    object (AndroidTest)
  },
  "iosTest": {
    object (IosTest)
  }
  // End of list of possible types for union field specification.
}
字段

联合字段 specification

specification 只能是下列其中一项:

androidTest

object (AndroidTest)

Android 移动设备测试执行规范。

iosTest

object (IosTest)

iOS 移动设备测试执行规范。

AndroidTest

Android 移动设备测试规范。

JSON 表示法
{
  "androidAppInfo": {
    object (AndroidAppInfo)
  },
  "testTimeout": {
    object (Duration)
  },

  // Union field test can be only one of the following:
  "androidInstrumentationTest": {
    object (AndroidInstrumentationTest)
  },
  "androidRoboTest": {
    object (AndroidRoboTest)
  },
  "androidTestLoop": {
    object (AndroidTestLoop)
  }
  // End of list of possible types for union field test.
}
字段
androidAppInfo

object (AndroidAppInfo)

有关被测应用的信息。

testTimeout

object (Duration)

在自动取消测试之前允许运行的最长时间。

联合字段 test

test 只能是下列其中一项:

androidInstrumentationTest

object (AndroidInstrumentationTest)

Android 插桩测试。

androidRoboTest

object (AndroidRoboTest)

Android Robo 测试。

androidTestLoop

object (AndroidTestLoop)

Android 测试循环。

AndroidAppInfo 类中的方法

Android 应用信息。

JSON 表示法
{
  "name": string,
  "packageName": string,
  "versionName": string,
  "versionCode": string
}
字段
name

string

应用的名称。选填

packageName

string

应用的软件包名称。必填。

versionName

string

应用的版本名称。选填。

versionCode

string

应用的内部版本代码。选填。

AndroidInstrumentationTest

Android 应用的测试,可以独立于 Android 组件的正常生命周期对其进行控制。

如需详细了解 Android 测试的类型,请参阅 https://developer.android.com/training/testing/fundamentals

JSON 表示法
{
  "testPackageId": string,
  "testRunnerClass": string,
  "testTargets": [
    string
  ],
  "useOrchestrator": boolean
}
字段
testPackageId

string

要执行的测试的 Java 软件包。需要

testRunnerClass

string

InstrumentationTestRunner 类。需要

testTargets[]

string

每个目标都必须使用软件包名称或类名称进行完全限定,并采用以下格式之一:“package packageName”-“class packageName.class_name”-“class packageName.class_name#methodName”

如果为空,系统将运行模块中的所有目标。

useOrchestrator

boolean

该标志指示是否使用 Android Test Orchestrator 运行测试。

AndroidRoboTest

Android 应用的测试,用于探索应用在虚拟或实体 Android 设备上的运行情况,并在此过程中找出问题根源和崩溃。

JSON 表示法
{
  "appInitialActivity": string,
  "bootstrapPackageId": string,
  "bootstrapRunnerClass": string,
  "maxDepth": integer,
  "maxSteps": integer
}
字段
appInitialActivity

string

应该用于启动应用的初始 activity。选填

bootstrapPackageId

string

引导加载程序的 java 软件包。可选

bootstrapRunnerClass

string

引导加载程序的运行程序类。可选

maxDepth

integer

Robo 可探索的遍历堆栈的最大深度。可选

maxSteps

integer

Robo 可以执行的步骤/操作数量上限。默认值为无限制 (0)。可选

AndroidTestLoop

此类型没有字段。

测试循环是可由应用本身启动的测试,通过监听 intent 来确定何时运行。

iOS 测试

iOS 移动测试规范

JSON 表示法
{
  "iosAppInfo": {
    object (IosAppInfo)
  },
  "testTimeout": {
    object (Duration)
  },

  // Union field test can be only one of the following:
  "iosXcTest": {
    object (IosXcTest)
  },
  "iosTestLoop": {
    object (IosTestLoop)
  },
  "iosRoboTest": {
    object (IosRoboTest)
  }
  // End of list of possible types for union field test.
}
字段
iosAppInfo

object (IosAppInfo)

有关被测应用的信息。

testTimeout

object (Duration)

在自动取消测试之前允许运行的最长时间。

联合字段 test

test 只能是下列其中一项:

iosXcTest

object (IosXcTest)

iOS XCTest。

iosTestLoop

object (IosTestLoop)

iOS 测试循环。

iosRoboTest

object (IosRoboTest)

iOS Robo 测试。

iOSAppInfo

iOS 应用信息

JSON 表示法
{
  "name": string
}
字段
name

string

应用的名称。是否必需

IosXcTest

对使用 XCTest 框架的 iOS 应用的测试。

JSON 表示法
{
  "bundleId": string,
  "xcodeVersion": string
}
字段
bundleId

string

应用的软件包 ID。

xcodeVersion

string

运行测试所用的 Xcode 版本。

IosTestLoop

iOS 应用的游戏循环测试。

JSON 表示法
{
  "bundleId": string
}
字段
bundleId

string

应用的软件包 ID。

IosRobo 测试

此类型没有字段。

针对 iOS 应用的 Robo 测试。

方法

create

创建执行。

get

获取执行作业。

list

列出给定历史记录的执行作业。

patch

使用提供的部分实体更新现有执行。