Regen all docs. (#700)
* Stop recursing if discovery == {}
* Generate docs with 'make docs'.
diff --git a/docs/dyn/testing_v1.projects.testMatrices.html b/docs/dyn/testing_v1.projects.testMatrices.html
new file mode 100644
index 0000000..247d9a3
--- /dev/null
+++ b/docs/dyn/testing_v1.projects.testMatrices.html
@@ -0,0 +1,2298 @@
+<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="testing_v1.html">Cloud Testing API</a> . <a href="testing_v1.projects.html">projects</a> . <a href="testing_v1.projects.testMatrices.html">testMatrices</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+ <code><a href="#cancel">cancel(projectId, testMatrixId, x__xgafv=None)</a></code></p>
+<p class="firstline">Cancels unfinished test executions in a test matrix.</p>
+<p class="toc_element">
+ <code><a href="#create">create(projectId, body, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and runs a matrix of tests according to the given specifications.</p>
+<p class="toc_element">
+ <code><a href="#get">get(projectId, testMatrixId, x__xgafv=None)</a></code></p>
+<p class="firstline">Checks the status of a test matrix.</p>
+<h3>Method Details</h3>
+<div class="method">
+ <code class="details" id="cancel">cancel(projectId, testMatrixId, x__xgafv=None)</code>
+ <pre>Cancels unfinished test executions in a test matrix.
+This call returns immediately and cancellation proceeds asychronously.
+If the matrix is already final, this operation will have no effect.
+
+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 Test Matrix does not exist
+
+Args:
+ projectId: string, Cloud project that owns the test. (required)
+ testMatrixId: string, Test matrix that will be canceled. (required)
+ x__xgafv: string, V1 error format.
+ Allowed values
+ 1 - v1 error format
+ 2 - v2 error format
+
+Returns:
+ An object of the form:
+
+ { # Response containing the current state of the specified test matrix.
+ "testState": "A String", # The current rolled-up state of the test matrix.
+ # If this state is already final, then the cancelation request will
+ # have no effect.
+ }</pre>
+</div>
+
+<div class="method">
+ <code class="details" id="create">create(projectId, body, requestId=None, x__xgafv=None)</code>
+ <pre>Creates and runs a matrix of tests according to the given specifications.
+Unsupported environments will be returned in the state UNSUPPORTED.
+Matrices are limited to at most 200 supported executions.
+
+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 or if the matrix expands
+ to more than 200 supported executions
+
+Args:
+ projectId: string, The GCE project under which this job will run. (required)
+ body: object, The request body. (required)
+ The object takes the form of:
+
+{ # TestMatrix captures all details about a test. It contains the environment
+ # configuration, test specification, test executions and overall state and
+ # outcome.
+ "clientInfo": { # Information about the client which invoked the test. # Information about the client which invoked the test.
+ "clientInfoDetails": [ # The list of detailed information about client.
+ { # Key-value pair of detailed information about the client which invoked the
+ # test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}.
+ "key": "A String", # Required. The key of detailed client information.
+ "value": "A String", # Required. The value of detailed client information.
+ },
+ ],
+ "name": "A String", # Required. Client name, such as gcloud.
+ },
+ "projectId": "A String", # The cloud project that owns the test matrix.
+ "resultStorage": { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
+ "toolResultsHistory": { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
+ # results are written to.
+ #
+ # If not provided, the service will choose an appropriate value.
+ "projectId": "A String", # Required. The cloud project that owns the tool results history.
+ "historyId": "A String", # Required. A tool results history ID.
+ },
+ "googleCloudStorage": { # A storage location within Google cloud storage (GCS). # Required.
+ "gcsPath": "A String", # Required. The path to a directory in GCS that will
+ # eventually contain the results for this test.
+ # The requesting user must have write access on the bucket in the supplied
+ # path.
+ },
+ "toolResultsExecution": { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
+ #
+ # This has the results of a TestMatrix.
+ "projectId": "A String", # Output only. The cloud project that owns the tool results execution.
+ "executionId": "A String", # Output only. A tool results execution ID.
+ "historyId": "A String", # Output only. A tool results history ID.
+ },
+ "resultsUrl": "A String", # Output only. URL to the results in the Firebase Web Console.
+ },
+ "flakyTestAttempts": 42, # The number of times a TestExecution should be re-attempted if one or more
+ # of its test cases fail for any reason.
+ # The maximum number of reruns allowed is 10.
+ #
+ # Default is 0, which implies no reruns.
+ "state": "A String", # Output only. Indicates the current progress of the test matrix.
+ "testExecutions": [ # Output only. The list of test executions that the service creates for
+ # this matrix.
+ { # A single test executed in a single environment.
+ "timestamp": "A String", # Output only. The time this test execution was initially created.
+ "matrixId": "A String", # Output only. Id of the containing TestMatrix.
+ "testSpecification": { # A description of how to run the test. # Output only. How to run the test.
+ "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ },
+ "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
+ # Xcode supports the option to "build for testing", which generates an
+ # .xctestrun file that contains a test specification (arguments, test methods,
+ # etc). This test type accepts a zip file containing the .xctestrun file and
+ # the corresponding contents of the Build/Products directory that contains all
+ # the binaries needed to run the tests.
+ "xcodeVersion": "A String", # The Xcode version that should be used for the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ # Defaults to the latest Xcode version Firebase Test Lab supports.
+ "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
+ # tests zip. Because the .xctestrun file contains environment variables along
+ # with test methods to run and/or ignore, this can be useful for sharding
+ # tests. Default is taken from the tests zip.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
+ # DerivedData/Build/Products directory.
+ # The .xctestrun file in this zip is ignored if the xctestrun field is
+ # specified.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appBundleId": "A String", # Output only. The bundle id for the application under test.
+ },
+ "testTimeout": "A String", # Max time a test execution is allowed to run before it is
+ # automatically cancelled.
+ # The default value is 5 min.
+ "testSetup": { # A description of how to set up the Android device prior to running the test. # Test setup requirements for Android e.g. files to install, bootstrap
+ # scripts.
+ "account": { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
+ "googleAuto": { # Enables automatic Google account login. # An automatic google login account.
+ # If set, the service automatically generates a Google test account and adds
+ # it to the device, before executing the test. Note that test accounts might be
+ # reused.
+ # Many applications show their full set of functionalities when an account is
+ # present on the device. Logging into the device with these generated accounts
+ # allows testing more functionalities.
+ },
+ },
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test;
+ # they must be absolute paths under /sdcard or /data/local/tmp.
+ # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
+ #
+ # Note: The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device.
+ "A String",
+ ],
+ "filesToPush": [ # List of files to push to the device before starting the test.
+ { # A single device file description.
+ "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
+ "content": { # A reference to a file, used for user inputs. # Required. The source file.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute,
+ # whitelisted path. If the file exists, it will be replaced.
+ # The following device-side directories and any of their subdirectories are
+ # whitelisted:
+ # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
+ # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
+ # <p>Specifying a path outside of these directory trees is invalid.
+ #
+ # <p> The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device and copy the file there.
+ #
+ # <p> It is strongly advised to use the <a href=
+ # "http://developer.android.com/reference/android/os/Environment.html">
+ # Environment API</a> in app and test code to access files on the device in a
+ # portable way.
+ },
+ "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
+ "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by
+ # Android
+ # e.g. [main|patch].0300110.com.example.android.obb
+ # which will be installed into
+ # \<shared-storage\>/Android/obb/\<package-name\>/
+ # on the device.
+ "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ },
+ ],
+ "additionalApks": [ # APKs to install in addition to those being directly tested.
+ # Currently capped at 100.
+ { # An Android package file to install.
+ "packageName": "A String", # The java package for the APK to be installed.
+ # Value is determined by examining the application's manifest.
+ "location": { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ ],
+ "environmentVariables": [ # Environment variables to set for the test (only applicable for
+ # instrumentation tests).
+ { # A key-value pair passed as an environment variable to the test.
+ "value": "A String", # Value for the environment variable.
+ "key": "A String", # Key for the environment variable.
+ },
+ ],
+ },
+ "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
+ "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
+ # The intent \<intent-name\> will be implicitly added, since Games is the only
+ # user of this api, for the time being.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "scenarios": [ # The list of scenarios that should be run during the test.
+ # The default is all test loops, derived from the application's
+ # manifest.
+ 42,
+ ],
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default is determined by examining the application's manifest.
+ "scenarioLabels": [ # The list of scenario labels that should be run during the test.
+ # The scenario labels should map to labels defined in the application's
+ # manifest. For example, player_experience and
+ # com.google.test.loops.player_experience add all of the loops labeled in the
+ # manifest with the com.google.test.loops.player_experience name to the
+ # execution.
+ # Scenarios can also be specified in the scenarios field.
+ "A String",
+ ],
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency.
+ "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
+ # or physical Android Device, finding culprits and crashes as it goes.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "roboDirectives": [ # A set of directives Robo should apply during the crawl.
+ # This allows users to customize the crawl. For example, the username and
+ # password for a test account can be provided.
+ { # Directs Robo to interact with a specific UI element if it is encountered
+ # during the crawl. Currently, Robo can perform text entry or element click.
+ "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be
+ # treated as a CLICK on the element matching the resource_name.
+ "resourceName": "A String", # Required. The android resource name of the target UI element.
+ # For example,
+ # in Java: R.string.foo
+ # in xml: @string/foo
+ # Only the "foo" part is needed.
+ # Reference doc:
+ # https://developer.android.com/guide/topics/resources/accessing-resources.html
+ "actionType": "A String", # Required. The type of action that Robo should perform on the specified
+ # element.
+ },
+ ],
+ "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
+ # for the crawl.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
+ # 2 to make Robo explore the app beyond the first activity.
+ # Default is 50.
+ "startingIntents": [ # The intents used to launch the app for the crawl.
+ # If none are provided, then the main launcher activity is launched.
+ # If some are provided, then only those provided are launched (the main
+ # launcher activity must be provided explicitly).
+ { # Message for specifying the start activities to crawl.
+ "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
+ "action": "A String", # Action name.
+ # Required for START_ACTIVITY.
+ "uri": "A String", # URI for the action.
+ "categories": [ # Intent categories to set on the intent.
+ "A String",
+ ],
+ },
+ "timeout": "A String", # Timeout in seconds for each intent.
+ "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
+ },
+ },
+ ],
+ "maxSteps": 42, # The max number of steps Robo can execute.
+ # Default is no limit.
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "appInitialActivity": "A String", # The initial activity that should be used to start the app.
+ },
+ "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
+ # independently of its normal lifecycle.
+ # Android instrumentation tests run an application APK and test APK inside the
+ # same process on a virtual or physical AndroidDevice. They also specify
+ # a test runner class, such as com.google.GoogleTestRunner, which can vary
+ # on the specific instrumentation framework chosen.
+ #
+ # See <http://developer.android.com/tools/testing/testing_android.html> for
+ # more information on types of Android tests.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testRunnerClass": "A String", # The InstrumentationTestRunner class.
+ # The default value is determined by examining the application's manifest.
+ "testPackageId": "A String", # The java package for the test to be executed.
+ # The default value is determined by examining the application's manifest.
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "orchestratorOption": "A String", # The option of whether running each test within its own invocation of
+ # instrumentation with Android Test Orchestrator or not.
+ # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
+ # higher! **
+ # Orchestrator offers the following benefits:
+ # - No shared state
+ # - Crashes are isolated
+ # - Logs are scoped per test
+ #
+ # See
+ # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+ # for more information about Android Test Orchestrator.
+ #
+ # If not set, the test will be run without the orchestrator.
+ "testTargets": [ # Each target must be fully qualified with the package name or class name,
+ # in one of these formats:
+ # - "package package_name"
+ # - "class package_name.class_name"
+ # - "class package_name.class_name#method_name"
+ #
+ # If empty, all targets in the module will be run.
+ "A String",
+ ],
+ },
+ },
+ "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
+ "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
+ # For example: "Provisioning a device", "Starting Test".
+ #
+ # During the course of execution new data may be appended
+ # to the end of progress_messages.
+ "A String",
+ ],
+ "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
+ # human-readable details about the error.
+ },
+ "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
+ "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosModelId": "A String", # Required. The id of the iOS device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidModelId": "A String", # Required. The id of the Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ },
+ "state": "A String", # Output only. Indicates the current progress of the test execution
+ # (e.g., FINISHED).
+ "projectId": "A String", # Output only. The cloud project that owns the test execution.
+ "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
+ #
+ # This has the results of a TestExecution.
+ "projectId": "A String", # Output only. The cloud project that owns the tool results step.
+ "executionId": "A String", # Output only. A tool results execution ID.
+ "stepId": "A String", # Output only. A tool results step ID.
+ "historyId": "A String", # Output only. A tool results history ID.
+ },
+ "id": "A String", # Output only. Unique id set by the service.
+ },
+ ],
+ "testSpecification": { # A description of how to run the test. # Required. How to run the test.
+ "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ },
+ "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
+ # Xcode supports the option to "build for testing", which generates an
+ # .xctestrun file that contains a test specification (arguments, test methods,
+ # etc). This test type accepts a zip file containing the .xctestrun file and
+ # the corresponding contents of the Build/Products directory that contains all
+ # the binaries needed to run the tests.
+ "xcodeVersion": "A String", # The Xcode version that should be used for the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ # Defaults to the latest Xcode version Firebase Test Lab supports.
+ "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
+ # tests zip. Because the .xctestrun file contains environment variables along
+ # with test methods to run and/or ignore, this can be useful for sharding
+ # tests. Default is taken from the tests zip.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
+ # DerivedData/Build/Products directory.
+ # The .xctestrun file in this zip is ignored if the xctestrun field is
+ # specified.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appBundleId": "A String", # Output only. The bundle id for the application under test.
+ },
+ "testTimeout": "A String", # Max time a test execution is allowed to run before it is
+ # automatically cancelled.
+ # The default value is 5 min.
+ "testSetup": { # A description of how to set up the Android device prior to running the test. # Test setup requirements for Android e.g. files to install, bootstrap
+ # scripts.
+ "account": { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
+ "googleAuto": { # Enables automatic Google account login. # An automatic google login account.
+ # If set, the service automatically generates a Google test account and adds
+ # it to the device, before executing the test. Note that test accounts might be
+ # reused.
+ # Many applications show their full set of functionalities when an account is
+ # present on the device. Logging into the device with these generated accounts
+ # allows testing more functionalities.
+ },
+ },
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test;
+ # they must be absolute paths under /sdcard or /data/local/tmp.
+ # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
+ #
+ # Note: The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device.
+ "A String",
+ ],
+ "filesToPush": [ # List of files to push to the device before starting the test.
+ { # A single device file description.
+ "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
+ "content": { # A reference to a file, used for user inputs. # Required. The source file.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute,
+ # whitelisted path. If the file exists, it will be replaced.
+ # The following device-side directories and any of their subdirectories are
+ # whitelisted:
+ # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
+ # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
+ # <p>Specifying a path outside of these directory trees is invalid.
+ #
+ # <p> The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device and copy the file there.
+ #
+ # <p> It is strongly advised to use the <a href=
+ # "http://developer.android.com/reference/android/os/Environment.html">
+ # Environment API</a> in app and test code to access files on the device in a
+ # portable way.
+ },
+ "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
+ "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by
+ # Android
+ # e.g. [main|patch].0300110.com.example.android.obb
+ # which will be installed into
+ # \<shared-storage\>/Android/obb/\<package-name\>/
+ # on the device.
+ "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ },
+ ],
+ "additionalApks": [ # APKs to install in addition to those being directly tested.
+ # Currently capped at 100.
+ { # An Android package file to install.
+ "packageName": "A String", # The java package for the APK to be installed.
+ # Value is determined by examining the application's manifest.
+ "location": { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ ],
+ "environmentVariables": [ # Environment variables to set for the test (only applicable for
+ # instrumentation tests).
+ { # A key-value pair passed as an environment variable to the test.
+ "value": "A String", # Value for the environment variable.
+ "key": "A String", # Key for the environment variable.
+ },
+ ],
+ },
+ "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
+ "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
+ # The intent \<intent-name\> will be implicitly added, since Games is the only
+ # user of this api, for the time being.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "scenarios": [ # The list of scenarios that should be run during the test.
+ # The default is all test loops, derived from the application's
+ # manifest.
+ 42,
+ ],
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default is determined by examining the application's manifest.
+ "scenarioLabels": [ # The list of scenario labels that should be run during the test.
+ # The scenario labels should map to labels defined in the application's
+ # manifest. For example, player_experience and
+ # com.google.test.loops.player_experience add all of the loops labeled in the
+ # manifest with the com.google.test.loops.player_experience name to the
+ # execution.
+ # Scenarios can also be specified in the scenarios field.
+ "A String",
+ ],
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency.
+ "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
+ # or physical Android Device, finding culprits and crashes as it goes.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "roboDirectives": [ # A set of directives Robo should apply during the crawl.
+ # This allows users to customize the crawl. For example, the username and
+ # password for a test account can be provided.
+ { # Directs Robo to interact with a specific UI element if it is encountered
+ # during the crawl. Currently, Robo can perform text entry or element click.
+ "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be
+ # treated as a CLICK on the element matching the resource_name.
+ "resourceName": "A String", # Required. The android resource name of the target UI element.
+ # For example,
+ # in Java: R.string.foo
+ # in xml: @string/foo
+ # Only the "foo" part is needed.
+ # Reference doc:
+ # https://developer.android.com/guide/topics/resources/accessing-resources.html
+ "actionType": "A String", # Required. The type of action that Robo should perform on the specified
+ # element.
+ },
+ ],
+ "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
+ # for the crawl.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
+ # 2 to make Robo explore the app beyond the first activity.
+ # Default is 50.
+ "startingIntents": [ # The intents used to launch the app for the crawl.
+ # If none are provided, then the main launcher activity is launched.
+ # If some are provided, then only those provided are launched (the main
+ # launcher activity must be provided explicitly).
+ { # Message for specifying the start activities to crawl.
+ "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
+ "action": "A String", # Action name.
+ # Required for START_ACTIVITY.
+ "uri": "A String", # URI for the action.
+ "categories": [ # Intent categories to set on the intent.
+ "A String",
+ ],
+ },
+ "timeout": "A String", # Timeout in seconds for each intent.
+ "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
+ },
+ },
+ ],
+ "maxSteps": 42, # The max number of steps Robo can execute.
+ # Default is no limit.
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "appInitialActivity": "A String", # The initial activity that should be used to start the app.
+ },
+ "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
+ # independently of its normal lifecycle.
+ # Android instrumentation tests run an application APK and test APK inside the
+ # same process on a virtual or physical AndroidDevice. They also specify
+ # a test runner class, such as com.google.GoogleTestRunner, which can vary
+ # on the specific instrumentation framework chosen.
+ #
+ # See <http://developer.android.com/tools/testing/testing_android.html> for
+ # more information on types of Android tests.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testRunnerClass": "A String", # The InstrumentationTestRunner class.
+ # The default value is determined by examining the application's manifest.
+ "testPackageId": "A String", # The java package for the test to be executed.
+ # The default value is determined by examining the application's manifest.
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "orchestratorOption": "A String", # The option of whether running each test within its own invocation of
+ # instrumentation with Android Test Orchestrator or not.
+ # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
+ # higher! **
+ # Orchestrator offers the following benefits:
+ # - No shared state
+ # - Crashes are isolated
+ # - Logs are scoped per test
+ #
+ # See
+ # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+ # for more information about Android Test Orchestrator.
+ #
+ # If not set, the test will be run without the orchestrator.
+ "testTargets": [ # Each target must be fully qualified with the package name or class name,
+ # in one of these formats:
+ # - "package package_name"
+ # - "class package_name.class_name"
+ # - "class package_name.class_name#method_name"
+ #
+ # If empty, all targets in the module will be run.
+ "A String",
+ ],
+ },
+ },
+ "testMatrixId": "A String", # Output only. Unique id set by the service.
+ "timestamp": "A String", # Output only. The time this test matrix was initially created.
+ "invalidMatrixDetails": "A String", # Output only. Describes why the matrix is considered invalid.
+ # Only useful for matrices in the INVALID state.
+ "environmentMatrix": { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
+ "androidDeviceList": { # A list of Android device configurations in which the test is to be executed. # A list of Android devices; the test will be run only on the specified
+ # devices.
+ "androidDevices": [ # Required. A list of Android devices.
+ { # A single Android device.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidModelId": "A String", # Required. The id of the Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ ],
+ },
+ "androidMatrix": { # A set of Android device configuration permutations is defined by the # A matrix of Android devices.
+ # the cross-product of the given axes. Internally, the given AndroidMatrix
+ # will be expanded into a set of AndroidDevices.
+ #
+ # Only supported permutations will be instantiated. Invalid permutations
+ # (e.g., incompatible models/versions) are ignored.
+ "locales": [ # Required. The set of locales the test device will enable for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "androidModelIds": [ # Required. The ids of the set of Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "androidVersionIds": [ # Required. The ids of the set of Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "orientations": [ # Required. The set of orientations to test with.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ },
+ "iosDeviceList": { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
+ "iosDevices": [ # Required. A list of iOS devices.
+ { # A single iOS device.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosModelId": "A String", # Required. The id of the iOS device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ ],
+ },
+ },
+ "outcomeSummary": "A String", # Output Only. The overall outcome of the test.
+ # Only set when the test matrix state is FINISHED.
+ }
+
+ requestId: string, A string id used to detect duplicated requests.
+Ids are automatically scoped to a project, so
+users should ensure the ID is unique per-project.
+A UUID is recommended.
+
+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:
+
+ { # TestMatrix captures all details about a test. It contains the environment
+ # configuration, test specification, test executions and overall state and
+ # outcome.
+ "clientInfo": { # Information about the client which invoked the test. # Information about the client which invoked the test.
+ "clientInfoDetails": [ # The list of detailed information about client.
+ { # Key-value pair of detailed information about the client which invoked the
+ # test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}.
+ "key": "A String", # Required. The key of detailed client information.
+ "value": "A String", # Required. The value of detailed client information.
+ },
+ ],
+ "name": "A String", # Required. Client name, such as gcloud.
+ },
+ "projectId": "A String", # The cloud project that owns the test matrix.
+ "resultStorage": { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
+ "toolResultsHistory": { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
+ # results are written to.
+ #
+ # If not provided, the service will choose an appropriate value.
+ "projectId": "A String", # Required. The cloud project that owns the tool results history.
+ "historyId": "A String", # Required. A tool results history ID.
+ },
+ "googleCloudStorage": { # A storage location within Google cloud storage (GCS). # Required.
+ "gcsPath": "A String", # Required. The path to a directory in GCS that will
+ # eventually contain the results for this test.
+ # The requesting user must have write access on the bucket in the supplied
+ # path.
+ },
+ "toolResultsExecution": { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
+ #
+ # This has the results of a TestMatrix.
+ "projectId": "A String", # Output only. The cloud project that owns the tool results execution.
+ "executionId": "A String", # Output only. A tool results execution ID.
+ "historyId": "A String", # Output only. A tool results history ID.
+ },
+ "resultsUrl": "A String", # Output only. URL to the results in the Firebase Web Console.
+ },
+ "flakyTestAttempts": 42, # The number of times a TestExecution should be re-attempted if one or more
+ # of its test cases fail for any reason.
+ # The maximum number of reruns allowed is 10.
+ #
+ # Default is 0, which implies no reruns.
+ "state": "A String", # Output only. Indicates the current progress of the test matrix.
+ "testExecutions": [ # Output only. The list of test executions that the service creates for
+ # this matrix.
+ { # A single test executed in a single environment.
+ "timestamp": "A String", # Output only. The time this test execution was initially created.
+ "matrixId": "A String", # Output only. Id of the containing TestMatrix.
+ "testSpecification": { # A description of how to run the test. # Output only. How to run the test.
+ "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ },
+ "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
+ # Xcode supports the option to "build for testing", which generates an
+ # .xctestrun file that contains a test specification (arguments, test methods,
+ # etc). This test type accepts a zip file containing the .xctestrun file and
+ # the corresponding contents of the Build/Products directory that contains all
+ # the binaries needed to run the tests.
+ "xcodeVersion": "A String", # The Xcode version that should be used for the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ # Defaults to the latest Xcode version Firebase Test Lab supports.
+ "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
+ # tests zip. Because the .xctestrun file contains environment variables along
+ # with test methods to run and/or ignore, this can be useful for sharding
+ # tests. Default is taken from the tests zip.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
+ # DerivedData/Build/Products directory.
+ # The .xctestrun file in this zip is ignored if the xctestrun field is
+ # specified.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appBundleId": "A String", # Output only. The bundle id for the application under test.
+ },
+ "testTimeout": "A String", # Max time a test execution is allowed to run before it is
+ # automatically cancelled.
+ # The default value is 5 min.
+ "testSetup": { # A description of how to set up the Android device prior to running the test. # Test setup requirements for Android e.g. files to install, bootstrap
+ # scripts.
+ "account": { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
+ "googleAuto": { # Enables automatic Google account login. # An automatic google login account.
+ # If set, the service automatically generates a Google test account and adds
+ # it to the device, before executing the test. Note that test accounts might be
+ # reused.
+ # Many applications show their full set of functionalities when an account is
+ # present on the device. Logging into the device with these generated accounts
+ # allows testing more functionalities.
+ },
+ },
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test;
+ # they must be absolute paths under /sdcard or /data/local/tmp.
+ # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
+ #
+ # Note: The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device.
+ "A String",
+ ],
+ "filesToPush": [ # List of files to push to the device before starting the test.
+ { # A single device file description.
+ "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
+ "content": { # A reference to a file, used for user inputs. # Required. The source file.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute,
+ # whitelisted path. If the file exists, it will be replaced.
+ # The following device-side directories and any of their subdirectories are
+ # whitelisted:
+ # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
+ # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
+ # <p>Specifying a path outside of these directory trees is invalid.
+ #
+ # <p> The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device and copy the file there.
+ #
+ # <p> It is strongly advised to use the <a href=
+ # "http://developer.android.com/reference/android/os/Environment.html">
+ # Environment API</a> in app and test code to access files on the device in a
+ # portable way.
+ },
+ "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
+ "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by
+ # Android
+ # e.g. [main|patch].0300110.com.example.android.obb
+ # which will be installed into
+ # \<shared-storage\>/Android/obb/\<package-name\>/
+ # on the device.
+ "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ },
+ ],
+ "additionalApks": [ # APKs to install in addition to those being directly tested.
+ # Currently capped at 100.
+ { # An Android package file to install.
+ "packageName": "A String", # The java package for the APK to be installed.
+ # Value is determined by examining the application's manifest.
+ "location": { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ ],
+ "environmentVariables": [ # Environment variables to set for the test (only applicable for
+ # instrumentation tests).
+ { # A key-value pair passed as an environment variable to the test.
+ "value": "A String", # Value for the environment variable.
+ "key": "A String", # Key for the environment variable.
+ },
+ ],
+ },
+ "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
+ "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
+ # The intent \<intent-name\> will be implicitly added, since Games is the only
+ # user of this api, for the time being.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "scenarios": [ # The list of scenarios that should be run during the test.
+ # The default is all test loops, derived from the application's
+ # manifest.
+ 42,
+ ],
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default is determined by examining the application's manifest.
+ "scenarioLabels": [ # The list of scenario labels that should be run during the test.
+ # The scenario labels should map to labels defined in the application's
+ # manifest. For example, player_experience and
+ # com.google.test.loops.player_experience add all of the loops labeled in the
+ # manifest with the com.google.test.loops.player_experience name to the
+ # execution.
+ # Scenarios can also be specified in the scenarios field.
+ "A String",
+ ],
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency.
+ "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
+ # or physical Android Device, finding culprits and crashes as it goes.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "roboDirectives": [ # A set of directives Robo should apply during the crawl.
+ # This allows users to customize the crawl. For example, the username and
+ # password for a test account can be provided.
+ { # Directs Robo to interact with a specific UI element if it is encountered
+ # during the crawl. Currently, Robo can perform text entry or element click.
+ "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be
+ # treated as a CLICK on the element matching the resource_name.
+ "resourceName": "A String", # Required. The android resource name of the target UI element.
+ # For example,
+ # in Java: R.string.foo
+ # in xml: @string/foo
+ # Only the "foo" part is needed.
+ # Reference doc:
+ # https://developer.android.com/guide/topics/resources/accessing-resources.html
+ "actionType": "A String", # Required. The type of action that Robo should perform on the specified
+ # element.
+ },
+ ],
+ "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
+ # for the crawl.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
+ # 2 to make Robo explore the app beyond the first activity.
+ # Default is 50.
+ "startingIntents": [ # The intents used to launch the app for the crawl.
+ # If none are provided, then the main launcher activity is launched.
+ # If some are provided, then only those provided are launched (the main
+ # launcher activity must be provided explicitly).
+ { # Message for specifying the start activities to crawl.
+ "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
+ "action": "A String", # Action name.
+ # Required for START_ACTIVITY.
+ "uri": "A String", # URI for the action.
+ "categories": [ # Intent categories to set on the intent.
+ "A String",
+ ],
+ },
+ "timeout": "A String", # Timeout in seconds for each intent.
+ "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
+ },
+ },
+ ],
+ "maxSteps": 42, # The max number of steps Robo can execute.
+ # Default is no limit.
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "appInitialActivity": "A String", # The initial activity that should be used to start the app.
+ },
+ "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
+ # independently of its normal lifecycle.
+ # Android instrumentation tests run an application APK and test APK inside the
+ # same process on a virtual or physical AndroidDevice. They also specify
+ # a test runner class, such as com.google.GoogleTestRunner, which can vary
+ # on the specific instrumentation framework chosen.
+ #
+ # See <http://developer.android.com/tools/testing/testing_android.html> for
+ # more information on types of Android tests.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testRunnerClass": "A String", # The InstrumentationTestRunner class.
+ # The default value is determined by examining the application's manifest.
+ "testPackageId": "A String", # The java package for the test to be executed.
+ # The default value is determined by examining the application's manifest.
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "orchestratorOption": "A String", # The option of whether running each test within its own invocation of
+ # instrumentation with Android Test Orchestrator or not.
+ # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
+ # higher! **
+ # Orchestrator offers the following benefits:
+ # - No shared state
+ # - Crashes are isolated
+ # - Logs are scoped per test
+ #
+ # See
+ # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+ # for more information about Android Test Orchestrator.
+ #
+ # If not set, the test will be run without the orchestrator.
+ "testTargets": [ # Each target must be fully qualified with the package name or class name,
+ # in one of these formats:
+ # - "package package_name"
+ # - "class package_name.class_name"
+ # - "class package_name.class_name#method_name"
+ #
+ # If empty, all targets in the module will be run.
+ "A String",
+ ],
+ },
+ },
+ "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
+ "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
+ # For example: "Provisioning a device", "Starting Test".
+ #
+ # During the course of execution new data may be appended
+ # to the end of progress_messages.
+ "A String",
+ ],
+ "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
+ # human-readable details about the error.
+ },
+ "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
+ "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosModelId": "A String", # Required. The id of the iOS device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidModelId": "A String", # Required. The id of the Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ },
+ "state": "A String", # Output only. Indicates the current progress of the test execution
+ # (e.g., FINISHED).
+ "projectId": "A String", # Output only. The cloud project that owns the test execution.
+ "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
+ #
+ # This has the results of a TestExecution.
+ "projectId": "A String", # Output only. The cloud project that owns the tool results step.
+ "executionId": "A String", # Output only. A tool results execution ID.
+ "stepId": "A String", # Output only. A tool results step ID.
+ "historyId": "A String", # Output only. A tool results history ID.
+ },
+ "id": "A String", # Output only. Unique id set by the service.
+ },
+ ],
+ "testSpecification": { # A description of how to run the test. # Required. How to run the test.
+ "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ },
+ "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
+ # Xcode supports the option to "build for testing", which generates an
+ # .xctestrun file that contains a test specification (arguments, test methods,
+ # etc). This test type accepts a zip file containing the .xctestrun file and
+ # the corresponding contents of the Build/Products directory that contains all
+ # the binaries needed to run the tests.
+ "xcodeVersion": "A String", # The Xcode version that should be used for the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ # Defaults to the latest Xcode version Firebase Test Lab supports.
+ "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
+ # tests zip. Because the .xctestrun file contains environment variables along
+ # with test methods to run and/or ignore, this can be useful for sharding
+ # tests. Default is taken from the tests zip.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
+ # DerivedData/Build/Products directory.
+ # The .xctestrun file in this zip is ignored if the xctestrun field is
+ # specified.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appBundleId": "A String", # Output only. The bundle id for the application under test.
+ },
+ "testTimeout": "A String", # Max time a test execution is allowed to run before it is
+ # automatically cancelled.
+ # The default value is 5 min.
+ "testSetup": { # A description of how to set up the Android device prior to running the test. # Test setup requirements for Android e.g. files to install, bootstrap
+ # scripts.
+ "account": { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
+ "googleAuto": { # Enables automatic Google account login. # An automatic google login account.
+ # If set, the service automatically generates a Google test account and adds
+ # it to the device, before executing the test. Note that test accounts might be
+ # reused.
+ # Many applications show their full set of functionalities when an account is
+ # present on the device. Logging into the device with these generated accounts
+ # allows testing more functionalities.
+ },
+ },
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test;
+ # they must be absolute paths under /sdcard or /data/local/tmp.
+ # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
+ #
+ # Note: The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device.
+ "A String",
+ ],
+ "filesToPush": [ # List of files to push to the device before starting the test.
+ { # A single device file description.
+ "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
+ "content": { # A reference to a file, used for user inputs. # Required. The source file.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute,
+ # whitelisted path. If the file exists, it will be replaced.
+ # The following device-side directories and any of their subdirectories are
+ # whitelisted:
+ # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
+ # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
+ # <p>Specifying a path outside of these directory trees is invalid.
+ #
+ # <p> The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device and copy the file there.
+ #
+ # <p> It is strongly advised to use the <a href=
+ # "http://developer.android.com/reference/android/os/Environment.html">
+ # Environment API</a> in app and test code to access files on the device in a
+ # portable way.
+ },
+ "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
+ "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by
+ # Android
+ # e.g. [main|patch].0300110.com.example.android.obb
+ # which will be installed into
+ # \<shared-storage\>/Android/obb/\<package-name\>/
+ # on the device.
+ "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ },
+ ],
+ "additionalApks": [ # APKs to install in addition to those being directly tested.
+ # Currently capped at 100.
+ { # An Android package file to install.
+ "packageName": "A String", # The java package for the APK to be installed.
+ # Value is determined by examining the application's manifest.
+ "location": { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ ],
+ "environmentVariables": [ # Environment variables to set for the test (only applicable for
+ # instrumentation tests).
+ { # A key-value pair passed as an environment variable to the test.
+ "value": "A String", # Value for the environment variable.
+ "key": "A String", # Key for the environment variable.
+ },
+ ],
+ },
+ "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
+ "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
+ # The intent \<intent-name\> will be implicitly added, since Games is the only
+ # user of this api, for the time being.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "scenarios": [ # The list of scenarios that should be run during the test.
+ # The default is all test loops, derived from the application's
+ # manifest.
+ 42,
+ ],
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default is determined by examining the application's manifest.
+ "scenarioLabels": [ # The list of scenario labels that should be run during the test.
+ # The scenario labels should map to labels defined in the application's
+ # manifest. For example, player_experience and
+ # com.google.test.loops.player_experience add all of the loops labeled in the
+ # manifest with the com.google.test.loops.player_experience name to the
+ # execution.
+ # Scenarios can also be specified in the scenarios field.
+ "A String",
+ ],
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency.
+ "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
+ # or physical Android Device, finding culprits and crashes as it goes.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "roboDirectives": [ # A set of directives Robo should apply during the crawl.
+ # This allows users to customize the crawl. For example, the username and
+ # password for a test account can be provided.
+ { # Directs Robo to interact with a specific UI element if it is encountered
+ # during the crawl. Currently, Robo can perform text entry or element click.
+ "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be
+ # treated as a CLICK on the element matching the resource_name.
+ "resourceName": "A String", # Required. The android resource name of the target UI element.
+ # For example,
+ # in Java: R.string.foo
+ # in xml: @string/foo
+ # Only the "foo" part is needed.
+ # Reference doc:
+ # https://developer.android.com/guide/topics/resources/accessing-resources.html
+ "actionType": "A String", # Required. The type of action that Robo should perform on the specified
+ # element.
+ },
+ ],
+ "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
+ # for the crawl.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
+ # 2 to make Robo explore the app beyond the first activity.
+ # Default is 50.
+ "startingIntents": [ # The intents used to launch the app for the crawl.
+ # If none are provided, then the main launcher activity is launched.
+ # If some are provided, then only those provided are launched (the main
+ # launcher activity must be provided explicitly).
+ { # Message for specifying the start activities to crawl.
+ "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
+ "action": "A String", # Action name.
+ # Required for START_ACTIVITY.
+ "uri": "A String", # URI for the action.
+ "categories": [ # Intent categories to set on the intent.
+ "A String",
+ ],
+ },
+ "timeout": "A String", # Timeout in seconds for each intent.
+ "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
+ },
+ },
+ ],
+ "maxSteps": 42, # The max number of steps Robo can execute.
+ # Default is no limit.
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "appInitialActivity": "A String", # The initial activity that should be used to start the app.
+ },
+ "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
+ # independently of its normal lifecycle.
+ # Android instrumentation tests run an application APK and test APK inside the
+ # same process on a virtual or physical AndroidDevice. They also specify
+ # a test runner class, such as com.google.GoogleTestRunner, which can vary
+ # on the specific instrumentation framework chosen.
+ #
+ # See <http://developer.android.com/tools/testing/testing_android.html> for
+ # more information on types of Android tests.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testRunnerClass": "A String", # The InstrumentationTestRunner class.
+ # The default value is determined by examining the application's manifest.
+ "testPackageId": "A String", # The java package for the test to be executed.
+ # The default value is determined by examining the application's manifest.
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "orchestratorOption": "A String", # The option of whether running each test within its own invocation of
+ # instrumentation with Android Test Orchestrator or not.
+ # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
+ # higher! **
+ # Orchestrator offers the following benefits:
+ # - No shared state
+ # - Crashes are isolated
+ # - Logs are scoped per test
+ #
+ # See
+ # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+ # for more information about Android Test Orchestrator.
+ #
+ # If not set, the test will be run without the orchestrator.
+ "testTargets": [ # Each target must be fully qualified with the package name or class name,
+ # in one of these formats:
+ # - "package package_name"
+ # - "class package_name.class_name"
+ # - "class package_name.class_name#method_name"
+ #
+ # If empty, all targets in the module will be run.
+ "A String",
+ ],
+ },
+ },
+ "testMatrixId": "A String", # Output only. Unique id set by the service.
+ "timestamp": "A String", # Output only. The time this test matrix was initially created.
+ "invalidMatrixDetails": "A String", # Output only. Describes why the matrix is considered invalid.
+ # Only useful for matrices in the INVALID state.
+ "environmentMatrix": { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
+ "androidDeviceList": { # A list of Android device configurations in which the test is to be executed. # A list of Android devices; the test will be run only on the specified
+ # devices.
+ "androidDevices": [ # Required. A list of Android devices.
+ { # A single Android device.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidModelId": "A String", # Required. The id of the Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ ],
+ },
+ "androidMatrix": { # A set of Android device configuration permutations is defined by the # A matrix of Android devices.
+ # the cross-product of the given axes. Internally, the given AndroidMatrix
+ # will be expanded into a set of AndroidDevices.
+ #
+ # Only supported permutations will be instantiated. Invalid permutations
+ # (e.g., incompatible models/versions) are ignored.
+ "locales": [ # Required. The set of locales the test device will enable for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "androidModelIds": [ # Required. The ids of the set of Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "androidVersionIds": [ # Required. The ids of the set of Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "orientations": [ # Required. The set of orientations to test with.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ },
+ "iosDeviceList": { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
+ "iosDevices": [ # Required. A list of iOS devices.
+ { # A single iOS device.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosModelId": "A String", # Required. The id of the iOS device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ ],
+ },
+ },
+ "outcomeSummary": "A String", # Output Only. The overall outcome of the test.
+ # Only set when the test matrix state is FINISHED.
+ }</pre>
+</div>
+
+<div class="method">
+ <code class="details" id="get">get(projectId, testMatrixId, x__xgafv=None)</code>
+ <pre>Checks the status of a test matrix.
+
+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 Test Matrix does not exist
+
+Args:
+ projectId: string, Cloud project that owns the test matrix. (required)
+ testMatrixId: string, Unique test matrix id which was assigned by the service. (required)
+ x__xgafv: string, V1 error format.
+ Allowed values
+ 1 - v1 error format
+ 2 - v2 error format
+
+Returns:
+ An object of the form:
+
+ { # TestMatrix captures all details about a test. It contains the environment
+ # configuration, test specification, test executions and overall state and
+ # outcome.
+ "clientInfo": { # Information about the client which invoked the test. # Information about the client which invoked the test.
+ "clientInfoDetails": [ # The list of detailed information about client.
+ { # Key-value pair of detailed information about the client which invoked the
+ # test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}.
+ "key": "A String", # Required. The key of detailed client information.
+ "value": "A String", # Required. The value of detailed client information.
+ },
+ ],
+ "name": "A String", # Required. Client name, such as gcloud.
+ },
+ "projectId": "A String", # The cloud project that owns the test matrix.
+ "resultStorage": { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
+ "toolResultsHistory": { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
+ # results are written to.
+ #
+ # If not provided, the service will choose an appropriate value.
+ "projectId": "A String", # Required. The cloud project that owns the tool results history.
+ "historyId": "A String", # Required. A tool results history ID.
+ },
+ "googleCloudStorage": { # A storage location within Google cloud storage (GCS). # Required.
+ "gcsPath": "A String", # Required. The path to a directory in GCS that will
+ # eventually contain the results for this test.
+ # The requesting user must have write access on the bucket in the supplied
+ # path.
+ },
+ "toolResultsExecution": { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
+ #
+ # This has the results of a TestMatrix.
+ "projectId": "A String", # Output only. The cloud project that owns the tool results execution.
+ "executionId": "A String", # Output only. A tool results execution ID.
+ "historyId": "A String", # Output only. A tool results history ID.
+ },
+ "resultsUrl": "A String", # Output only. URL to the results in the Firebase Web Console.
+ },
+ "flakyTestAttempts": 42, # The number of times a TestExecution should be re-attempted if one or more
+ # of its test cases fail for any reason.
+ # The maximum number of reruns allowed is 10.
+ #
+ # Default is 0, which implies no reruns.
+ "state": "A String", # Output only. Indicates the current progress of the test matrix.
+ "testExecutions": [ # Output only. The list of test executions that the service creates for
+ # this matrix.
+ { # A single test executed in a single environment.
+ "timestamp": "A String", # Output only. The time this test execution was initially created.
+ "matrixId": "A String", # Output only. Id of the containing TestMatrix.
+ "testSpecification": { # A description of how to run the test. # Output only. How to run the test.
+ "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ },
+ "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
+ # Xcode supports the option to "build for testing", which generates an
+ # .xctestrun file that contains a test specification (arguments, test methods,
+ # etc). This test type accepts a zip file containing the .xctestrun file and
+ # the corresponding contents of the Build/Products directory that contains all
+ # the binaries needed to run the tests.
+ "xcodeVersion": "A String", # The Xcode version that should be used for the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ # Defaults to the latest Xcode version Firebase Test Lab supports.
+ "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
+ # tests zip. Because the .xctestrun file contains environment variables along
+ # with test methods to run and/or ignore, this can be useful for sharding
+ # tests. Default is taken from the tests zip.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
+ # DerivedData/Build/Products directory.
+ # The .xctestrun file in this zip is ignored if the xctestrun field is
+ # specified.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appBundleId": "A String", # Output only. The bundle id for the application under test.
+ },
+ "testTimeout": "A String", # Max time a test execution is allowed to run before it is
+ # automatically cancelled.
+ # The default value is 5 min.
+ "testSetup": { # A description of how to set up the Android device prior to running the test. # Test setup requirements for Android e.g. files to install, bootstrap
+ # scripts.
+ "account": { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
+ "googleAuto": { # Enables automatic Google account login. # An automatic google login account.
+ # If set, the service automatically generates a Google test account and adds
+ # it to the device, before executing the test. Note that test accounts might be
+ # reused.
+ # Many applications show their full set of functionalities when an account is
+ # present on the device. Logging into the device with these generated accounts
+ # allows testing more functionalities.
+ },
+ },
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test;
+ # they must be absolute paths under /sdcard or /data/local/tmp.
+ # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
+ #
+ # Note: The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device.
+ "A String",
+ ],
+ "filesToPush": [ # List of files to push to the device before starting the test.
+ { # A single device file description.
+ "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
+ "content": { # A reference to a file, used for user inputs. # Required. The source file.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute,
+ # whitelisted path. If the file exists, it will be replaced.
+ # The following device-side directories and any of their subdirectories are
+ # whitelisted:
+ # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
+ # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
+ # <p>Specifying a path outside of these directory trees is invalid.
+ #
+ # <p> The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device and copy the file there.
+ #
+ # <p> It is strongly advised to use the <a href=
+ # "http://developer.android.com/reference/android/os/Environment.html">
+ # Environment API</a> in app and test code to access files on the device in a
+ # portable way.
+ },
+ "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
+ "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by
+ # Android
+ # e.g. [main|patch].0300110.com.example.android.obb
+ # which will be installed into
+ # \<shared-storage\>/Android/obb/\<package-name\>/
+ # on the device.
+ "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ },
+ ],
+ "additionalApks": [ # APKs to install in addition to those being directly tested.
+ # Currently capped at 100.
+ { # An Android package file to install.
+ "packageName": "A String", # The java package for the APK to be installed.
+ # Value is determined by examining the application's manifest.
+ "location": { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ ],
+ "environmentVariables": [ # Environment variables to set for the test (only applicable for
+ # instrumentation tests).
+ { # A key-value pair passed as an environment variable to the test.
+ "value": "A String", # Value for the environment variable.
+ "key": "A String", # Key for the environment variable.
+ },
+ ],
+ },
+ "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
+ "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
+ # The intent \<intent-name\> will be implicitly added, since Games is the only
+ # user of this api, for the time being.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "scenarios": [ # The list of scenarios that should be run during the test.
+ # The default is all test loops, derived from the application's
+ # manifest.
+ 42,
+ ],
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default is determined by examining the application's manifest.
+ "scenarioLabels": [ # The list of scenario labels that should be run during the test.
+ # The scenario labels should map to labels defined in the application's
+ # manifest. For example, player_experience and
+ # com.google.test.loops.player_experience add all of the loops labeled in the
+ # manifest with the com.google.test.loops.player_experience name to the
+ # execution.
+ # Scenarios can also be specified in the scenarios field.
+ "A String",
+ ],
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency.
+ "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
+ # or physical Android Device, finding culprits and crashes as it goes.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "roboDirectives": [ # A set of directives Robo should apply during the crawl.
+ # This allows users to customize the crawl. For example, the username and
+ # password for a test account can be provided.
+ { # Directs Robo to interact with a specific UI element if it is encountered
+ # during the crawl. Currently, Robo can perform text entry or element click.
+ "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be
+ # treated as a CLICK on the element matching the resource_name.
+ "resourceName": "A String", # Required. The android resource name of the target UI element.
+ # For example,
+ # in Java: R.string.foo
+ # in xml: @string/foo
+ # Only the "foo" part is needed.
+ # Reference doc:
+ # https://developer.android.com/guide/topics/resources/accessing-resources.html
+ "actionType": "A String", # Required. The type of action that Robo should perform on the specified
+ # element.
+ },
+ ],
+ "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
+ # for the crawl.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
+ # 2 to make Robo explore the app beyond the first activity.
+ # Default is 50.
+ "startingIntents": [ # The intents used to launch the app for the crawl.
+ # If none are provided, then the main launcher activity is launched.
+ # If some are provided, then only those provided are launched (the main
+ # launcher activity must be provided explicitly).
+ { # Message for specifying the start activities to crawl.
+ "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
+ "action": "A String", # Action name.
+ # Required for START_ACTIVITY.
+ "uri": "A String", # URI for the action.
+ "categories": [ # Intent categories to set on the intent.
+ "A String",
+ ],
+ },
+ "timeout": "A String", # Timeout in seconds for each intent.
+ "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
+ },
+ },
+ ],
+ "maxSteps": 42, # The max number of steps Robo can execute.
+ # Default is no limit.
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "appInitialActivity": "A String", # The initial activity that should be used to start the app.
+ },
+ "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
+ # independently of its normal lifecycle.
+ # Android instrumentation tests run an application APK and test APK inside the
+ # same process on a virtual or physical AndroidDevice. They also specify
+ # a test runner class, such as com.google.GoogleTestRunner, which can vary
+ # on the specific instrumentation framework chosen.
+ #
+ # See <http://developer.android.com/tools/testing/testing_android.html> for
+ # more information on types of Android tests.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testRunnerClass": "A String", # The InstrumentationTestRunner class.
+ # The default value is determined by examining the application's manifest.
+ "testPackageId": "A String", # The java package for the test to be executed.
+ # The default value is determined by examining the application's manifest.
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "orchestratorOption": "A String", # The option of whether running each test within its own invocation of
+ # instrumentation with Android Test Orchestrator or not.
+ # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
+ # higher! **
+ # Orchestrator offers the following benefits:
+ # - No shared state
+ # - Crashes are isolated
+ # - Logs are scoped per test
+ #
+ # See
+ # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+ # for more information about Android Test Orchestrator.
+ #
+ # If not set, the test will be run without the orchestrator.
+ "testTargets": [ # Each target must be fully qualified with the package name or class name,
+ # in one of these formats:
+ # - "package package_name"
+ # - "class package_name.class_name"
+ # - "class package_name.class_name#method_name"
+ #
+ # If empty, all targets in the module will be run.
+ "A String",
+ ],
+ },
+ },
+ "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
+ "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress.
+ # For example: "Provisioning a device", "Starting Test".
+ #
+ # During the course of execution new data may be appended
+ # to the end of progress_messages.
+ "A String",
+ ],
+ "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain
+ # human-readable details about the error.
+ },
+ "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
+ "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosModelId": "A String", # Required. The id of the iOS device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ "androidDevice": { # A single Android device. # An Android device which must be used with an Android test.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidModelId": "A String", # Required. The id of the Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ },
+ "state": "A String", # Output only. Indicates the current progress of the test execution
+ # (e.g., FINISHED).
+ "projectId": "A String", # Output only. The cloud project that owns the test execution.
+ "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
+ #
+ # This has the results of a TestExecution.
+ "projectId": "A String", # Output only. The cloud project that owns the tool results step.
+ "executionId": "A String", # Output only. A tool results execution ID.
+ "stepId": "A String", # Output only. A tool results step ID.
+ "historyId": "A String", # Output only. A tool results history ID.
+ },
+ "id": "A String", # Output only. Unique id set by the service.
+ },
+ ],
+ "testSpecification": { # A description of how to run the test. # Required. How to run the test.
+ "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ },
+ "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
+ # Xcode supports the option to "build for testing", which generates an
+ # .xctestrun file that contains a test specification (arguments, test methods,
+ # etc). This test type accepts a zip file containing the .xctestrun file and
+ # the corresponding contents of the Build/Products directory that contains all
+ # the binaries needed to run the tests.
+ "xcodeVersion": "A String", # The Xcode version that should be used for the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ # Defaults to the latest Xcode version Firebase Test Lab supports.
+ "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
+ # tests zip. Because the .xctestrun file contains environment variables along
+ # with test methods to run and/or ignore, this can be useful for sharding
+ # tests. Default is taken from the tests zip.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
+ # DerivedData/Build/Products directory.
+ # The .xctestrun file in this zip is ignored if the xctestrun field is
+ # specified.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appBundleId": "A String", # Output only. The bundle id for the application under test.
+ },
+ "testTimeout": "A String", # Max time a test execution is allowed to run before it is
+ # automatically cancelled.
+ # The default value is 5 min.
+ "testSetup": { # A description of how to set up the Android device prior to running the test. # Test setup requirements for Android e.g. files to install, bootstrap
+ # scripts.
+ "account": { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
+ "googleAuto": { # Enables automatic Google account login. # An automatic google login account.
+ # If set, the service automatically generates a Google test account and adds
+ # it to the device, before executing the test. Note that test accounts might be
+ # reused.
+ # Many applications show their full set of functionalities when an account is
+ # present on the device. Logging into the device with these generated accounts
+ # allows testing more functionalities.
+ },
+ },
+ "networkProfile": "A String", # The network traffic profile used for running the test.
+ # Available network profiles can be queried by using the
+ # NETWORK_CONFIGURATION environment type when calling
+ # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
+ "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test;
+ # they must be absolute paths under /sdcard or /data/local/tmp.
+ # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
+ #
+ # Note: The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device.
+ "A String",
+ ],
+ "filesToPush": [ # List of files to push to the device before starting the test.
+ { # A single device file description.
+ "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file.
+ "content": { # A reference to a file, used for user inputs. # Required. The source file.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute,
+ # whitelisted path. If the file exists, it will be replaced.
+ # The following device-side directories and any of their subdirectories are
+ # whitelisted:
+ # <p>${EXTERNAL_STORAGE}, or /sdcard</p>
+ # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
+ # <p>Specifying a path outside of these directory trees is invalid.
+ #
+ # <p> The paths /sdcard and /data will be made available and treated as
+ # implicit path substitutions. E.g. if /sdcard on a particular device does
+ # not map to external storage, the system will replace it with the external
+ # storage path prefix for that device and copy the file there.
+ #
+ # <p> It is strongly advised to use the <a href=
+ # "http://developer.android.com/reference/android/os/Environment.html">
+ # Environment API</a> in app and test code to access files on the device in a
+ # portable way.
+ },
+ "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
+ "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by
+ # Android
+ # e.g. [main|patch].0300110.com.example.android.obb
+ # which will be installed into
+ # \<shared-storage\>/Android/obb/\<package-name\>/
+ # on the device.
+ "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ },
+ ],
+ "additionalApks": [ # APKs to install in addition to those being directly tested.
+ # Currently capped at 100.
+ { # An Android package file to install.
+ "packageName": "A String", # The java package for the APK to be installed.
+ # Value is determined by examining the application's manifest.
+ "location": { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ ],
+ "environmentVariables": [ # Environment variables to set for the test (only applicable for
+ # instrumentation tests).
+ { # A key-value pair passed as an environment variable to the test.
+ "value": "A String", # Value for the environment variable.
+ "key": "A String", # Key for the environment variable.
+ },
+ ],
+ },
+ "disableVideoRecording": True or False, # Disables video recording. May reduce test latency.
+ "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
+ # The intent \<intent-name\> will be implicitly added, since Games is the only
+ # user of this api, for the time being.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "scenarios": [ # The list of scenarios that should be run during the test.
+ # The default is all test loops, derived from the application's
+ # manifest.
+ 42,
+ ],
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default is determined by examining the application's manifest.
+ "scenarioLabels": [ # The list of scenario labels that should be run during the test.
+ # The scenario labels should map to labels defined in the application's
+ # manifest. For example, player_experience and
+ # com.google.test.loops.player_experience add all of the loops labeled in the
+ # manifest with the com.google.test.loops.player_experience name to the
+ # execution.
+ # Scenarios can also be specified in the scenarios field.
+ "A String",
+ ],
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency.
+ "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test.
+ # or physical Android Device, finding culprits and crashes as it goes.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "roboDirectives": [ # A set of directives Robo should apply during the crawl.
+ # This allows users to customize the crawl. For example, the username and
+ # password for a test account can be provided.
+ { # Directs Robo to interact with a specific UI element if it is encountered
+ # during the crawl. Currently, Robo can perform text entry or element click.
+ "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be
+ # treated as a CLICK on the element matching the resource_name.
+ "resourceName": "A String", # Required. The android resource name of the target UI element.
+ # For example,
+ # in Java: R.string.foo
+ # in xml: @string/foo
+ # Only the "foo" part is needed.
+ # Reference doc:
+ # https://developer.android.com/guide/topics/resources/accessing-resources.html
+ "actionType": "A String", # Required. The type of action that Robo should perform on the specified
+ # element.
+ },
+ ],
+ "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
+ # for the crawl.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
+ # 2 to make Robo explore the app beyond the first activity.
+ # Default is 50.
+ "startingIntents": [ # The intents used to launch the app for the crawl.
+ # If none are provided, then the main launcher activity is launched.
+ # If some are provided, then only those provided are launched (the main
+ # launcher activity must be provided explicitly).
+ { # Message for specifying the start activities to crawl.
+ "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
+ "action": "A String", # Action name.
+ # Required for START_ACTIVITY.
+ "uri": "A String", # URI for the action.
+ "categories": [ # Intent categories to set on the intent.
+ "A String",
+ ],
+ },
+ "timeout": "A String", # Timeout in seconds for each intent.
+ "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
+ },
+ },
+ ],
+ "maxSteps": 42, # The max number of steps Robo can execute.
+ # Default is no limit.
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "appInitialActivity": "A String", # The initial activity that should be used to start the app.
+ },
+ "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test.
+ # independently of its normal lifecycle.
+ # Android instrumentation tests run an application APK and test APK inside the
+ # same process on a virtual or physical AndroidDevice. They also specify
+ # a test runner class, such as com.google.GoogleTestRunner, which can vary
+ # on the specific instrumentation framework chosen.
+ #
+ # See <http://developer.android.com/tools/testing/testing_android.html> for
+ # more information on types of Android tests.
+ "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
+ # a base module directory, zero or more dynamic feature module directories.
+ # <p>See https://developer.android.com/guide/app-bundle/build for guidance on
+ # building App Bundles.
+ "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ },
+ "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "testRunnerClass": "A String", # The InstrumentationTestRunner class.
+ # The default value is determined by examining the application's manifest.
+ "testPackageId": "A String", # The java package for the test to be executed.
+ # The default value is determined by examining the application's manifest.
+ "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test.
+ "gcsPath": "A String", # A path to a file in Google Cloud Storage.
+ # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
+ },
+ "appPackageId": "A String", # The java package for the application under test.
+ # The default value is determined by examining the application's manifest.
+ "orchestratorOption": "A String", # The option of whether running each test within its own invocation of
+ # instrumentation with Android Test Orchestrator or not.
+ # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
+ # higher! **
+ # Orchestrator offers the following benefits:
+ # - No shared state
+ # - Crashes are isolated
+ # - Logs are scoped per test
+ #
+ # See
+ # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
+ # for more information about Android Test Orchestrator.
+ #
+ # If not set, the test will be run without the orchestrator.
+ "testTargets": [ # Each target must be fully qualified with the package name or class name,
+ # in one of these formats:
+ # - "package package_name"
+ # - "class package_name.class_name"
+ # - "class package_name.class_name#method_name"
+ #
+ # If empty, all targets in the module will be run.
+ "A String",
+ ],
+ },
+ },
+ "testMatrixId": "A String", # Output only. Unique id set by the service.
+ "timestamp": "A String", # Output only. The time this test matrix was initially created.
+ "invalidMatrixDetails": "A String", # Output only. Describes why the matrix is considered invalid.
+ # Only useful for matrices in the INVALID state.
+ "environmentMatrix": { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
+ "androidDeviceList": { # A list of Android device configurations in which the test is to be executed. # A list of Android devices; the test will be run only on the specified
+ # devices.
+ "androidDevices": [ # Required. A list of Android devices.
+ { # A single Android device.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidVersionId": "A String", # Required. The id of the Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "androidModelId": "A String", # Required. The id of the Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ ],
+ },
+ "androidMatrix": { # A set of Android device configuration permutations is defined by the # A matrix of Android devices.
+ # the cross-product of the given axes. Internally, the given AndroidMatrix
+ # will be expanded into a set of AndroidDevices.
+ #
+ # Only supported permutations will be instantiated. Invalid permutations
+ # (e.g., incompatible models/versions) are ignored.
+ "locales": [ # Required. The set of locales the test device will enable for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "androidModelIds": [ # Required. The ids of the set of Android device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "androidVersionIds": [ # Required. The ids of the set of Android OS version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ "orientations": [ # Required. The set of orientations to test with.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "A String",
+ ],
+ },
+ "iosDeviceList": { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
+ "iosDevices": [ # Required. A list of iOS devices.
+ { # A single iOS device.
+ "locale": "A String", # Required. The locale the test device used for testing.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosVersionId": "A String", # Required. The id of the iOS major software version to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "orientation": "A String", # Required. How the device is oriented during the test.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ "iosModelId": "A String", # Required. The id of the iOS device to be used.
+ # Use the TestEnvironmentDiscoveryService to get supported options.
+ },
+ ],
+ },
+ },
+ "outcomeSummary": "A String", # Output Only. The overall outcome of the test.
+ # Only set when the test matrix state is FINISHED.
+ }</pre>
+</div>
+
+</body></html>
\ No newline at end of file