Cloud Tool Results API . environments

Instance Methods

get(projectId=*, historyId=*, executionId=*, environmentId=*, x__xgafv=None)

Gets an Environment.

list(projectId=*, historyId=*, executionId=*, pageSize=None, pageToken=None, x__xgafv=None)

Lists Environments for a given Execution.

list_next(previous_request=*, previous_response=*)

Retrieves the next page of results.

Method Details

get(projectId=*, historyId=*, executionId=*, environmentId=*, x__xgafv=None)
Gets an Environment.

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 Environment 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)
  environmentId: string, Required. An Environment id. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Environment represents the set of test runs (Steps) from the parent
      # Execution that are configured with the same set of dimensions (Model,
      # Version, Locale, and Orientation). Multiple such runs occur particularly
      # because of features like sharding (splitting up a test suite to run in
      # parallel across devices) and reruns (running a test multiple times to check
      # for different outcomes).
    "environmentId": "A String", # Output only. An Environment id.
    "displayName": "A String", # A short human-readable name to display in the UI.
        # Maximum of 100 characters.
        # For example: Nexus 5, API 27.
    "projectId": "A String", # Output only. A Project id.
    "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment was created.
        # 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.
    },
    "executionId": "A String", # Output only. An Execution id.
    "historyId": "A String", # Output only. A History id.
    "environmentResult": { # Merged test result for environment. # Merged result of the environment.
        #
        # If the environment has only one step (no reruns or shards), then the merged
        # result is the same as the step result. If the environment has multiple shards
        # and/or reruns, then the results of shards and reruns that belong to the same
        # environment are merged into one environment result.
      "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
          #  of this environment.
          #
          #  Combining:
          #  When the test cases from a suite are run in different steps (sharding),
          #  the results are added back together in one overview. (e.g., if shard1 has
          #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
          #
          #  Rollup:
          #  When test cases from the same suite are run multiple times (flaky), the
          #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
          #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
          #  flaky_count = 1 and failure_count = 1).
        { # 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.
          "name": "A String", # The name of the test suite.
              #
              # - In create/response: always set
              # - In update request: never
          "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.
          "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
          "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.
            "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.
            "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
          },
          "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
          "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
          },
          "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
          "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
        },
      ],
      "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
        "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
          "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.
          "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
              # infrastructure failures
          "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.
        },
        "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.
          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
        },
        "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.
        },
        "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
          "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
          "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.
          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
          "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.
        },
        "summary": "A String", # The simplest way to interpret a result.
            #
            # Required
      },
      "state": "A String", # State of the resource
    },
    "shardSummaries": [ # Output only. Summaries of shards.
        #
        # Only one shard will present unless sharding feature is enabled in
        # TestExecutionService.
      { # Result summary for a shard in an environment.
        "shardResult": { # Merged test result for environment. # Merged result of the shard.
            #
            # If the environment has only one step (no reruns or shards), then the merged
            # result is the same as the step result. If the environment has multiple shards
            # and/or reruns, then the results of shards and reruns that belong to the same
            # environment are merged into one environment result.
          "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
              #  of this environment.
              #
              #  Combining:
              #  When the test cases from a suite are run in different steps (sharding),
              #  the results are added back together in one overview. (e.g., if shard1 has
              #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
              #
              #  Rollup:
              #  When test cases from the same suite are run multiple times (flaky), the
              #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
              #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
              #  flaky_count = 1 and failure_count = 1).
            { # 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.
              "name": "A String", # The name of the test suite.
                  #
                  # - In create/response: always set
                  # - In update request: never
              "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.
              "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
              "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.
                "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.
                "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
              },
              "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
              "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
              },
              "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
              "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
            },
          ],
          "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
            "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
              "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.
              "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                  # infrastructure failures
              "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.
            },
            "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.
              "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
              "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
            },
            "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.
            },
            "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
              "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
              "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.
              "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
              "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.
            },
            "summary": "A String", # The simplest way to interpret a result.
                #
                # Required
          },
          "state": "A String", # State of the resource
        },
        "runs": [ # Summaries of the steps belonging to the shard.
            #
            # With flaky_test_attempts enabled from TestExecutionService, more than one
            # run (Step) can present. And the runs will be sorted by multistep_number.
          { # Lightweight summary of a step within this execution.
          },
        ],
      },
    ],
    "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment status was set to complete.
        #
        # This value will be set automatically when state transitions to
        # COMPLETE.
        # 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.
    },
    "resultsStorage": { # The storage for test results. # The location where output files are stored in the user bucket.
      "xunitXmlFile": { # A reference to a file. # The path to the Xunit XML 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
      },
      "resultsStoragePath": { # A reference to a file. # The root directory for test results.
        "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
      },
    },
    "dimensionValue": [ # Dimension values describing the environment. Dimension values always
        # consist of "Model", "Version", "Locale", and "Orientation".
        #
        # - In response: always set
        # - In create request: always set
        # - In update request: never set
      {
        "key": "A String",
        "value": "A String",
      },
    ],
  }
list(projectId=*, historyId=*, executionId=*, pageSize=None, pageToken=None, x__xgafv=None)
Lists Environments for a given Execution.

The Environments are sorted by display name.

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 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)
  pageSize: integer, The maximum number of Environments to fetch.

Default value: 25. The server will use this default if the field is not set
or has a value of 0.
  pageToken: string, A continuation token to resume the query at the next item.
  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 EnvironmentService.ListEnvironments.
    "nextPageToken": "A String", # A continuation token to resume the query at the next item.
        #
        # Will only be set if there are more Environments to fetch.
    "projectId": "A String", # A Project id.
        #
        # Always set.
    "executionId": "A String", # A Execution id
        #
        # Always set.
    "historyId": "A String", # A History id.
        #
        # Always set.
    "environments": [ # Environments.
        #
        # Always set.
      { # An Environment represents the set of test runs (Steps) from the parent
          # Execution that are configured with the same set of dimensions (Model,
          # Version, Locale, and Orientation). Multiple such runs occur particularly
          # because of features like sharding (splitting up a test suite to run in
          # parallel across devices) and reruns (running a test multiple times to check
          # for different outcomes).
        "environmentId": "A String", # Output only. An Environment id.
        "displayName": "A String", # A short human-readable name to display in the UI.
            # Maximum of 100 characters.
            # For example: Nexus 5, API 27.
        "projectId": "A String", # Output only. A Project id.
        "creationTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment was created.
            # 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.
        },
        "executionId": "A String", # Output only. An Execution id.
        "historyId": "A String", # Output only. A History id.
        "environmentResult": { # Merged test result for environment. # Merged result of the environment.
            #
            # If the environment has only one step (no reruns or shards), then the merged
            # result is the same as the step result. If the environment has multiple shards
            # and/or reruns, then the results of shards and reruns that belong to the same
            # environment are merged into one environment result.
          "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
              #  of this environment.
              #
              #  Combining:
              #  When the test cases from a suite are run in different steps (sharding),
              #  the results are added back together in one overview. (e.g., if shard1 has
              #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
              #
              #  Rollup:
              #  When test cases from the same suite are run multiple times (flaky), the
              #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
              #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
              #  flaky_count = 1 and failure_count = 1).
            { # 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.
              "name": "A String", # The name of the test suite.
                  #
                  # - In create/response: always set
                  # - In update request: never
              "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.
              "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
              "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.
                "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.
                "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
              },
              "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
              "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
              },
              "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
              "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
            },
          ],
          "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
            "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
              "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.
              "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                  # infrastructure failures
              "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.
            },
            "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.
              "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
              "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
            },
            "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.
            },
            "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
              "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
              "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.
              "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
              "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.
            },
            "summary": "A String", # The simplest way to interpret a result.
                #
                # Required
          },
          "state": "A String", # State of the resource
        },
        "shardSummaries": [ # Output only. Summaries of shards.
            #
            # Only one shard will present unless sharding feature is enabled in
            # TestExecutionService.
          { # Result summary for a shard in an environment.
            "shardResult": { # Merged test result for environment. # Merged result of the shard.
                #
                # If the environment has only one step (no reruns or shards), then the merged
                # result is the same as the step result. If the environment has multiple shards
                # and/or reruns, then the results of shards and reruns that belong to the same
                # environment are merged into one environment result.
              "testSuiteOverviews": [ # The combined and rolled-up result of each test suite that was run as part
                  #  of this environment.
                  #
                  #  Combining:
                  #  When the test cases from a suite are run in different steps (sharding),
                  #  the results are added back together in one overview. (e.g., if shard1 has
                  #  2 failures and shard2 has 1 failure than the overview failure_count = 3).
                  #
                  #  Rollup:
                  #  When test cases from the same suite are run multiple times (flaky), the
                  #  results are combined (e.g., if testcase1.run1 fails, testcase1.run2
                  #  passes, and both testcase2.run1 and testcase2.run2 fail then the overview
                  #  flaky_count = 1 and failure_count = 1).
                { # 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.
                  "name": "A String", # The name of the test suite.
                      #
                      # - In create/response: always set
                      # - In update request: never
                  "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.
                  "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
                  "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.
                    "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.
                    "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
                  },
                  "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
                  "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
                  },
                  "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
                  "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
                },
              ],
              "outcome": { # Interprets a result so that humans and machines can act on it. # Outcome of the resource
                "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
                  "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.
                  "hasErrorLogs": True or False, # If results are being provided to the user in certain cases of
                      # infrastructure failures
                  "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.
                },
                "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.
                  "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
                  "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
                },
                "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.
                },
                "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
                  "otherNativeCrash": True or False, # If a native process (including any other than the app) crashed.
                  "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.
                  "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
                  "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.
                },
                "summary": "A String", # The simplest way to interpret a result.
                    #
                    # Required
              },
              "state": "A String", # State of the resource
            },
            "runs": [ # Summaries of the steps belonging to the shard.
                #
                # With flaky_test_attempts enabled from TestExecutionService, more than one
                # run (Step) can present. And the runs will be sorted by multistep_number.
              { # Lightweight summary of a step within this execution.
              },
            ],
          },
        ],
        "completionTime": { # A Timestamp represents a point in time independent of any time zone or local # Output only. The time when the Environment status was set to complete.
            #
            # This value will be set automatically when state transitions to
            # COMPLETE.
            # 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.
        },
        "resultsStorage": { # The storage for test results. # The location where output files are stored in the user bucket.
          "xunitXmlFile": { # A reference to a file. # The path to the Xunit XML 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
          },
          "resultsStoragePath": { # A reference to a file. # The root directory for test results.
            "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
          },
        },
        "dimensionValue": [ # Dimension values describing the environment. Dimension values always
            # consist of "Model", "Version", "Locale", and "Orientation".
            #
            # - In response: always set
            # - In create request: always set
            # - In update request: never set
          {
            "key": "A String",
            "value": "A String",
          },
        ],
      },
    ],
  }
list_next(previous_request=*, previous_response=*)
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.