| <html><body> | |
| <style> | |
| body, h1, h2, h3, div, span, p, pre, a { | |
| margin: 0; | |
| padding: 0; | |
| border: 0; | |
| font-weight: inherit; | |
| font-style: inherit; | |
| font-size: 100%; | |
| font-family: inherit; | |
| vertical-align: baseline; | |
| } | |
| body { | |
| font-size: 13px; | |
| padding: 1em; | |
| } | |
| h1 { | |
| font-size: 26px; | |
| margin-bottom: 1em; | |
| } | |
| h2 { | |
| font-size: 24px; | |
| margin-bottom: 1em; | |
| } | |
| h3 { | |
| font-size: 20px; | |
| margin-bottom: 1em; | |
| margin-top: 1em; | |
| } | |
| pre, code { | |
| line-height: 1.5; | |
| font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; | |
| } | |
| pre { | |
| margin-top: 0.5em; | |
| } | |
| h1, h2, h3, p { | |
| font-family: Arial, sans serif; | |
| } | |
| h1, h2, h3 { | |
| border-bottom: solid #CCC 1px; | |
| } | |
| .toc_element { | |
| margin-top: 0.5em; | |
| } | |
| .firstline { | |
| margin-left: 2 em; | |
| } | |
| .method { | |
| margin-top: 1em; | |
| border: solid 1px #CCC; | |
| padding: 1em; | |
| background: #EEE; | |
| } | |
| .details { | |
| font-weight: bold; | |
| font-size: 14px; | |
| } | |
| </style> | |
| <h1><a href="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.steps.html">steps</a></h1> | |
| <h2>Instance Methods</h2> | |
| <p class="toc_element"> | |
| <code><a href="#accessibilityClusters">accessibilityClusters(name, locale=None, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Lists accessibility clusters for a given Step</p> | |
| <p class="toc_element"> | |
| <code><a href="#create">create(projectId, historyId, executionId, body=None, requestId=None, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Creates a Step.</p> | |
| <p class="toc_element"> | |
| <code><a href="#get">get(projectId, historyId, executionId, stepId, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Gets a Step.</p> | |
| <p class="toc_element"> | |
| <code><a href="#getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Retrieves a PerfMetricsSummary.</p> | |
| <p class="toc_element"> | |
| <code><a href="#list">list(projectId, historyId, executionId, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Lists Steps for a given Execution.</p> | |
| <p class="toc_element"> | |
| <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p> | |
| <p class="firstline">Retrieves the next page of results.</p> | |
| <p class="toc_element"> | |
| <code><a href="#patch">patch(projectId, historyId, executionId, stepId, body=None, requestId=None, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Updates an existing Step with the supplied partial entity.</p> | |
| <p class="toc_element"> | |
| <code><a href="#publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, body=None, x__xgafv=None)</a></code></p> | |
| <p class="firstline">Publish xml files to an existing Step.</p> | |
| <h3>Method Details</h3> | |
| <div class="method"> | |
| <code class="details" id="accessibilityClusters">accessibilityClusters(name, locale=None, x__xgafv=None)</code> | |
| <pre>Lists accessibility clusters for a given Step | |
| May return any of the following canonical error codes: | |
| - PERMISSION_DENIED - if the user is not authorized to read project | |
| - INVALID_ARGUMENT - if the request is malformed | |
| - FAILED_PRECONDITION - if an argument in the request happens to be | |
| invalid; e.g. if the locale format is incorrect | |
| - NOT_FOUND - if the containing Step does not exist | |
| Args: | |
| name: string, A full resource name of the step. | |
| For example, projects/my-project/histories/bh.1234567890abcdef/executions/ | |
| 1234567890123456789/steps/bs.1234567890abcdef | |
| Required. (required) | |
| locale: string, The accepted format is the canonical Unicode format with hyphen as a | |
| delimiter. Language must be lowercase, Language Script - Capitalized, | |
| Region - UPPERCASE. | |
| See http://www.unicode.org/reports/tr35/#Unicode_locale_identifier for | |
| details. | |
| Required. | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # Response message for AccessibilityService.ListStepAccessibilityClusters. | |
| "clusters": [ # A sequence of accessibility suggestions, grouped into clusters. | |
| # Within the sequence, clusters that belong to the same SuggestionCategory | |
| # should be adjacent. | |
| # Within each category, clusters should be ordered by their | |
| # SuggestionPriority (ERRORs first). | |
| # The categories should be ordered by their highest priority cluster. | |
| { # A set of similar suggestions that we suspect are closely related. | |
| # | |
| # This proto and most of the nested protos are branched from | |
| # foxandcrown.prelaunchreport.service.SuggestionClusterProto, replacing PLR's | |
| # dependencies with FTL's. | |
| "suggestions": [ # A sequence of suggestions. All of the suggestions within a cluster must | |
| # have the same SuggestionPriority and belong to the same SuggestionCategory. | |
| # Suggestions with the same screenshot URL should be adjacent. | |
| { | |
| "region": { # A rectangular region. # Region within the screenshot that is relevant to this suggestion. | |
| # Optional. | |
| "topPx": 42, # The top of the rectangle, in pixels. | |
| # Always set. | |
| "heightPx": 42, # The height, in pixels. | |
| # Always set. | |
| "widthPx": 42, # The width, in pixels. | |
| # Always set. | |
| "leftPx": 42, # The left side of the rectangle, in pixels. | |
| # Always set. | |
| }, | |
| "pseudoResourceId": "A String", # A somewhat human readable identifier of the source view, if it does not | |
| # have a resource_name. This is a path within the accessibility hierarchy, | |
| # an element with resource name; similar to an XPath. | |
| "helpUrl": "A String", # Reference to a help center article concerning this type of suggestion. | |
| # Always set. | |
| "longMessage": { # IMPORTANT: It is unsafe to accept this message from an untrusted source, # Message, in the user's language, explaining the suggestion, which may | |
| # contain markup. | |
| # Always set. | |
| # since it's trivial for an attacker to forge serialized messages that | |
| # don't fulfill the type's safety contract -- for example, it could contain | |
| # attacker controlled script. A system which receives a SafeHtmlProto | |
| # implicitly trusts the producer of the SafeHtmlProto. So, it's generally safe | |
| # to return this message in RPC responses, but generally unsafe to accept it | |
| # in RPC requests. | |
| "privateDoNotAccessOrElseSafeHtmlWrappedValue": "A String", # IMPORTANT: Never set or read this field, even from tests, it is private. | |
| # See documentation at the top of .proto file for programming language | |
| # packages with which to create or read this message. | |
| }, | |
| "shortMessage": { # IMPORTANT: It is unsafe to accept this message from an untrusted source, # Concise message, in the user's language, representing the suggestion, | |
| # which may contain markup. | |
| # Always set. | |
| # since it's trivial for an attacker to forge serialized messages that | |
| # don't fulfill the type's safety contract -- for example, it could contain | |
| # attacker controlled script. A system which receives a SafeHtmlProto | |
| # implicitly trusts the producer of the SafeHtmlProto. So, it's generally safe | |
| # to return this message in RPC responses, but generally unsafe to accept it | |
| # in RPC requests. | |
| "privateDoNotAccessOrElseSafeHtmlWrappedValue": "A String", # IMPORTANT: Never set or read this field, even from tests, it is private. | |
| # See documentation at the top of .proto file for programming language | |
| # packages with which to create or read this message. | |
| }, | |
| "screenId": "A String", # ID of the screen for the suggestion. | |
| # It is used for getting the corresponding screenshot path. For example, | |
| # screen_id "1" corresponds to "1.png" file in GCS. | |
| # Always set. | |
| "title": "A String", # General title for the suggestion, in the user's language, without markup. | |
| # Always set. | |
| "priority": "A String", # Relative importance of a suggestion. | |
| # Always set. | |
| "resourceName": "A String", # Reference to a view element, identified by its resource name, if it has | |
| # one. | |
| "secondaryPriority": 3.14, # Relative importance of a suggestion as compared with other suggestions | |
| # that have the same priority and category. | |
| # This is a meaningless value that can be used to order suggestions that are | |
| # in the same category and have the same priority. | |
| # The larger values have higher priority (i.e., are more important). | |
| # Optional. | |
| }, | |
| ], | |
| "category": "A String", # Category in which these types of suggestions should appear. | |
| # Always set. | |
| }, | |
| ], | |
| "name": "A String", # A full resource name of the step. | |
| # For example, projects/my-project/histories/bh.1234567890abcdef/executions/ | |
| # 1234567890123456789/steps/bs.1234567890abcdef | |
| # | |
| # Always presents. | |
| }</pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="create">create(projectId, historyId, executionId, body=None, requestId=None, x__xgafv=None)</code> | |
| <pre>Creates a Step. | |
| The returned Step will have the id set. | |
| May return any of the following canonical error codes: | |
| - PERMISSION_DENIED - if the user is not authorized to write to project | |
| - INVALID_ARGUMENT - if the request is malformed | |
| - FAILED_PRECONDITION - if the step is too large (more than 10Mib) | |
| - NOT_FOUND - if the containing Execution does not exist | |
| Args: | |
| projectId: string, Required. A Project id. (required) | |
| historyId: string, Required. A History id. (required) | |
| executionId: string, Required. An Execution id. (required) | |
| body: object, The request body. | |
| The object takes the form of: | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| } | |
| requestId: string, A unique request ID for server to detect duplicated requests. | |
| For example, a UUID. | |
| Optional, but strongly recommended. | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| }</pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="get">get(projectId, historyId, executionId, stepId, x__xgafv=None)</code> | |
| <pre>Gets a Step. | |
| May return any of the following canonical error codes: | |
| - PERMISSION_DENIED - if the user is not authorized to read project | |
| - INVALID_ARGUMENT - if the request is malformed | |
| - NOT_FOUND - if the Step does not exist | |
| Args: | |
| projectId: string, A Project id. | |
| Required. (required) | |
| historyId: string, A History id. | |
| Required. (required) | |
| executionId: string, A Execution id. | |
| Required. (required) | |
| stepId: string, A Step id. | |
| Required. (required) | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| }</pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId, x__xgafv=None)</code> | |
| <pre>Retrieves a PerfMetricsSummary. | |
| May return any of the following error code(s): | |
| - NOT_FOUND - The specified PerfMetricsSummary does not exist | |
| Args: | |
| projectId: string, The cloud project (required) | |
| historyId: string, A tool results history ID. (required) | |
| executionId: string, A tool results execution ID. (required) | |
| stepId: string, A tool results step ID. (required) | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # A summary of perf metrics collected and performance environment info | |
| "stepId": "A String", # A tool results step ID. | |
| # @OutputOnly | |
| "historyId": "A String", # A tool results history ID. | |
| # @OutputOnly | |
| "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected | |
| "cpuInfo": { # CPU related environment info | |
| "numberOfCores": 42, # the number of CPU cores | |
| "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A' | |
| "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz | |
| }, | |
| "memoryInfo": { # Memory related environment info | |
| "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB | |
| "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB | |
| }, | |
| }, | |
| "graphicsStats": { # Graphics statistics for the App. # Graphics statistics for the entire run. Statistics are reset at the | |
| # beginning of the run and collected at the end of the run. | |
| # The information is collected from 'adb shell dumpsys graphicsstats'. | |
| # For more info see: | |
| # https://developer.android.com/training/testing/performance.html | |
| # Statistics will only be present for API 23+. | |
| "slowBitmapUploadCount": "A String", # Total "slow bitmap upload" events. | |
| "buckets": [ # Histogram of frame render times. There should be 154 buckets ranging from | |
| # [5ms, 6ms) to [4950ms, infinity) | |
| { | |
| "frameCount": "A String", # Number of frames in the bucket. | |
| "renderMillis": "A String", # Lower bound of render time in milliseconds. | |
| }, | |
| ], | |
| "totalFrames": "A String", # Total frames rendered by package. | |
| "p50Millis": "A String", # 50th percentile frame render time in milliseconds. | |
| "slowUiThreadCount": "A String", # Total "slow UI thread" events. | |
| "p99Millis": "A String", # 99th percentile frame render time in milliseconds. | |
| "slowDrawCount": "A String", # Total "slow draw" events. | |
| "highInputLatencyCount": "A String", # Total "high input latency" events. | |
| "p95Millis": "A String", # 95th percentile frame render time in milliseconds. | |
| "missedVsyncCount": "A String", # Total "missed vsync" events. | |
| "p90Millis": "A String", # 90th percentile frame render time in milliseconds. | |
| "jankyFrames": "A String", # Total frames with slow render time. Should be <= total_frames. | |
| }, | |
| "projectId": "A String", # The cloud project | |
| # @OutputOnly | |
| "perfMetrics": [ # Set of resource collected | |
| "A String", | |
| ], | |
| "appStartTime": { | |
| "initialDisplayTime": { # # The time from app start to the first displayed activity being drawn, | |
| # as reported in Logcat. See | |
| # https://developer.android.com/topic/performance/launch-time.html#time-initial | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "fullyDrawnTime": { # # Optional. The time from app start to reaching the developer-reported | |
| # "fully drawn" time. This is only stored if the app includes a call to | |
| # Activity.reportFullyDrawn(). See | |
| # https://developer.android.com/topic/performance/launch-time.html#time-full | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "executionId": "A String", # A tool results execution ID. | |
| # @OutputOnly | |
| }</pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="list">list(projectId, historyId, executionId, pageToken=None, pageSize=None, x__xgafv=None)</code> | |
| <pre>Lists Steps for a given Execution. | |
| The steps are sorted by creation_time in descending order. The | |
| step_id key will be used to order the steps with the same | |
| creation_time. | |
| May return any of the following canonical error codes: | |
| - PERMISSION_DENIED - if the user is not authorized to read project | |
| - INVALID_ARGUMENT - if the request is malformed | |
| - FAILED_PRECONDITION - if an argument in the request happens to be | |
| invalid; e.g. if an attempt is made to list the | |
| children of a nonexistent Step | |
| - NOT_FOUND - if the containing Execution does not exist | |
| Args: | |
| projectId: string, A Project id. | |
| Required. (required) | |
| historyId: string, A History id. | |
| Required. (required) | |
| executionId: string, A Execution id. | |
| Required. (required) | |
| pageToken: string, A continuation token to resume the query at the next item. | |
| Optional. | |
| pageSize: integer, The maximum number of Steps to fetch. | |
| Default value: 25. The server will use this default if the field is not set | |
| or has a value of 0. | |
| Optional. | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # Response message for StepService.List. | |
| "steps": [ # Steps. | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| }, | |
| ], | |
| "nextPageToken": "A String", # A continuation token to resume the query at the next item. | |
| # | |
| # If set, indicates that there are more steps to read, by calling list again | |
| # with this value in the page_token field. | |
| }</pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="list_next">list_next(previous_request, previous_response)</code> | |
| <pre>Retrieves the next page of results. | |
| Args: | |
| previous_request: The request for the previous page. (required) | |
| previous_response: The response from the request for the previous page. (required) | |
| Returns: | |
| A request object that you can call 'execute()' on to request the next | |
| page. Returns None if there are no more items in the collection. | |
| </pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="patch">patch(projectId, historyId, executionId, stepId, body=None, requestId=None, x__xgafv=None)</code> | |
| <pre>Updates an existing Step with the supplied partial entity. | |
| May return any of the following canonical error codes: | |
| - PERMISSION_DENIED - if the user is not authorized to write project | |
| - INVALID_ARGUMENT - if the request is malformed | |
| - FAILED_PRECONDITION - if the requested state transition is illegal | |
| (e.g try to upload a duplicate xml file), if the | |
| updated step is too large (more than 10Mib) | |
| - NOT_FOUND - if the containing Execution does not exist | |
| Args: | |
| projectId: string, A Project id. | |
| Required. (required) | |
| historyId: string, A History id. | |
| Required. (required) | |
| executionId: string, A Execution id. | |
| Required. (required) | |
| stepId: string, A Step id. | |
| Required. (required) | |
| body: object, The request body. | |
| The object takes the form of: | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| } | |
| requestId: string, A unique request ID for server to detect duplicated requests. | |
| For example, a UUID. | |
| Optional, but strongly recommended. | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| }</pre> | |
| </div> | |
| <div class="method"> | |
| <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, body=None, x__xgafv=None)</code> | |
| <pre>Publish xml files to an existing Step. | |
| May return any of the following canonical error codes: | |
| - PERMISSION_DENIED - if the user is not authorized to write project | |
| - INVALID_ARGUMENT - if the request is malformed | |
| - FAILED_PRECONDITION - if the requested state transition is illegal, | |
| e.g try to upload a duplicate xml file or a file too large. | |
| - NOT_FOUND - if the containing Execution does not exist | |
| Args: | |
| projectId: string, A Project id. | |
| Required. (required) | |
| historyId: string, A History id. | |
| Required. (required) | |
| executionId: string, A Execution id. | |
| Required. (required) | |
| stepId: string, A Step id. | |
| Note: This step must include a TestExecutionStep. | |
| Required. (required) | |
| body: object, The request body. | |
| The object takes the form of: | |
| { # Request message for StepService.PublishXunitXmlFiles. | |
| "xunitXmlFiles": [ # URI of the Xunit XML files to publish. | |
| # | |
| # The maximum size of the file this reference is pointing to is 50MB. | |
| # | |
| # Required. | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| } | |
| x__xgafv: string, V1 error format. | |
| Allowed values | |
| 1 - v1 error format | |
| 2 - v2 error format | |
| Returns: | |
| An object of the form: | |
| { # A Step represents a single operation performed as part of | |
| # Execution. A step can be used to represent the execution of a tool ( | |
| # for example a test runner execution or an execution of a compiler). | |
| # | |
| # Steps can overlap (for instance two steps might have the same | |
| # start time if some operations are done in parallel). | |
| # | |
| # Here is an example, let's consider that we have a continuous build is | |
| # executing a test runner for each iteration. The workflow would look like: | |
| # - user creates a Execution with id 1 | |
| # - user creates an TestExecutionStep with id 100 for Execution 1 | |
| # - user update TestExecutionStep with id 100 to add a raw xml log | |
| # + the service parses the xml logs and returns a TestExecutionStep with | |
| # updated TestResult(s). | |
| # - user update the status of TestExecutionStep with id 100 to COMPLETE | |
| # | |
| # A Step can be updated until its state is set to COMPLETE at which | |
| # points it becomes immutable. | |
| # | |
| # Next tag: 27 | |
| "state": "A String", # The initial state is IN_PROGRESS. | |
| # The only legal state transitions are | |
| # * IN_PROGRESS -> COMPLETE | |
| # | |
| # A PRECONDITION_FAILED will be returned if an invalid transition is | |
| # requested. | |
| # | |
| # It is valid to create Step with a state set to COMPLETE. | |
| # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be | |
| # returned if the state is set to COMPLETE multiple times. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| "name": "A String", # A short human-readable name to display in the UI. | |
| # Maximum of 100 characters. | |
| # For example: Clean build | |
| # | |
| # A PRECONDITION_FAILED will be returned upon creating a new step if it | |
| # shares its name and dimension_value with an existing step. If two steps | |
| # represent a similar action, but have different dimension values, they | |
| # should share the same name. For instance, if the same set of tests is | |
| # run on two different platforms, the two steps should have the same name. | |
| # | |
| # - In response: always set | |
| # - In create request: always set | |
| # - In update request: never set | |
| "dimensionValue": [ # If the execution containing this step has any dimension_definition set, | |
| # then this field allows the child to specify the values of the dimensions. | |
| # | |
| # The keys must exactly match the dimension_definition of the execution. | |
| # | |
| # For example, if the execution has | |
| # `dimension_definition = ['attempt', 'device']` | |
| # then a step must define values for those dimensions, eg. | |
| # `dimension_value = ['attempt': '1', 'device': 'Nexus 6']` | |
| # | |
| # If a step does not participate in one dimension of the matrix, | |
| # the value for that dimension should be empty string. | |
| # For example, if one of the tests is executed by a runner which | |
| # does not support retries, the step could have | |
| # `dimension_value = ['attempt': '', 'device': 'Nexus 6']` | |
| # | |
| # If the step does not participate in any dimensions of the matrix, | |
| # it may leave dimension_value unset. | |
| # | |
| # A PRECONDITION_FAILED will be returned if any of the keys do not exist | |
| # in the dimension_definition of the execution. | |
| # | |
| # A PRECONDITION_FAILED will be returned if another step in this execution | |
| # already has the same name and dimension_value, but differs on other data | |
| # fields, for example, step field is different. | |
| # | |
| # A PRECONDITION_FAILED will be returned if dimension_value is set, and | |
| # there is a dimension_definition in the execution which is not specified | |
| # as one of the keys. | |
| # | |
| # - In response: present if set by create | |
| # - In create request: optional | |
| # - In update request: never set | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete. | |
| # | |
| # This value will be set automatically when state transitions to | |
| # COMPLETE. | |
| # | |
| # - In response: set if the execution state is COMPLETE. | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "multiStep": { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group. | |
| # These details can be used identify which group this step is part of. | |
| # It also identifies the groups 'primary step' which indexes all the group | |
| # members. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional, set iff this step was performed more than | |
| # once. | |
| # - In update request: optional | |
| "primaryStep": { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step. | |
| # outcome of each individual step. | |
| "rollUp": "A String", # Rollup test status of multiple steps that were run with the same | |
| # configuration as a group. | |
| "individualOutcome": [ # Step Id and outcome of each individual step. | |
| { # Step Id and outcome of each individual step that was run as a group with | |
| # other steps with the same configuration. | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "outcomeSummary": "A String", | |
| "runDuration": { # # How long it took for this step to run. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "stepId": "A String", | |
| }, | |
| ], | |
| }, | |
| "multistepNumber": 42, # Unique int given to each step. | |
| # Ranges from 0(inclusive) to total number of steps(exclusive). | |
| # The primary step is 0. | |
| "primaryStepId": "A String", # Step Id of the primary (original) step, which might be this step. | |
| }, | |
| "stepId": "A String", # A unique identifier within a Execution for this Step. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "successDetail": { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SUCCESS. | |
| # | |
| # Optional | |
| # LINT.IfChange | |
| "otherNativeCrash": True or False, # If a native process other than the app crashed. | |
| }, | |
| "skippedDetail": { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not SKIPPED. | |
| # | |
| # Optional | |
| "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level. | |
| "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model. | |
| "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86. | |
| }, | |
| "summary": "A String", # The simplest way to interpret a result. | |
| # | |
| # Required | |
| "failureDetail": { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not FAILURE. | |
| # | |
| # Optional | |
| "crashed": True or False, # If the failure was severe because the system (app) under test crashed. | |
| "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not | |
| # start. | |
| "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. | |
| # This might be caused by trying to run a test on an unsupported platform. | |
| "timedOut": True or False, # If the test overran some time limit, and that is why it failed. | |
| "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed. | |
| }, | |
| "inconclusiveDetail": { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome. | |
| # | |
| # Returns INVALID_ARGUMENT if this field is set | |
| # but the summary is not INCONCLUSIVE. | |
| # | |
| # Optional | |
| "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of | |
| # infrastructure failures | |
| "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test | |
| # depends on a component other than the system under test which failed. | |
| # | |
| # For example, a mobile test requires provisioning a device where the test | |
| # executes, and that provisioning can fail. | |
| "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be | |
| # determined. | |
| # For example, the user pressed ctrl-c which sent a kill signal to the test | |
| # runner while the test was running. | |
| }, | |
| }, | |
| "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don't explicitly support). | |
| # For example: running cp to copy artifacts from one location to another. | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "deviceUsageDuration": { # # How much the device resource is used to perform the test. | |
| # | |
| # This is the device usage used for billing purpose, which is different from | |
| # the run_duration, for example, infrastructure failure won't be charged for | |
| # device usage. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # device_usage on a step which already has this field set. | |
| # | |
| # - In response: present if previously set. | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the | |
| # step. | |
| # | |
| # Users are responsible for managing the key namespace such that keys | |
| # don't accidentally collide. | |
| # | |
| # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or | |
| # if the length of any of the keys or values exceeds 100 characters. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: optional; any new key/value pair will be added to the | |
| # map, and any new value for an existing key will update that key's value | |
| { | |
| "key": "A String", | |
| "value": "A String", | |
| }, | |
| ], | |
| "hasImages": True or False, # Whether any of the outputs of this step are images whose | |
| # thumbnails can be fetched with ListThumbnails. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| "runDuration": { # # How long it took for this step to run. | |
| # | |
| # If unset, this is set to the difference between creation_time and | |
| # completion_time when the step is set to the COMPLETE state. In some cases, | |
| # it is appropriate to set this value separately: For instance, if a step is | |
| # created, but the operation it represents is queued for a few minutes before | |
| # it executes, it would be appropriate not to include the time spent queued | |
| # in its run_duration. | |
| # | |
| # PRECONDITION_FAILED will be returned if one attempts to set a | |
| # run_duration on a step which already has this field set. | |
| # | |
| # - In response: present if previously set; always present on COMPLETE step | |
| # - In create request: optional | |
| # - In update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "description": "A String", # A description of this tool | |
| # For example: mvn clean package -D skipTests=true | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| "testExecutionStep": { # A step that represents running tests. # An execution of a test runner. | |
| # | |
| # It accepts ant-junit xml files which will be parsed into structured test | |
| # results by the service. Xml file paths are updated in order to append more | |
| # files, however they can't be deleted. | |
| # | |
| # Users can also add test results manually by using the test_result field. | |
| "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML | |
| # log by server, or uploaded directly by user. This references should only be | |
| # called when test suites are fully parsed or uploaded. | |
| # | |
| # The maximum allowed number of test suite overviews per step is 1000. | |
| # | |
| # - In response: always set | |
| # - In create request: optional | |
| # - In update request: never (use publishXunitXmlFiles custom method instead) | |
| { # A summary of a test suite result either parsed from XML or uploaded | |
| # directly by a user. | |
| # | |
| # Note: the API related comments are for StepService only. This message is | |
| # also being used in ExecutionService in a read only mode for the corresponding | |
| # step. | |
| "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the | |
| # xml_source. May also be set by the user. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "name": "A String", # The name of the test suite. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "elapsedTime": { # # Elapsed time of test suite. | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| "flakyCount": 42, # Number of flaky test cases, set by the service by rolling up flaky test | |
| # attempts. | |
| # | |
| # Present only for rollup test suite overview at environment level. A step | |
| # cannot have flaky test cases. | |
| "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "totalCount": 42, # Number of test cases, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the | |
| # xml_source. | |
| # | |
| # - In create/response: always set | |
| # - In update request: never | |
| "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original | |
| # XML file is stored. | |
| # | |
| # Note: Multiple test suites can share the same xml_source | |
| # | |
| # Returns INVALID_ARGUMENT if the uri format is not supported. | |
| # | |
| # - In create/response: optional | |
| # - In update request: never | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| "testProcessDuration": { # # How long it took to run the test process. | |
| # | |
| # - In response: present if previously set. | |
| # - In create/update request: optional | |
| # A Duration represents a signed, fixed-length span of time represented | |
| # as a count of seconds and fractions of seconds at nanosecond | |
| # resolution. It is independent of any calendar and concepts like "day" | |
| # or "month". It is related to Timestamp in that the difference between | |
| # two Timestamp values is a Duration and it can be added or subtracted | |
| # from a Timestamp. Range is approximately +-10,000 years. | |
| "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 | |
| # to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
| # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
| "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span | |
| # of time. Durations less than one second are represented with a 0 | |
| # `seconds` field and a positive or negative `nanos` field. For durations | |
| # of one second or more, a non-zero value for the `nanos` field must be | |
| # of the same sign as the `seconds` field. Must be from -999,999,999 | |
| # to +999,999,999 inclusive. | |
| }, | |
| }, | |
| "testIssues": [ # Issues observed during the test execution. | |
| # | |
| # For example, if the mobile app under test crashed during the test, | |
| # the error message and the stack trace content can be recorded here | |
| # to assist debugging. | |
| # | |
| # - In response: present if set by create or update | |
| # - In create/update request: optional | |
| { # An issue detected occurring during a test execution. | |
| "warning": { # # Warning message with additional details of the issue. | |
| # Should always be a message from com.google.devtools.toolresults.v1.warnings | |
| # `Any` contains an arbitrary serialized protocol buffer message along with a | |
| # URL that describes the type of the serialized message. | |
| # | |
| # Protobuf library provides support to pack/unpack Any values in the form | |
| # of utility functions or additional generated methods of the Any type. | |
| # | |
| # Example 1: Pack and unpack a message in C++. | |
| # | |
| # Foo foo = ...; | |
| # Any any; | |
| # any.PackFrom(foo); | |
| # ... | |
| # if (any.UnpackTo(&foo)) { | |
| # ... | |
| # } | |
| # | |
| # Example 2: Pack and unpack a message in Java. | |
| # | |
| # Foo foo = ...; | |
| # Any any = Any.pack(foo); | |
| # ... | |
| # if (any.is(Foo.class)) { | |
| # foo = any.unpack(Foo.class); | |
| # } | |
| # | |
| # Example 3: Pack and unpack a message in Python. | |
| # | |
| # foo = Foo(...) | |
| # any = Any() | |
| # any.Pack(foo) | |
| # ... | |
| # if any.Is(Foo.DESCRIPTOR): | |
| # any.Unpack(foo) | |
| # ... | |
| # | |
| # Example 4: Pack and unpack a message in Go | |
| # | |
| # foo := &pb.Foo{...} | |
| # any, err := ptypes.MarshalAny(foo) | |
| # ... | |
| # foo := &pb.Foo{} | |
| # if err := ptypes.UnmarshalAny(any, foo); err != nil { | |
| # ... | |
| # } | |
| # | |
| # The pack methods provided by protobuf library will by default use | |
| # 'type.googleapis.com/full.type.name' as the type URL and the unpack | |
| # methods only use the fully qualified type name after the last '/' | |
| # in the type URL, for example "foo.bar.com/x/y.z" will yield type | |
| # name "y.z". | |
| # | |
| # | |
| # # JSON | |
| # | |
| # The JSON representation of an `Any` value uses the regular | |
| # representation of the deserialized, embedded message, with an | |
| # additional field `@type` which contains the type URL. Example: | |
| # | |
| # package google.profile; | |
| # message Person { | |
| # string first_name = 1; | |
| # string last_name = 2; | |
| # } | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.profile.Person", | |
| # "firstName": <string>, | |
| # "lastName": <string> | |
| # } | |
| # | |
| # If the embedded message type is well-known and has a custom JSON | |
| # representation, that representation will be embedded adding a field | |
| # `value` which holds the custom JSON in addition to the `@type` | |
| # field. Example (for message google.protobuf.Duration): | |
| # | |
| # { | |
| # "@type": "type.googleapis.com/google.protobuf.Duration", | |
| # "value": "1.212s" | |
| # } | |
| "value": "A String", # Must be a valid serialized protocol buffer of the above specified type. | |
| "typeUrl": "A String", # A URL/resource name that uniquely identifies the type of the serialized | |
| # protocol buffer message. This string must contain at least | |
| # one "/" character. The last segment of the URL's path must represent | |
| # the fully qualified name of the type (as in | |
| # `path/google.protobuf.Duration`). The name should be in a canonical form | |
| # (e.g., leading "." is not accepted). | |
| # | |
| # In practice, teams usually precompile into the binary all types that they | |
| # expect it to use in the context of Any. However, for URLs which use the | |
| # scheme `http`, `https`, or no scheme, one can optionally set up a type | |
| # server that maps type URLs to message definitions as follows: | |
| # | |
| # * If no scheme is provided, `https` is assumed. | |
| # * An HTTP GET on the URL must yield a google.protobuf.Type | |
| # value in binary format, or produce an error. | |
| # * Applications are allowed to cache lookup results based on the | |
| # URL, or have them precompiled into a binary to avoid any | |
| # lookup. Therefore, binary compatibility needs to be preserved | |
| # on changes to types. (Use versioned type names to manage | |
| # breaking changes.) | |
| # | |
| # Note: this functionality is not currently available in the official | |
| # protobuf release, and it is not used for type URLs beginning with | |
| # type.googleapis.com. | |
| # | |
| # Schemes other than `http`, `https` (or the empty scheme) might be | |
| # used with implementation specific semantics. | |
| }, | |
| "severity": "A String", # Severity of issue. | |
| # Required. | |
| "stackTrace": { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings. | |
| "exception": "A String", # The stack trace message. | |
| # | |
| # Required | |
| }, | |
| "type": "A String", # Type of issue. | |
| # Required. | |
| "errorMessage": "A String", # A brief human-readable message describing the issue. | |
| # Required. | |
| "category": "A String", # Category of issue. | |
| # Required. | |
| }, | |
| ], | |
| "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner. | |
| # | |
| # The exit code of this tool will be used to determine if the test passed. | |
| # | |
| # - In response: always set | |
| # - In create/update request: optional | |
| # copying artifacts or deploying code. | |
| "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to | |
| # argv in a C program). | |
| # | |
| # - In response: present if set by create request | |
| # - In create request: optional | |
| # - In update request: never set | |
| "A String", | |
| ], | |
| "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has | |
| # exited. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, a FAILED_PRECONDITION error will be | |
| # returned if an exit_code is already set. | |
| "number": 42, # Tool execution exit code. A value of 0 means that the execution was | |
| # successful. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| "toolLogs": [ # References to any plain text logs output the tool execution. | |
| # | |
| # This field can be set before the tool has exited in order to be able to | |
| # have access to a live view of the logs while the tool is running. | |
| # | |
| # The maximum allowed number of tool logs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a file. | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| ], | |
| "toolOutputs": [ # References to opaque files of any format output by the tool execution. | |
| # | |
| # The maximum allowed number of tool outputs per step is 1000. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create request: optional | |
| # - In update request: optional, any value provided will be appended to the | |
| # existing list | |
| { # A reference to a ToolExecution output file. | |
| "testCase": { # A reference to a test case. # The test case to which this output file belongs. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # | |
| # Test case references are canonically ordered lexicographically by these three | |
| # factors: | |
| # * First, by test_suite_name. | |
| # * Second, by class_name. | |
| # * Third, by name. | |
| "testSuiteName": "A String", # The name of the test suite to which this test case belongs. | |
| "className": "A String", # The name of the class. | |
| "name": "A String", # The name of the test case. | |
| # | |
| # Required. | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file. | |
| # | |
| # - In response: present if set by create/update request | |
| # - In create/update request: optional | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| "output": { # A reference to a file. # A FileReference to an output file. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| "fileUri": "A String", # The URI of a file stored in Google Cloud Storage. | |
| # | |
| # For example: http://storage.googleapis.com/mybucket/path/to/test.xml | |
| # or in gsutil format: gs://mybucket/path/to/test.xml | |
| # with version-specific info, | |
| # gs://mybucket/path/to/test.xml#1360383693690000 | |
| # | |
| # An INVALID_ARGUMENT error will be returned if the URI format is not | |
| # supported. | |
| # | |
| # - In response: always set | |
| # - In create/update request: always set | |
| }, | |
| }, | |
| ], | |
| }, | |
| }, | |
| "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created. | |
| # | |
| # - In response: always set | |
| # - In create/update request: never set | |
| # calendar, encoded as a count of seconds and fractions of seconds at | |
| # nanosecond resolution. The count is relative to an epoch at UTC midnight on | |
| # January 1, 1970, in the proleptic Gregorian calendar which extends the | |
| # Gregorian calendar backwards to year one. | |
| # | |
| # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap | |
| # second table is needed for interpretation, using a [24-hour linear | |
| # smear](https://developers.google.com/time/smear). | |
| # | |
| # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By | |
| # restricting to that range, we ensure that we can convert to and from [RFC | |
| # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. | |
| "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative | |
| # second values with fractions must still have non-negative nanos values | |
| # that count forward in time. Must be from 0 to 999,999,999 | |
| # inclusive. | |
| "seconds": "A String", # Represents seconds of UTC time since Unix epoch | |
| # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
| # 9999-12-31T23:59:59Z inclusive. | |
| }, | |
| }</pre> | |
| </div> | |
| </body></html> |