1<html><body> 2<style> 3 4body, h1, h2, h3, div, span, p, pre, a { 5 margin: 0; 6 padding: 0; 7 border: 0; 8 font-weight: inherit; 9 font-style: inherit; 10 font-size: 100%; 11 font-family: inherit; 12 vertical-align: baseline; 13} 14 15body { 16 font-size: 13px; 17 padding: 1em; 18} 19 20h1 { 21 font-size: 26px; 22 margin-bottom: 1em; 23} 24 25h2 { 26 font-size: 24px; 27 margin-bottom: 1em; 28} 29 30h3 { 31 font-size: 20px; 32 margin-bottom: 1em; 33 margin-top: 1em; 34} 35 36pre, code { 37 line-height: 1.5; 38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; 39} 40 41pre { 42 margin-top: 0.5em; 43} 44 45h1, h2, h3, p { 46 font-family: Arial, sans serif; 47} 48 49h1, h2, h3 { 50 border-bottom: solid #CCC 1px; 51} 52 53.toc_element { 54 margin-top: 0.5em; 55} 56 57.firstline { 58 margin-left: 2 em; 59} 60 61.method { 62 margin-top: 1em; 63 border: solid 1px #CCC; 64 padding: 1em; 65 background: #EEE; 66} 67 68.details { 69 font-weight: bold; 70 font-size: 14px; 71} 72 73</style> 74 75<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> 76<h2>Instance Methods</h2> 77<p class="toc_element"> 78 <code><a href="#cancel">cancel(projectId, testMatrixId, x__xgafv=None)</a></code></p> 79<p class="firstline">Cancels unfinished test executions in a test matrix.</p> 80<p class="toc_element"> 81 <code><a href="#create">create(projectId, body, requestId=None, x__xgafv=None)</a></code></p> 82<p class="firstline">Creates and runs a matrix of tests according to the given specifications.</p> 83<p class="toc_element"> 84 <code><a href="#get">get(projectId, testMatrixId, x__xgafv=None)</a></code></p> 85<p class="firstline">Checks the status of a test matrix.</p> 86<h3>Method Details</h3> 87<div class="method"> 88 <code class="details" id="cancel">cancel(projectId, testMatrixId, x__xgafv=None)</code> 89 <pre>Cancels unfinished test executions in a test matrix. 90This call returns immediately and cancellation proceeds asychronously. 91If the matrix is already final, this operation will have no effect. 92 93May return any of the following canonical error codes: 94 95- PERMISSION_DENIED - if the user is not authorized to read project 96- INVALID_ARGUMENT - if the request is malformed 97- NOT_FOUND - if the Test Matrix does not exist 98 99Args: 100 projectId: string, Cloud project that owns the test. (required) 101 testMatrixId: string, Test matrix that will be canceled. (required) 102 x__xgafv: string, V1 error format. 103 Allowed values 104 1 - v1 error format 105 2 - v2 error format 106 107Returns: 108 An object of the form: 109 110 { # Response containing the current state of the specified test matrix. 111 "testState": "A String", # The current rolled-up state of the test matrix. 112 # If this state is already final, then the cancelation request will 113 # have no effect. 114 }</pre> 115</div> 116 117<div class="method"> 118 <code class="details" id="create">create(projectId, body, requestId=None, x__xgafv=None)</code> 119 <pre>Creates and runs a matrix of tests according to the given specifications. 120Unsupported environments will be returned in the state UNSUPPORTED. 121Matrices are limited to at most 200 supported executions. 122 123May return any of the following canonical error codes: 124 125- PERMISSION_DENIED - if the user is not authorized to write to project 126- INVALID_ARGUMENT - if the request is malformed or if the matrix expands 127 to more than 200 supported executions 128 129Args: 130 projectId: string, The GCE project under which this job will run. (required) 131 body: object, The request body. (required) 132 The object takes the form of: 133 134{ # TestMatrix captures all details about a test. It contains the environment 135 # configuration, test specification, test executions and overall state and 136 # outcome. 137 "clientInfo": { # Information about the client which invoked the test. # Information about the client which invoked the test. 138 "clientInfoDetails": [ # The list of detailed information about client. 139 { # Key-value pair of detailed information about the client which invoked the 140 # test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}. 141 "key": "A String", # Required. The key of detailed client information. 142 "value": "A String", # Required. The value of detailed client information. 143 }, 144 ], 145 "name": "A String", # Required. Client name, such as gcloud. 146 }, 147 "projectId": "A String", # The cloud project that owns the test matrix. 148 "resultStorage": { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written. 149 "toolResultsHistory": { # Represents a tool results history resource. # The tool results history that contains the tool results execution that 150 # results are written to. 151 # 152 # If not provided, the service will choose an appropriate value. 153 "projectId": "A String", # Required. The cloud project that owns the tool results history. 154 "historyId": "A String", # Required. A tool results history ID. 155 }, 156 "googleCloudStorage": { # A storage location within Google cloud storage (GCS). # Required. 157 "gcsPath": "A String", # Required. The path to a directory in GCS that will 158 # eventually contain the results for this test. 159 # The requesting user must have write access on the bucket in the supplied 160 # path. 161 }, 162 "toolResultsExecution": { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to. 163 # 164 # This has the results of a TestMatrix. 165 "projectId": "A String", # Output only. The cloud project that owns the tool results execution. 166 "executionId": "A String", # Output only. A tool results execution ID. 167 "historyId": "A String", # Output only. A tool results history ID. 168 }, 169 "resultsUrl": "A String", # Output only. URL to the results in the Firebase Web Console. 170 }, 171 "flakyTestAttempts": 42, # The number of times a TestExecution should be re-attempted if one or more 172 # of its test cases fail for any reason. 173 # The maximum number of reruns allowed is 10. 174 # 175 # Default is 0, which implies no reruns. 176 "state": "A String", # Output only. Indicates the current progress of the test matrix. 177 "testExecutions": [ # Output only. The list of test executions that the service creates for 178 # this matrix. 179 { # A single test executed in a single environment. 180 "timestamp": "A String", # Output only. The time this test execution was initially created. 181 "matrixId": "A String", # Output only. Id of the containing TestMatrix. 182 "testSpecification": { # A description of how to run the test. # Output only. How to run the test. 183 "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS. 184 "networkProfile": "A String", # The network traffic profile used for running the test. 185 # Available network profiles can be queried by using the 186 # NETWORK_CONFIGURATION environment type when calling 187 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 188 }, 189 "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file. 190 # Xcode supports the option to "build for testing", which generates an 191 # .xctestrun file that contains a test specification (arguments, test methods, 192 # etc). This test type accepts a zip file containing the .xctestrun file and 193 # the corresponding contents of the Build/Products directory that contains all 194 # the binaries needed to run the tests. 195 "xcodeVersion": "A String", # The Xcode version that should be used for the test. 196 # Use the TestEnvironmentDiscoveryService to get supported options. 197 # Defaults to the latest Xcode version Firebase Test Lab supports. 198 "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the 199 # tests zip. Because the .xctestrun file contains environment variables along 200 # with test methods to run and/or ignore, this can be useful for sharding 201 # tests. Default is taken from the tests zip. 202 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 203 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 204 }, 205 "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the 206 # DerivedData/Build/Products directory. 207 # The .xctestrun file in this zip is ignored if the xctestrun field is 208 # specified. 209 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 210 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 211 }, 212 "appBundleId": "A String", # Output only. The bundle id for the application under test. 213 }, 214 "testTimeout": "A String", # Max time a test execution is allowed to run before it is 215 # automatically cancelled. 216 # The default value is 5 min. 217 "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 218 # scripts. 219 "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. 220 "googleAuto": { # Enables automatic Google account login. # An automatic google login account. 221 # If set, the service automatically generates a Google test account and adds 222 # it to the device, before executing the test. Note that test accounts might be 223 # reused. 224 # Many applications show their full set of functionalities when an account is 225 # present on the device. Logging into the device with these generated accounts 226 # allows testing more functionalities. 227 }, 228 }, 229 "networkProfile": "A String", # The network traffic profile used for running the test. 230 # Available network profiles can be queried by using the 231 # NETWORK_CONFIGURATION environment type when calling 232 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 233 "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test; 234 # they must be absolute paths under /sdcard or /data/local/tmp. 235 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and / 236 # 237 # Note: The paths /sdcard and /data will be made available and treated as 238 # implicit path substitutions. E.g. if /sdcard on a particular device does 239 # not map to external storage, the system will replace it with the external 240 # storage path prefix for that device. 241 "A String", 242 ], 243 "filesToPush": [ # List of files to push to the device before starting the test. 244 { # A single device file description. 245 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file. 246 "content": { # A reference to a file, used for user inputs. # Required. The source file. 247 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 248 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 249 }, 250 "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute, 251 # whitelisted path. If the file exists, it will be replaced. 252 # The following device-side directories and any of their subdirectories are 253 # whitelisted: 254 # <p>${EXTERNAL_STORAGE}, or /sdcard</p> 255 # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p> 256 # <p>Specifying a path outside of these directory trees is invalid. 257 # 258 # <p> The paths /sdcard and /data will be made available and treated as 259 # implicit path substitutions. E.g. if /sdcard on a particular device does 260 # not map to external storage, the system will replace it with the external 261 # storage path prefix for that device and copy the file there. 262 # 263 # <p> It is strongly advised to use the <a href= 264 # "http://developer.android.com/reference/android/os/Environment.html"> 265 # Environment API</a> in app and test code to access files on the device in a 266 # portable way. 267 }, 268 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file. 269 "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by 270 # Android 271 # e.g. [main|patch].0300110.com.example.android.obb 272 # which will be installed into 273 # \<shared-storage\>/Android/obb/\<package-name\>/ 274 # on the device. 275 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device. 276 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 277 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 278 }, 279 }, 280 }, 281 ], 282 "additionalApks": [ # APKs to install in addition to those being directly tested. 283 # Currently capped at 100. 284 { # An Android package file to install. 285 "packageName": "A String", # The java package for the APK to be installed. 286 # Value is determined by examining the application's manifest. 287 "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. 288 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 289 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 290 }, 291 }, 292 ], 293 "environmentVariables": [ # Environment variables to set for the test (only applicable for 294 # instrumentation tests). 295 { # A key-value pair passed as an environment variable to the test. 296 "value": "A String", # Value for the environment variable. 297 "key": "A String", # Key for the environment variable. 298 }, 299 ], 300 }, 301 "disableVideoRecording": True or False, # Disables video recording. May reduce test latency. 302 "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop. 303 # The intent \<intent-name\> will be implicitly added, since Games is the only 304 # user of this api, for the time being. 305 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 306 # a base module directory, zero or more dynamic feature module directories. 307 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 308 # building App Bundles. 309 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 310 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 311 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 312 }, 313 }, 314 "scenarios": [ # The list of scenarios that should be run during the test. 315 # The default is all test loops, derived from the application's 316 # manifest. 317 42, 318 ], 319 "appPackageId": "A String", # The java package for the application under test. 320 # The default is determined by examining the application's manifest. 321 "scenarioLabels": [ # The list of scenario labels that should be run during the test. 322 # The scenario labels should map to labels defined in the application's 323 # manifest. For example, player_experience and 324 # com.google.test.loops.player_experience add all of the loops labeled in the 325 # manifest with the com.google.test.loops.player_experience name to the 326 # execution. 327 # Scenarios can also be specified in the scenarios field. 328 "A String", 329 ], 330 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 331 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 332 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 333 }, 334 }, 335 "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency. 336 "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test. 337 # or physical Android Device, finding culprits and crashes as it goes. 338 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 339 # a base module directory, zero or more dynamic feature module directories. 340 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 341 # building App Bundles. 342 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 343 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 344 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 345 }, 346 }, 347 "roboDirectives": [ # A set of directives Robo should apply during the crawl. 348 # This allows users to customize the crawl. For example, the username and 349 # password for a test account can be provided. 350 { # Directs Robo to interact with a specific UI element if it is encountered 351 # during the crawl. Currently, Robo can perform text entry or element click. 352 "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be 353 # treated as a CLICK on the element matching the resource_name. 354 "resourceName": "A String", # Required. The android resource name of the target UI element. 355 # For example, 356 # in Java: R.string.foo 357 # in xml: @string/foo 358 # Only the "foo" part is needed. 359 # Reference doc: 360 # https://developer.android.com/guide/topics/resources/accessing-resources.html 361 "actionType": "A String", # Required. The type of action that Robo should perform on the specified 362 # element. 363 }, 364 ], 365 "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue 366 # for the crawl. 367 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 368 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 369 }, 370 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 371 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 372 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 373 }, 374 "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least 375 # 2 to make Robo explore the app beyond the first activity. 376 # Default is 50. 377 "startingIntents": [ # The intents used to launch the app for the crawl. 378 # If none are provided, then the main launcher activity is launched. 379 # If some are provided, then only those provided are launched (the main 380 # launcher activity must be provided explicitly). 381 { # Message for specifying the start activities to crawl. 382 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details. 383 "action": "A String", # Action name. 384 # Required for START_ACTIVITY. 385 "uri": "A String", # URI for the action. 386 "categories": [ # Intent categories to set on the intent. 387 "A String", 388 ], 389 }, 390 "timeout": "A String", # Timeout in seconds for each intent. 391 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity. 392 }, 393 }, 394 ], 395 "maxSteps": 42, # The max number of steps Robo can execute. 396 # Default is no limit. 397 "appPackageId": "A String", # The java package for the application under test. 398 # The default value is determined by examining the application's manifest. 399 "appInitialActivity": "A String", # The initial activity that should be used to start the app. 400 }, 401 "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test. 402 # independently of its normal lifecycle. 403 # Android instrumentation tests run an application APK and test APK inside the 404 # same process on a virtual or physical AndroidDevice. They also specify 405 # a test runner class, such as com.google.GoogleTestRunner, which can vary 406 # on the specific instrumentation framework chosen. 407 # 408 # See <http://developer.android.com/tools/testing/testing_android.html> for 409 # more information on types of Android tests. 410 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 411 # a base module directory, zero or more dynamic feature module directories. 412 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 413 # building App Bundles. 414 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 415 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 416 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 417 }, 418 }, 419 "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed. 420 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 421 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 422 }, 423 "testRunnerClass": "A String", # The InstrumentationTestRunner class. 424 # The default value is determined by examining the application's manifest. 425 "testPackageId": "A String", # The java package for the test to be executed. 426 # The default value is determined by examining the application's manifest. 427 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 428 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 429 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 430 }, 431 "appPackageId": "A String", # The java package for the application under test. 432 # The default value is determined by examining the application's manifest. 433 "orchestratorOption": "A String", # The option of whether running each test within its own invocation of 434 # instrumentation with Android Test Orchestrator or not. 435 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or 436 # higher! ** 437 # Orchestrator offers the following benefits: 438 # - No shared state 439 # - Crashes are isolated 440 # - Logs are scoped per test 441 # 442 # See 443 # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator> 444 # for more information about Android Test Orchestrator. 445 # 446 # If not set, the test will be run without the orchestrator. 447 "testTargets": [ # Each target must be fully qualified with the package name or class name, 448 # in one of these formats: 449 # - "package package_name" 450 # - "class package_name.class_name" 451 # - "class package_name.class_name#method_name" 452 # 453 # If empty, all targets in the module will be run. 454 "A String", 455 ], 456 }, 457 }, 458 "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test. 459 "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress. 460 # For example: "Provisioning a device", "Starting Test". 461 # 462 # During the course of execution new data may be appended 463 # to the end of progress_messages. 464 "A String", 465 ], 466 "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain 467 # human-readable details about the error. 468 }, 469 "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured. 470 "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test. 471 "locale": "A String", # Required. The locale the test device used for testing. 472 # Use the TestEnvironmentDiscoveryService to get supported options. 473 "iosVersionId": "A String", # Required. The id of the iOS major software version to be used. 474 # Use the TestEnvironmentDiscoveryService to get supported options. 475 "orientation": "A String", # Required. How the device is oriented during the test. 476 # Use the TestEnvironmentDiscoveryService to get supported options. 477 "iosModelId": "A String", # Required. The id of the iOS device to be used. 478 # Use the TestEnvironmentDiscoveryService to get supported options. 479 }, 480 "androidDevice": { # A single Android device. # An Android device which must be used with an Android test. 481 "locale": "A String", # Required. The locale the test device used for testing. 482 # Use the TestEnvironmentDiscoveryService to get supported options. 483 "androidVersionId": "A String", # Required. The id of the Android OS version to be used. 484 # Use the TestEnvironmentDiscoveryService to get supported options. 485 "androidModelId": "A String", # Required. The id of the Android device to be used. 486 # Use the TestEnvironmentDiscoveryService to get supported options. 487 "orientation": "A String", # Required. How the device is oriented during the test. 488 # Use the TestEnvironmentDiscoveryService to get supported options. 489 }, 490 }, 491 "state": "A String", # Output only. Indicates the current progress of the test execution 492 # (e.g., FINISHED). 493 "projectId": "A String", # Output only. The cloud project that owns the test execution. 494 "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written. 495 # 496 # This has the results of a TestExecution. 497 "projectId": "A String", # Output only. The cloud project that owns the tool results step. 498 "executionId": "A String", # Output only. A tool results execution ID. 499 "stepId": "A String", # Output only. A tool results step ID. 500 "historyId": "A String", # Output only. A tool results history ID. 501 }, 502 "id": "A String", # Output only. Unique id set by the service. 503 }, 504 ], 505 "testSpecification": { # A description of how to run the test. # Required. How to run the test. 506 "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS. 507 "networkProfile": "A String", # The network traffic profile used for running the test. 508 # Available network profiles can be queried by using the 509 # NETWORK_CONFIGURATION environment type when calling 510 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 511 }, 512 "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file. 513 # Xcode supports the option to "build for testing", which generates an 514 # .xctestrun file that contains a test specification (arguments, test methods, 515 # etc). This test type accepts a zip file containing the .xctestrun file and 516 # the corresponding contents of the Build/Products directory that contains all 517 # the binaries needed to run the tests. 518 "xcodeVersion": "A String", # The Xcode version that should be used for the test. 519 # Use the TestEnvironmentDiscoveryService to get supported options. 520 # Defaults to the latest Xcode version Firebase Test Lab supports. 521 "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the 522 # tests zip. Because the .xctestrun file contains environment variables along 523 # with test methods to run and/or ignore, this can be useful for sharding 524 # tests. Default is taken from the tests zip. 525 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 526 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 527 }, 528 "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the 529 # DerivedData/Build/Products directory. 530 # The .xctestrun file in this zip is ignored if the xctestrun field is 531 # specified. 532 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 533 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 534 }, 535 "appBundleId": "A String", # Output only. The bundle id for the application under test. 536 }, 537 "testTimeout": "A String", # Max time a test execution is allowed to run before it is 538 # automatically cancelled. 539 # The default value is 5 min. 540 "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 541 # scripts. 542 "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. 543 "googleAuto": { # Enables automatic Google account login. # An automatic google login account. 544 # If set, the service automatically generates a Google test account and adds 545 # it to the device, before executing the test. Note that test accounts might be 546 # reused. 547 # Many applications show their full set of functionalities when an account is 548 # present on the device. Logging into the device with these generated accounts 549 # allows testing more functionalities. 550 }, 551 }, 552 "networkProfile": "A String", # The network traffic profile used for running the test. 553 # Available network profiles can be queried by using the 554 # NETWORK_CONFIGURATION environment type when calling 555 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 556 "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test; 557 # they must be absolute paths under /sdcard or /data/local/tmp. 558 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and / 559 # 560 # Note: The paths /sdcard and /data will be made available and treated as 561 # implicit path substitutions. E.g. if /sdcard on a particular device does 562 # not map to external storage, the system will replace it with the external 563 # storage path prefix for that device. 564 "A String", 565 ], 566 "filesToPush": [ # List of files to push to the device before starting the test. 567 { # A single device file description. 568 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file. 569 "content": { # A reference to a file, used for user inputs. # Required. The source file. 570 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 571 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 572 }, 573 "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute, 574 # whitelisted path. If the file exists, it will be replaced. 575 # The following device-side directories and any of their subdirectories are 576 # whitelisted: 577 # <p>${EXTERNAL_STORAGE}, or /sdcard</p> 578 # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p> 579 # <p>Specifying a path outside of these directory trees is invalid. 580 # 581 # <p> The paths /sdcard and /data will be made available and treated as 582 # implicit path substitutions. E.g. if /sdcard on a particular device does 583 # not map to external storage, the system will replace it with the external 584 # storage path prefix for that device and copy the file there. 585 # 586 # <p> It is strongly advised to use the <a href= 587 # "http://developer.android.com/reference/android/os/Environment.html"> 588 # Environment API</a> in app and test code to access files on the device in a 589 # portable way. 590 }, 591 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file. 592 "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by 593 # Android 594 # e.g. [main|patch].0300110.com.example.android.obb 595 # which will be installed into 596 # \<shared-storage\>/Android/obb/\<package-name\>/ 597 # on the device. 598 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device. 599 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 600 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 601 }, 602 }, 603 }, 604 ], 605 "additionalApks": [ # APKs to install in addition to those being directly tested. 606 # Currently capped at 100. 607 { # An Android package file to install. 608 "packageName": "A String", # The java package for the APK to be installed. 609 # Value is determined by examining the application's manifest. 610 "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. 611 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 612 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 613 }, 614 }, 615 ], 616 "environmentVariables": [ # Environment variables to set for the test (only applicable for 617 # instrumentation tests). 618 { # A key-value pair passed as an environment variable to the test. 619 "value": "A String", # Value for the environment variable. 620 "key": "A String", # Key for the environment variable. 621 }, 622 ], 623 }, 624 "disableVideoRecording": True or False, # Disables video recording. May reduce test latency. 625 "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop. 626 # The intent \<intent-name\> will be implicitly added, since Games is the only 627 # user of this api, for the time being. 628 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 629 # a base module directory, zero or more dynamic feature module directories. 630 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 631 # building App Bundles. 632 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 633 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 634 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 635 }, 636 }, 637 "scenarios": [ # The list of scenarios that should be run during the test. 638 # The default is all test loops, derived from the application's 639 # manifest. 640 42, 641 ], 642 "appPackageId": "A String", # The java package for the application under test. 643 # The default is determined by examining the application's manifest. 644 "scenarioLabels": [ # The list of scenario labels that should be run during the test. 645 # The scenario labels should map to labels defined in the application's 646 # manifest. For example, player_experience and 647 # com.google.test.loops.player_experience add all of the loops labeled in the 648 # manifest with the com.google.test.loops.player_experience name to the 649 # execution. 650 # Scenarios can also be specified in the scenarios field. 651 "A String", 652 ], 653 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 654 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 655 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 656 }, 657 }, 658 "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency. 659 "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test. 660 # or physical Android Device, finding culprits and crashes as it goes. 661 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 662 # a base module directory, zero or more dynamic feature module directories. 663 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 664 # building App Bundles. 665 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 666 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 667 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 668 }, 669 }, 670 "roboDirectives": [ # A set of directives Robo should apply during the crawl. 671 # This allows users to customize the crawl. For example, the username and 672 # password for a test account can be provided. 673 { # Directs Robo to interact with a specific UI element if it is encountered 674 # during the crawl. Currently, Robo can perform text entry or element click. 675 "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be 676 # treated as a CLICK on the element matching the resource_name. 677 "resourceName": "A String", # Required. The android resource name of the target UI element. 678 # For example, 679 # in Java: R.string.foo 680 # in xml: @string/foo 681 # Only the "foo" part is needed. 682 # Reference doc: 683 # https://developer.android.com/guide/topics/resources/accessing-resources.html 684 "actionType": "A String", # Required. The type of action that Robo should perform on the specified 685 # element. 686 }, 687 ], 688 "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue 689 # for the crawl. 690 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 691 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 692 }, 693 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 694 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 695 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 696 }, 697 "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least 698 # 2 to make Robo explore the app beyond the first activity. 699 # Default is 50. 700 "startingIntents": [ # The intents used to launch the app for the crawl. 701 # If none are provided, then the main launcher activity is launched. 702 # If some are provided, then only those provided are launched (the main 703 # launcher activity must be provided explicitly). 704 { # Message for specifying the start activities to crawl. 705 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details. 706 "action": "A String", # Action name. 707 # Required for START_ACTIVITY. 708 "uri": "A String", # URI for the action. 709 "categories": [ # Intent categories to set on the intent. 710 "A String", 711 ], 712 }, 713 "timeout": "A String", # Timeout in seconds for each intent. 714 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity. 715 }, 716 }, 717 ], 718 "maxSteps": 42, # The max number of steps Robo can execute. 719 # Default is no limit. 720 "appPackageId": "A String", # The java package for the application under test. 721 # The default value is determined by examining the application's manifest. 722 "appInitialActivity": "A String", # The initial activity that should be used to start the app. 723 }, 724 "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test. 725 # independently of its normal lifecycle. 726 # Android instrumentation tests run an application APK and test APK inside the 727 # same process on a virtual or physical AndroidDevice. They also specify 728 # a test runner class, such as com.google.GoogleTestRunner, which can vary 729 # on the specific instrumentation framework chosen. 730 # 731 # See <http://developer.android.com/tools/testing/testing_android.html> for 732 # more information on types of Android tests. 733 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 734 # a base module directory, zero or more dynamic feature module directories. 735 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 736 # building App Bundles. 737 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 738 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 739 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 740 }, 741 }, 742 "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed. 743 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 744 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 745 }, 746 "testRunnerClass": "A String", # The InstrumentationTestRunner class. 747 # The default value is determined by examining the application's manifest. 748 "testPackageId": "A String", # The java package for the test to be executed. 749 # The default value is determined by examining the application's manifest. 750 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 751 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 752 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 753 }, 754 "appPackageId": "A String", # The java package for the application under test. 755 # The default value is determined by examining the application's manifest. 756 "orchestratorOption": "A String", # The option of whether running each test within its own invocation of 757 # instrumentation with Android Test Orchestrator or not. 758 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or 759 # higher! ** 760 # Orchestrator offers the following benefits: 761 # - No shared state 762 # - Crashes are isolated 763 # - Logs are scoped per test 764 # 765 # See 766 # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator> 767 # for more information about Android Test Orchestrator. 768 # 769 # If not set, the test will be run without the orchestrator. 770 "testTargets": [ # Each target must be fully qualified with the package name or class name, 771 # in one of these formats: 772 # - "package package_name" 773 # - "class package_name.class_name" 774 # - "class package_name.class_name#method_name" 775 # 776 # If empty, all targets in the module will be run. 777 "A String", 778 ], 779 }, 780 }, 781 "testMatrixId": "A String", # Output only. Unique id set by the service. 782 "timestamp": "A String", # Output only. The time this test matrix was initially created. 783 "invalidMatrixDetails": "A String", # Output only. Describes why the matrix is considered invalid. 784 # Only useful for matrices in the INVALID state. 785 "environmentMatrix": { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on. 786 "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 787 # devices. 788 "androidDevices": [ # Required. A list of Android devices. 789 { # A single Android device. 790 "locale": "A String", # Required. The locale the test device used for testing. 791 # Use the TestEnvironmentDiscoveryService to get supported options. 792 "androidVersionId": "A String", # Required. The id of the Android OS version to be used. 793 # Use the TestEnvironmentDiscoveryService to get supported options. 794 "androidModelId": "A String", # Required. The id of the Android device to be used. 795 # Use the TestEnvironmentDiscoveryService to get supported options. 796 "orientation": "A String", # Required. How the device is oriented during the test. 797 # Use the TestEnvironmentDiscoveryService to get supported options. 798 }, 799 ], 800 }, 801 "androidMatrix": { # A set of Android device configuration permutations is defined by the # A matrix of Android devices. 802 # the cross-product of the given axes. Internally, the given AndroidMatrix 803 # will be expanded into a set of AndroidDevices. 804 # 805 # Only supported permutations will be instantiated. Invalid permutations 806 # (e.g., incompatible models/versions) are ignored. 807 "locales": [ # Required. The set of locales the test device will enable for testing. 808 # Use the TestEnvironmentDiscoveryService to get supported options. 809 "A String", 810 ], 811 "androidModelIds": [ # Required. The ids of the set of Android device to be used. 812 # Use the TestEnvironmentDiscoveryService to get supported options. 813 "A String", 814 ], 815 "androidVersionIds": [ # Required. The ids of the set of Android OS version to be used. 816 # Use the TestEnvironmentDiscoveryService to get supported options. 817 "A String", 818 ], 819 "orientations": [ # Required. The set of orientations to test with. 820 # Use the TestEnvironmentDiscoveryService to get supported options. 821 "A String", 822 ], 823 }, 824 "iosDeviceList": { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices. 825 "iosDevices": [ # Required. A list of iOS devices. 826 { # A single iOS device. 827 "locale": "A String", # Required. The locale the test device used for testing. 828 # Use the TestEnvironmentDiscoveryService to get supported options. 829 "iosVersionId": "A String", # Required. The id of the iOS major software version to be used. 830 # Use the TestEnvironmentDiscoveryService to get supported options. 831 "orientation": "A String", # Required. How the device is oriented during the test. 832 # Use the TestEnvironmentDiscoveryService to get supported options. 833 "iosModelId": "A String", # Required. The id of the iOS device to be used. 834 # Use the TestEnvironmentDiscoveryService to get supported options. 835 }, 836 ], 837 }, 838 }, 839 "outcomeSummary": "A String", # Output Only. The overall outcome of the test. 840 # Only set when the test matrix state is FINISHED. 841 } 842 843 requestId: string, A string id used to detect duplicated requests. 844Ids are automatically scoped to a project, so 845users should ensure the ID is unique per-project. 846A UUID is recommended. 847 848Optional, but strongly recommended. 849 x__xgafv: string, V1 error format. 850 Allowed values 851 1 - v1 error format 852 2 - v2 error format 853 854Returns: 855 An object of the form: 856 857 { # TestMatrix captures all details about a test. It contains the environment 858 # configuration, test specification, test executions and overall state and 859 # outcome. 860 "clientInfo": { # Information about the client which invoked the test. # Information about the client which invoked the test. 861 "clientInfoDetails": [ # The list of detailed information about client. 862 { # Key-value pair of detailed information about the client which invoked the 863 # test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}. 864 "key": "A String", # Required. The key of detailed client information. 865 "value": "A String", # Required. The value of detailed client information. 866 }, 867 ], 868 "name": "A String", # Required. Client name, such as gcloud. 869 }, 870 "projectId": "A String", # The cloud project that owns the test matrix. 871 "resultStorage": { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written. 872 "toolResultsHistory": { # Represents a tool results history resource. # The tool results history that contains the tool results execution that 873 # results are written to. 874 # 875 # If not provided, the service will choose an appropriate value. 876 "projectId": "A String", # Required. The cloud project that owns the tool results history. 877 "historyId": "A String", # Required. A tool results history ID. 878 }, 879 "googleCloudStorage": { # A storage location within Google cloud storage (GCS). # Required. 880 "gcsPath": "A String", # Required. The path to a directory in GCS that will 881 # eventually contain the results for this test. 882 # The requesting user must have write access on the bucket in the supplied 883 # path. 884 }, 885 "toolResultsExecution": { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to. 886 # 887 # This has the results of a TestMatrix. 888 "projectId": "A String", # Output only. The cloud project that owns the tool results execution. 889 "executionId": "A String", # Output only. A tool results execution ID. 890 "historyId": "A String", # Output only. A tool results history ID. 891 }, 892 "resultsUrl": "A String", # Output only. URL to the results in the Firebase Web Console. 893 }, 894 "flakyTestAttempts": 42, # The number of times a TestExecution should be re-attempted if one or more 895 # of its test cases fail for any reason. 896 # The maximum number of reruns allowed is 10. 897 # 898 # Default is 0, which implies no reruns. 899 "state": "A String", # Output only. Indicates the current progress of the test matrix. 900 "testExecutions": [ # Output only. The list of test executions that the service creates for 901 # this matrix. 902 { # A single test executed in a single environment. 903 "timestamp": "A String", # Output only. The time this test execution was initially created. 904 "matrixId": "A String", # Output only. Id of the containing TestMatrix. 905 "testSpecification": { # A description of how to run the test. # Output only. How to run the test. 906 "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS. 907 "networkProfile": "A String", # The network traffic profile used for running the test. 908 # Available network profiles can be queried by using the 909 # NETWORK_CONFIGURATION environment type when calling 910 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 911 }, 912 "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file. 913 # Xcode supports the option to "build for testing", which generates an 914 # .xctestrun file that contains a test specification (arguments, test methods, 915 # etc). This test type accepts a zip file containing the .xctestrun file and 916 # the corresponding contents of the Build/Products directory that contains all 917 # the binaries needed to run the tests. 918 "xcodeVersion": "A String", # The Xcode version that should be used for the test. 919 # Use the TestEnvironmentDiscoveryService to get supported options. 920 # Defaults to the latest Xcode version Firebase Test Lab supports. 921 "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the 922 # tests zip. Because the .xctestrun file contains environment variables along 923 # with test methods to run and/or ignore, this can be useful for sharding 924 # tests. Default is taken from the tests zip. 925 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 926 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 927 }, 928 "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the 929 # DerivedData/Build/Products directory. 930 # The .xctestrun file in this zip is ignored if the xctestrun field is 931 # specified. 932 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 933 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 934 }, 935 "appBundleId": "A String", # Output only. The bundle id for the application under test. 936 }, 937 "testTimeout": "A String", # Max time a test execution is allowed to run before it is 938 # automatically cancelled. 939 # The default value is 5 min. 940 "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 941 # scripts. 942 "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. 943 "googleAuto": { # Enables automatic Google account login. # An automatic google login account. 944 # If set, the service automatically generates a Google test account and adds 945 # it to the device, before executing the test. Note that test accounts might be 946 # reused. 947 # Many applications show their full set of functionalities when an account is 948 # present on the device. Logging into the device with these generated accounts 949 # allows testing more functionalities. 950 }, 951 }, 952 "networkProfile": "A String", # The network traffic profile used for running the test. 953 # Available network profiles can be queried by using the 954 # NETWORK_CONFIGURATION environment type when calling 955 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 956 "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test; 957 # they must be absolute paths under /sdcard or /data/local/tmp. 958 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and / 959 # 960 # Note: The paths /sdcard and /data will be made available and treated as 961 # implicit path substitutions. E.g. if /sdcard on a particular device does 962 # not map to external storage, the system will replace it with the external 963 # storage path prefix for that device. 964 "A String", 965 ], 966 "filesToPush": [ # List of files to push to the device before starting the test. 967 { # A single device file description. 968 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file. 969 "content": { # A reference to a file, used for user inputs. # Required. The source file. 970 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 971 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 972 }, 973 "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute, 974 # whitelisted path. If the file exists, it will be replaced. 975 # The following device-side directories and any of their subdirectories are 976 # whitelisted: 977 # <p>${EXTERNAL_STORAGE}, or /sdcard</p> 978 # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p> 979 # <p>Specifying a path outside of these directory trees is invalid. 980 # 981 # <p> The paths /sdcard and /data will be made available and treated as 982 # implicit path substitutions. E.g. if /sdcard on a particular device does 983 # not map to external storage, the system will replace it with the external 984 # storage path prefix for that device and copy the file there. 985 # 986 # <p> It is strongly advised to use the <a href= 987 # "http://developer.android.com/reference/android/os/Environment.html"> 988 # Environment API</a> in app and test code to access files on the device in a 989 # portable way. 990 }, 991 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file. 992 "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by 993 # Android 994 # e.g. [main|patch].0300110.com.example.android.obb 995 # which will be installed into 996 # \<shared-storage\>/Android/obb/\<package-name\>/ 997 # on the device. 998 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device. 999 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1000 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1001 }, 1002 }, 1003 }, 1004 ], 1005 "additionalApks": [ # APKs to install in addition to those being directly tested. 1006 # Currently capped at 100. 1007 { # An Android package file to install. 1008 "packageName": "A String", # The java package for the APK to be installed. 1009 # Value is determined by examining the application's manifest. 1010 "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. 1011 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1012 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1013 }, 1014 }, 1015 ], 1016 "environmentVariables": [ # Environment variables to set for the test (only applicable for 1017 # instrumentation tests). 1018 { # A key-value pair passed as an environment variable to the test. 1019 "value": "A String", # Value for the environment variable. 1020 "key": "A String", # Key for the environment variable. 1021 }, 1022 ], 1023 }, 1024 "disableVideoRecording": True or False, # Disables video recording. May reduce test latency. 1025 "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop. 1026 # The intent \<intent-name\> will be implicitly added, since Games is the only 1027 # user of this api, for the time being. 1028 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1029 # a base module directory, zero or more dynamic feature module directories. 1030 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1031 # building App Bundles. 1032 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1033 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1034 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1035 }, 1036 }, 1037 "scenarios": [ # The list of scenarios that should be run during the test. 1038 # The default is all test loops, derived from the application's 1039 # manifest. 1040 42, 1041 ], 1042 "appPackageId": "A String", # The java package for the application under test. 1043 # The default is determined by examining the application's manifest. 1044 "scenarioLabels": [ # The list of scenario labels that should be run during the test. 1045 # The scenario labels should map to labels defined in the application's 1046 # manifest. For example, player_experience and 1047 # com.google.test.loops.player_experience add all of the loops labeled in the 1048 # manifest with the com.google.test.loops.player_experience name to the 1049 # execution. 1050 # Scenarios can also be specified in the scenarios field. 1051 "A String", 1052 ], 1053 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1054 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1055 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1056 }, 1057 }, 1058 "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency. 1059 "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test. 1060 # or physical Android Device, finding culprits and crashes as it goes. 1061 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1062 # a base module directory, zero or more dynamic feature module directories. 1063 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1064 # building App Bundles. 1065 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1066 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1067 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1068 }, 1069 }, 1070 "roboDirectives": [ # A set of directives Robo should apply during the crawl. 1071 # This allows users to customize the crawl. For example, the username and 1072 # password for a test account can be provided. 1073 { # Directs Robo to interact with a specific UI element if it is encountered 1074 # during the crawl. Currently, Robo can perform text entry or element click. 1075 "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be 1076 # treated as a CLICK on the element matching the resource_name. 1077 "resourceName": "A String", # Required. The android resource name of the target UI element. 1078 # For example, 1079 # in Java: R.string.foo 1080 # in xml: @string/foo 1081 # Only the "foo" part is needed. 1082 # Reference doc: 1083 # https://developer.android.com/guide/topics/resources/accessing-resources.html 1084 "actionType": "A String", # Required. The type of action that Robo should perform on the specified 1085 # element. 1086 }, 1087 ], 1088 "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue 1089 # for the crawl. 1090 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1091 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1092 }, 1093 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1094 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1095 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1096 }, 1097 "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least 1098 # 2 to make Robo explore the app beyond the first activity. 1099 # Default is 50. 1100 "startingIntents": [ # The intents used to launch the app for the crawl. 1101 # If none are provided, then the main launcher activity is launched. 1102 # If some are provided, then only those provided are launched (the main 1103 # launcher activity must be provided explicitly). 1104 { # Message for specifying the start activities to crawl. 1105 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details. 1106 "action": "A String", # Action name. 1107 # Required for START_ACTIVITY. 1108 "uri": "A String", # URI for the action. 1109 "categories": [ # Intent categories to set on the intent. 1110 "A String", 1111 ], 1112 }, 1113 "timeout": "A String", # Timeout in seconds for each intent. 1114 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity. 1115 }, 1116 }, 1117 ], 1118 "maxSteps": 42, # The max number of steps Robo can execute. 1119 # Default is no limit. 1120 "appPackageId": "A String", # The java package for the application under test. 1121 # The default value is determined by examining the application's manifest. 1122 "appInitialActivity": "A String", # The initial activity that should be used to start the app. 1123 }, 1124 "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test. 1125 # independently of its normal lifecycle. 1126 # Android instrumentation tests run an application APK and test APK inside the 1127 # same process on a virtual or physical AndroidDevice. They also specify 1128 # a test runner class, such as com.google.GoogleTestRunner, which can vary 1129 # on the specific instrumentation framework chosen. 1130 # 1131 # See <http://developer.android.com/tools/testing/testing_android.html> for 1132 # more information on types of Android tests. 1133 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1134 # a base module directory, zero or more dynamic feature module directories. 1135 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1136 # building App Bundles. 1137 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1138 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1139 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1140 }, 1141 }, 1142 "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed. 1143 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1144 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1145 }, 1146 "testRunnerClass": "A String", # The InstrumentationTestRunner class. 1147 # The default value is determined by examining the application's manifest. 1148 "testPackageId": "A String", # The java package for the test to be executed. 1149 # The default value is determined by examining the application's manifest. 1150 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1151 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1152 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1153 }, 1154 "appPackageId": "A String", # The java package for the application under test. 1155 # The default value is determined by examining the application's manifest. 1156 "orchestratorOption": "A String", # The option of whether running each test within its own invocation of 1157 # instrumentation with Android Test Orchestrator or not. 1158 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or 1159 # higher! ** 1160 # Orchestrator offers the following benefits: 1161 # - No shared state 1162 # - Crashes are isolated 1163 # - Logs are scoped per test 1164 # 1165 # See 1166 # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator> 1167 # for more information about Android Test Orchestrator. 1168 # 1169 # If not set, the test will be run without the orchestrator. 1170 "testTargets": [ # Each target must be fully qualified with the package name or class name, 1171 # in one of these formats: 1172 # - "package package_name" 1173 # - "class package_name.class_name" 1174 # - "class package_name.class_name#method_name" 1175 # 1176 # If empty, all targets in the module will be run. 1177 "A String", 1178 ], 1179 }, 1180 }, 1181 "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test. 1182 "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress. 1183 # For example: "Provisioning a device", "Starting Test". 1184 # 1185 # During the course of execution new data may be appended 1186 # to the end of progress_messages. 1187 "A String", 1188 ], 1189 "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain 1190 # human-readable details about the error. 1191 }, 1192 "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured. 1193 "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test. 1194 "locale": "A String", # Required. The locale the test device used for testing. 1195 # Use the TestEnvironmentDiscoveryService to get supported options. 1196 "iosVersionId": "A String", # Required. The id of the iOS major software version to be used. 1197 # Use the TestEnvironmentDiscoveryService to get supported options. 1198 "orientation": "A String", # Required. How the device is oriented during the test. 1199 # Use the TestEnvironmentDiscoveryService to get supported options. 1200 "iosModelId": "A String", # Required. The id of the iOS device to be used. 1201 # Use the TestEnvironmentDiscoveryService to get supported options. 1202 }, 1203 "androidDevice": { # A single Android device. # An Android device which must be used with an Android test. 1204 "locale": "A String", # Required. The locale the test device used for testing. 1205 # Use the TestEnvironmentDiscoveryService to get supported options. 1206 "androidVersionId": "A String", # Required. The id of the Android OS version to be used. 1207 # Use the TestEnvironmentDiscoveryService to get supported options. 1208 "androidModelId": "A String", # Required. The id of the Android device to be used. 1209 # Use the TestEnvironmentDiscoveryService to get supported options. 1210 "orientation": "A String", # Required. How the device is oriented during the test. 1211 # Use the TestEnvironmentDiscoveryService to get supported options. 1212 }, 1213 }, 1214 "state": "A String", # Output only. Indicates the current progress of the test execution 1215 # (e.g., FINISHED). 1216 "projectId": "A String", # Output only. The cloud project that owns the test execution. 1217 "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written. 1218 # 1219 # This has the results of a TestExecution. 1220 "projectId": "A String", # Output only. The cloud project that owns the tool results step. 1221 "executionId": "A String", # Output only. A tool results execution ID. 1222 "stepId": "A String", # Output only. A tool results step ID. 1223 "historyId": "A String", # Output only. A tool results history ID. 1224 }, 1225 "id": "A String", # Output only. Unique id set by the service. 1226 }, 1227 ], 1228 "testSpecification": { # A description of how to run the test. # Required. How to run the test. 1229 "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS. 1230 "networkProfile": "A String", # The network traffic profile used for running the test. 1231 # Available network profiles can be queried by using the 1232 # NETWORK_CONFIGURATION environment type when calling 1233 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 1234 }, 1235 "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file. 1236 # Xcode supports the option to "build for testing", which generates an 1237 # .xctestrun file that contains a test specification (arguments, test methods, 1238 # etc). This test type accepts a zip file containing the .xctestrun file and 1239 # the corresponding contents of the Build/Products directory that contains all 1240 # the binaries needed to run the tests. 1241 "xcodeVersion": "A String", # The Xcode version that should be used for the test. 1242 # Use the TestEnvironmentDiscoveryService to get supported options. 1243 # Defaults to the latest Xcode version Firebase Test Lab supports. 1244 "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the 1245 # tests zip. Because the .xctestrun file contains environment variables along 1246 # with test methods to run and/or ignore, this can be useful for sharding 1247 # tests. Default is taken from the tests zip. 1248 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1249 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1250 }, 1251 "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the 1252 # DerivedData/Build/Products directory. 1253 # The .xctestrun file in this zip is ignored if the xctestrun field is 1254 # specified. 1255 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1256 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1257 }, 1258 "appBundleId": "A String", # Output only. The bundle id for the application under test. 1259 }, 1260 "testTimeout": "A String", # Max time a test execution is allowed to run before it is 1261 # automatically cancelled. 1262 # The default value is 5 min. 1263 "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 1264 # scripts. 1265 "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. 1266 "googleAuto": { # Enables automatic Google account login. # An automatic google login account. 1267 # If set, the service automatically generates a Google test account and adds 1268 # it to the device, before executing the test. Note that test accounts might be 1269 # reused. 1270 # Many applications show their full set of functionalities when an account is 1271 # present on the device. Logging into the device with these generated accounts 1272 # allows testing more functionalities. 1273 }, 1274 }, 1275 "networkProfile": "A String", # The network traffic profile used for running the test. 1276 # Available network profiles can be queried by using the 1277 # NETWORK_CONFIGURATION environment type when calling 1278 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 1279 "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test; 1280 # they must be absolute paths under /sdcard or /data/local/tmp. 1281 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and / 1282 # 1283 # Note: The paths /sdcard and /data will be made available and treated as 1284 # implicit path substitutions. E.g. if /sdcard on a particular device does 1285 # not map to external storage, the system will replace it with the external 1286 # storage path prefix for that device. 1287 "A String", 1288 ], 1289 "filesToPush": [ # List of files to push to the device before starting the test. 1290 { # A single device file description. 1291 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file. 1292 "content": { # A reference to a file, used for user inputs. # Required. The source file. 1293 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1294 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1295 }, 1296 "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute, 1297 # whitelisted path. If the file exists, it will be replaced. 1298 # The following device-side directories and any of their subdirectories are 1299 # whitelisted: 1300 # <p>${EXTERNAL_STORAGE}, or /sdcard</p> 1301 # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p> 1302 # <p>Specifying a path outside of these directory trees is invalid. 1303 # 1304 # <p> The paths /sdcard and /data will be made available and treated as 1305 # implicit path substitutions. E.g. if /sdcard on a particular device does 1306 # not map to external storage, the system will replace it with the external 1307 # storage path prefix for that device and copy the file there. 1308 # 1309 # <p> It is strongly advised to use the <a href= 1310 # "http://developer.android.com/reference/android/os/Environment.html"> 1311 # Environment API</a> in app and test code to access files on the device in a 1312 # portable way. 1313 }, 1314 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file. 1315 "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by 1316 # Android 1317 # e.g. [main|patch].0300110.com.example.android.obb 1318 # which will be installed into 1319 # \<shared-storage\>/Android/obb/\<package-name\>/ 1320 # on the device. 1321 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device. 1322 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1323 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1324 }, 1325 }, 1326 }, 1327 ], 1328 "additionalApks": [ # APKs to install in addition to those being directly tested. 1329 # Currently capped at 100. 1330 { # An Android package file to install. 1331 "packageName": "A String", # The java package for the APK to be installed. 1332 # Value is determined by examining the application's manifest. 1333 "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. 1334 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1335 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1336 }, 1337 }, 1338 ], 1339 "environmentVariables": [ # Environment variables to set for the test (only applicable for 1340 # instrumentation tests). 1341 { # A key-value pair passed as an environment variable to the test. 1342 "value": "A String", # Value for the environment variable. 1343 "key": "A String", # Key for the environment variable. 1344 }, 1345 ], 1346 }, 1347 "disableVideoRecording": True or False, # Disables video recording. May reduce test latency. 1348 "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop. 1349 # The intent \<intent-name\> will be implicitly added, since Games is the only 1350 # user of this api, for the time being. 1351 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1352 # a base module directory, zero or more dynamic feature module directories. 1353 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1354 # building App Bundles. 1355 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1356 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1357 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1358 }, 1359 }, 1360 "scenarios": [ # The list of scenarios that should be run during the test. 1361 # The default is all test loops, derived from the application's 1362 # manifest. 1363 42, 1364 ], 1365 "appPackageId": "A String", # The java package for the application under test. 1366 # The default is determined by examining the application's manifest. 1367 "scenarioLabels": [ # The list of scenario labels that should be run during the test. 1368 # The scenario labels should map to labels defined in the application's 1369 # manifest. For example, player_experience and 1370 # com.google.test.loops.player_experience add all of the loops labeled in the 1371 # manifest with the com.google.test.loops.player_experience name to the 1372 # execution. 1373 # Scenarios can also be specified in the scenarios field. 1374 "A String", 1375 ], 1376 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1377 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1378 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1379 }, 1380 }, 1381 "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency. 1382 "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test. 1383 # or physical Android Device, finding culprits and crashes as it goes. 1384 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1385 # a base module directory, zero or more dynamic feature module directories. 1386 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1387 # building App Bundles. 1388 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1389 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1390 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1391 }, 1392 }, 1393 "roboDirectives": [ # A set of directives Robo should apply during the crawl. 1394 # This allows users to customize the crawl. For example, the username and 1395 # password for a test account can be provided. 1396 { # Directs Robo to interact with a specific UI element if it is encountered 1397 # during the crawl. Currently, Robo can perform text entry or element click. 1398 "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be 1399 # treated as a CLICK on the element matching the resource_name. 1400 "resourceName": "A String", # Required. The android resource name of the target UI element. 1401 # For example, 1402 # in Java: R.string.foo 1403 # in xml: @string/foo 1404 # Only the "foo" part is needed. 1405 # Reference doc: 1406 # https://developer.android.com/guide/topics/resources/accessing-resources.html 1407 "actionType": "A String", # Required. The type of action that Robo should perform on the specified 1408 # element. 1409 }, 1410 ], 1411 "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue 1412 # for the crawl. 1413 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1414 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1415 }, 1416 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1417 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1418 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1419 }, 1420 "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least 1421 # 2 to make Robo explore the app beyond the first activity. 1422 # Default is 50. 1423 "startingIntents": [ # The intents used to launch the app for the crawl. 1424 # If none are provided, then the main launcher activity is launched. 1425 # If some are provided, then only those provided are launched (the main 1426 # launcher activity must be provided explicitly). 1427 { # Message for specifying the start activities to crawl. 1428 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details. 1429 "action": "A String", # Action name. 1430 # Required for START_ACTIVITY. 1431 "uri": "A String", # URI for the action. 1432 "categories": [ # Intent categories to set on the intent. 1433 "A String", 1434 ], 1435 }, 1436 "timeout": "A String", # Timeout in seconds for each intent. 1437 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity. 1438 }, 1439 }, 1440 ], 1441 "maxSteps": 42, # The max number of steps Robo can execute. 1442 # Default is no limit. 1443 "appPackageId": "A String", # The java package for the application under test. 1444 # The default value is determined by examining the application's manifest. 1445 "appInitialActivity": "A String", # The initial activity that should be used to start the app. 1446 }, 1447 "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test. 1448 # independently of its normal lifecycle. 1449 # Android instrumentation tests run an application APK and test APK inside the 1450 # same process on a virtual or physical AndroidDevice. They also specify 1451 # a test runner class, such as com.google.GoogleTestRunner, which can vary 1452 # on the specific instrumentation framework chosen. 1453 # 1454 # See <http://developer.android.com/tools/testing/testing_android.html> for 1455 # more information on types of Android tests. 1456 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1457 # a base module directory, zero or more dynamic feature module directories. 1458 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1459 # building App Bundles. 1460 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1461 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1462 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1463 }, 1464 }, 1465 "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed. 1466 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1467 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1468 }, 1469 "testRunnerClass": "A String", # The InstrumentationTestRunner class. 1470 # The default value is determined by examining the application's manifest. 1471 "testPackageId": "A String", # The java package for the test to be executed. 1472 # The default value is determined by examining the application's manifest. 1473 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1474 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1475 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1476 }, 1477 "appPackageId": "A String", # The java package for the application under test. 1478 # The default value is determined by examining the application's manifest. 1479 "orchestratorOption": "A String", # The option of whether running each test within its own invocation of 1480 # instrumentation with Android Test Orchestrator or not. 1481 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or 1482 # higher! ** 1483 # Orchestrator offers the following benefits: 1484 # - No shared state 1485 # - Crashes are isolated 1486 # - Logs are scoped per test 1487 # 1488 # See 1489 # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator> 1490 # for more information about Android Test Orchestrator. 1491 # 1492 # If not set, the test will be run without the orchestrator. 1493 "testTargets": [ # Each target must be fully qualified with the package name or class name, 1494 # in one of these formats: 1495 # - "package package_name" 1496 # - "class package_name.class_name" 1497 # - "class package_name.class_name#method_name" 1498 # 1499 # If empty, all targets in the module will be run. 1500 "A String", 1501 ], 1502 }, 1503 }, 1504 "testMatrixId": "A String", # Output only. Unique id set by the service. 1505 "timestamp": "A String", # Output only. The time this test matrix was initially created. 1506 "invalidMatrixDetails": "A String", # Output only. Describes why the matrix is considered invalid. 1507 # Only useful for matrices in the INVALID state. 1508 "environmentMatrix": { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on. 1509 "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 1510 # devices. 1511 "androidDevices": [ # Required. A list of Android devices. 1512 { # A single Android device. 1513 "locale": "A String", # Required. The locale the test device used for testing. 1514 # Use the TestEnvironmentDiscoveryService to get supported options. 1515 "androidVersionId": "A String", # Required. The id of the Android OS version to be used. 1516 # Use the TestEnvironmentDiscoveryService to get supported options. 1517 "androidModelId": "A String", # Required. The id of the Android device to be used. 1518 # Use the TestEnvironmentDiscoveryService to get supported options. 1519 "orientation": "A String", # Required. How the device is oriented during the test. 1520 # Use the TestEnvironmentDiscoveryService to get supported options. 1521 }, 1522 ], 1523 }, 1524 "androidMatrix": { # A set of Android device configuration permutations is defined by the # A matrix of Android devices. 1525 # the cross-product of the given axes. Internally, the given AndroidMatrix 1526 # will be expanded into a set of AndroidDevices. 1527 # 1528 # Only supported permutations will be instantiated. Invalid permutations 1529 # (e.g., incompatible models/versions) are ignored. 1530 "locales": [ # Required. The set of locales the test device will enable for testing. 1531 # Use the TestEnvironmentDiscoveryService to get supported options. 1532 "A String", 1533 ], 1534 "androidModelIds": [ # Required. The ids of the set of Android device to be used. 1535 # Use the TestEnvironmentDiscoveryService to get supported options. 1536 "A String", 1537 ], 1538 "androidVersionIds": [ # Required. The ids of the set of Android OS version to be used. 1539 # Use the TestEnvironmentDiscoveryService to get supported options. 1540 "A String", 1541 ], 1542 "orientations": [ # Required. The set of orientations to test with. 1543 # Use the TestEnvironmentDiscoveryService to get supported options. 1544 "A String", 1545 ], 1546 }, 1547 "iosDeviceList": { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices. 1548 "iosDevices": [ # Required. A list of iOS devices. 1549 { # A single iOS device. 1550 "locale": "A String", # Required. The locale the test device used for testing. 1551 # Use the TestEnvironmentDiscoveryService to get supported options. 1552 "iosVersionId": "A String", # Required. The id of the iOS major software version to be used. 1553 # Use the TestEnvironmentDiscoveryService to get supported options. 1554 "orientation": "A String", # Required. How the device is oriented during the test. 1555 # Use the TestEnvironmentDiscoveryService to get supported options. 1556 "iosModelId": "A String", # Required. The id of the iOS device to be used. 1557 # Use the TestEnvironmentDiscoveryService to get supported options. 1558 }, 1559 ], 1560 }, 1561 }, 1562 "outcomeSummary": "A String", # Output Only. The overall outcome of the test. 1563 # Only set when the test matrix state is FINISHED. 1564 }</pre> 1565</div> 1566 1567<div class="method"> 1568 <code class="details" id="get">get(projectId, testMatrixId, x__xgafv=None)</code> 1569 <pre>Checks the status of a test matrix. 1570 1571May return any of the following canonical error codes: 1572 1573- PERMISSION_DENIED - if the user is not authorized to read project 1574- INVALID_ARGUMENT - if the request is malformed 1575- NOT_FOUND - if the Test Matrix does not exist 1576 1577Args: 1578 projectId: string, Cloud project that owns the test matrix. (required) 1579 testMatrixId: string, Unique test matrix id which was assigned by the service. (required) 1580 x__xgafv: string, V1 error format. 1581 Allowed values 1582 1 - v1 error format 1583 2 - v2 error format 1584 1585Returns: 1586 An object of the form: 1587 1588 { # TestMatrix captures all details about a test. It contains the environment 1589 # configuration, test specification, test executions and overall state and 1590 # outcome. 1591 "clientInfo": { # Information about the client which invoked the test. # Information about the client which invoked the test. 1592 "clientInfoDetails": [ # The list of detailed information about client. 1593 { # Key-value pair of detailed information about the client which invoked the 1594 # test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}. 1595 "key": "A String", # Required. The key of detailed client information. 1596 "value": "A String", # Required. The value of detailed client information. 1597 }, 1598 ], 1599 "name": "A String", # Required. Client name, such as gcloud. 1600 }, 1601 "projectId": "A String", # The cloud project that owns the test matrix. 1602 "resultStorage": { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written. 1603 "toolResultsHistory": { # Represents a tool results history resource. # The tool results history that contains the tool results execution that 1604 # results are written to. 1605 # 1606 # If not provided, the service will choose an appropriate value. 1607 "projectId": "A String", # Required. The cloud project that owns the tool results history. 1608 "historyId": "A String", # Required. A tool results history ID. 1609 }, 1610 "googleCloudStorage": { # A storage location within Google cloud storage (GCS). # Required. 1611 "gcsPath": "A String", # Required. The path to a directory in GCS that will 1612 # eventually contain the results for this test. 1613 # The requesting user must have write access on the bucket in the supplied 1614 # path. 1615 }, 1616 "toolResultsExecution": { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to. 1617 # 1618 # This has the results of a TestMatrix. 1619 "projectId": "A String", # Output only. The cloud project that owns the tool results execution. 1620 "executionId": "A String", # Output only. A tool results execution ID. 1621 "historyId": "A String", # Output only. A tool results history ID. 1622 }, 1623 "resultsUrl": "A String", # Output only. URL to the results in the Firebase Web Console. 1624 }, 1625 "flakyTestAttempts": 42, # The number of times a TestExecution should be re-attempted if one or more 1626 # of its test cases fail for any reason. 1627 # The maximum number of reruns allowed is 10. 1628 # 1629 # Default is 0, which implies no reruns. 1630 "state": "A String", # Output only. Indicates the current progress of the test matrix. 1631 "testExecutions": [ # Output only. The list of test executions that the service creates for 1632 # this matrix. 1633 { # A single test executed in a single environment. 1634 "timestamp": "A String", # Output only. The time this test execution was initially created. 1635 "matrixId": "A String", # Output only. Id of the containing TestMatrix. 1636 "testSpecification": { # A description of how to run the test. # Output only. How to run the test. 1637 "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS. 1638 "networkProfile": "A String", # The network traffic profile used for running the test. 1639 # Available network profiles can be queried by using the 1640 # NETWORK_CONFIGURATION environment type when calling 1641 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 1642 }, 1643 "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file. 1644 # Xcode supports the option to "build for testing", which generates an 1645 # .xctestrun file that contains a test specification (arguments, test methods, 1646 # etc). This test type accepts a zip file containing the .xctestrun file and 1647 # the corresponding contents of the Build/Products directory that contains all 1648 # the binaries needed to run the tests. 1649 "xcodeVersion": "A String", # The Xcode version that should be used for the test. 1650 # Use the TestEnvironmentDiscoveryService to get supported options. 1651 # Defaults to the latest Xcode version Firebase Test Lab supports. 1652 "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the 1653 # tests zip. Because the .xctestrun file contains environment variables along 1654 # with test methods to run and/or ignore, this can be useful for sharding 1655 # tests. Default is taken from the tests zip. 1656 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1657 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1658 }, 1659 "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the 1660 # DerivedData/Build/Products directory. 1661 # The .xctestrun file in this zip is ignored if the xctestrun field is 1662 # specified. 1663 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1664 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1665 }, 1666 "appBundleId": "A String", # Output only. The bundle id for the application under test. 1667 }, 1668 "testTimeout": "A String", # Max time a test execution is allowed to run before it is 1669 # automatically cancelled. 1670 # The default value is 5 min. 1671 "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 1672 # scripts. 1673 "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. 1674 "googleAuto": { # Enables automatic Google account login. # An automatic google login account. 1675 # If set, the service automatically generates a Google test account and adds 1676 # it to the device, before executing the test. Note that test accounts might be 1677 # reused. 1678 # Many applications show their full set of functionalities when an account is 1679 # present on the device. Logging into the device with these generated accounts 1680 # allows testing more functionalities. 1681 }, 1682 }, 1683 "networkProfile": "A String", # The network traffic profile used for running the test. 1684 # Available network profiles can be queried by using the 1685 # NETWORK_CONFIGURATION environment type when calling 1686 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 1687 "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test; 1688 # they must be absolute paths under /sdcard or /data/local/tmp. 1689 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and / 1690 # 1691 # Note: The paths /sdcard and /data will be made available and treated as 1692 # implicit path substitutions. E.g. if /sdcard on a particular device does 1693 # not map to external storage, the system will replace it with the external 1694 # storage path prefix for that device. 1695 "A String", 1696 ], 1697 "filesToPush": [ # List of files to push to the device before starting the test. 1698 { # A single device file description. 1699 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file. 1700 "content": { # A reference to a file, used for user inputs. # Required. The source file. 1701 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1702 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1703 }, 1704 "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute, 1705 # whitelisted path. If the file exists, it will be replaced. 1706 # The following device-side directories and any of their subdirectories are 1707 # whitelisted: 1708 # <p>${EXTERNAL_STORAGE}, or /sdcard</p> 1709 # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p> 1710 # <p>Specifying a path outside of these directory trees is invalid. 1711 # 1712 # <p> The paths /sdcard and /data will be made available and treated as 1713 # implicit path substitutions. E.g. if /sdcard on a particular device does 1714 # not map to external storage, the system will replace it with the external 1715 # storage path prefix for that device and copy the file there. 1716 # 1717 # <p> It is strongly advised to use the <a href= 1718 # "http://developer.android.com/reference/android/os/Environment.html"> 1719 # Environment API</a> in app and test code to access files on the device in a 1720 # portable way. 1721 }, 1722 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file. 1723 "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by 1724 # Android 1725 # e.g. [main|patch].0300110.com.example.android.obb 1726 # which will be installed into 1727 # \<shared-storage\>/Android/obb/\<package-name\>/ 1728 # on the device. 1729 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device. 1730 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1731 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1732 }, 1733 }, 1734 }, 1735 ], 1736 "additionalApks": [ # APKs to install in addition to those being directly tested. 1737 # Currently capped at 100. 1738 { # An Android package file to install. 1739 "packageName": "A String", # The java package for the APK to be installed. 1740 # Value is determined by examining the application's manifest. 1741 "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. 1742 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1743 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1744 }, 1745 }, 1746 ], 1747 "environmentVariables": [ # Environment variables to set for the test (only applicable for 1748 # instrumentation tests). 1749 { # A key-value pair passed as an environment variable to the test. 1750 "value": "A String", # Value for the environment variable. 1751 "key": "A String", # Key for the environment variable. 1752 }, 1753 ], 1754 }, 1755 "disableVideoRecording": True or False, # Disables video recording. May reduce test latency. 1756 "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop. 1757 # The intent \<intent-name\> will be implicitly added, since Games is the only 1758 # user of this api, for the time being. 1759 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1760 # a base module directory, zero or more dynamic feature module directories. 1761 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1762 # building App Bundles. 1763 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1764 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1765 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1766 }, 1767 }, 1768 "scenarios": [ # The list of scenarios that should be run during the test. 1769 # The default is all test loops, derived from the application's 1770 # manifest. 1771 42, 1772 ], 1773 "appPackageId": "A String", # The java package for the application under test. 1774 # The default is determined by examining the application's manifest. 1775 "scenarioLabels": [ # The list of scenario labels that should be run during the test. 1776 # The scenario labels should map to labels defined in the application's 1777 # manifest. For example, player_experience and 1778 # com.google.test.loops.player_experience add all of the loops labeled in the 1779 # manifest with the com.google.test.loops.player_experience name to the 1780 # execution. 1781 # Scenarios can also be specified in the scenarios field. 1782 "A String", 1783 ], 1784 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1785 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1786 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1787 }, 1788 }, 1789 "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency. 1790 "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test. 1791 # or physical Android Device, finding culprits and crashes as it goes. 1792 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1793 # a base module directory, zero or more dynamic feature module directories. 1794 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1795 # building App Bundles. 1796 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1797 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1798 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1799 }, 1800 }, 1801 "roboDirectives": [ # A set of directives Robo should apply during the crawl. 1802 # This allows users to customize the crawl. For example, the username and 1803 # password for a test account can be provided. 1804 { # Directs Robo to interact with a specific UI element if it is encountered 1805 # during the crawl. Currently, Robo can perform text entry or element click. 1806 "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be 1807 # treated as a CLICK on the element matching the resource_name. 1808 "resourceName": "A String", # Required. The android resource name of the target UI element. 1809 # For example, 1810 # in Java: R.string.foo 1811 # in xml: @string/foo 1812 # Only the "foo" part is needed. 1813 # Reference doc: 1814 # https://developer.android.com/guide/topics/resources/accessing-resources.html 1815 "actionType": "A String", # Required. The type of action that Robo should perform on the specified 1816 # element. 1817 }, 1818 ], 1819 "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue 1820 # for the crawl. 1821 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1822 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1823 }, 1824 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1825 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1826 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1827 }, 1828 "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least 1829 # 2 to make Robo explore the app beyond the first activity. 1830 # Default is 50. 1831 "startingIntents": [ # The intents used to launch the app for the crawl. 1832 # If none are provided, then the main launcher activity is launched. 1833 # If some are provided, then only those provided are launched (the main 1834 # launcher activity must be provided explicitly). 1835 { # Message for specifying the start activities to crawl. 1836 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details. 1837 "action": "A String", # Action name. 1838 # Required for START_ACTIVITY. 1839 "uri": "A String", # URI for the action. 1840 "categories": [ # Intent categories to set on the intent. 1841 "A String", 1842 ], 1843 }, 1844 "timeout": "A String", # Timeout in seconds for each intent. 1845 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity. 1846 }, 1847 }, 1848 ], 1849 "maxSteps": 42, # The max number of steps Robo can execute. 1850 # Default is no limit. 1851 "appPackageId": "A String", # The java package for the application under test. 1852 # The default value is determined by examining the application's manifest. 1853 "appInitialActivity": "A String", # The initial activity that should be used to start the app. 1854 }, 1855 "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test. 1856 # independently of its normal lifecycle. 1857 # Android instrumentation tests run an application APK and test APK inside the 1858 # same process on a virtual or physical AndroidDevice. They also specify 1859 # a test runner class, such as com.google.GoogleTestRunner, which can vary 1860 # on the specific instrumentation framework chosen. 1861 # 1862 # See <http://developer.android.com/tools/testing/testing_android.html> for 1863 # more information on types of Android tests. 1864 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 1865 # a base module directory, zero or more dynamic feature module directories. 1866 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 1867 # building App Bundles. 1868 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 1869 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1870 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1871 }, 1872 }, 1873 "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed. 1874 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1875 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1876 }, 1877 "testRunnerClass": "A String", # The InstrumentationTestRunner class. 1878 # The default value is determined by examining the application's manifest. 1879 "testPackageId": "A String", # The java package for the test to be executed. 1880 # The default value is determined by examining the application's manifest. 1881 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 1882 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1883 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1884 }, 1885 "appPackageId": "A String", # The java package for the application under test. 1886 # The default value is determined by examining the application's manifest. 1887 "orchestratorOption": "A String", # The option of whether running each test within its own invocation of 1888 # instrumentation with Android Test Orchestrator or not. 1889 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or 1890 # higher! ** 1891 # Orchestrator offers the following benefits: 1892 # - No shared state 1893 # - Crashes are isolated 1894 # - Logs are scoped per test 1895 # 1896 # See 1897 # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator> 1898 # for more information about Android Test Orchestrator. 1899 # 1900 # If not set, the test will be run without the orchestrator. 1901 "testTargets": [ # Each target must be fully qualified with the package name or class name, 1902 # in one of these formats: 1903 # - "package package_name" 1904 # - "class package_name.class_name" 1905 # - "class package_name.class_name#method_name" 1906 # 1907 # If empty, all targets in the module will be run. 1908 "A String", 1909 ], 1910 }, 1911 }, 1912 "testDetails": { # Additional details about the progress of the running test. # Output only. Additional details about the running test. 1913 "progressMessages": [ # Output only. Human-readable, detailed descriptions of the test's progress. 1914 # For example: "Provisioning a device", "Starting Test". 1915 # 1916 # During the course of execution new data may be appended 1917 # to the end of progress_messages. 1918 "A String", 1919 ], 1920 "errorMessage": "A String", # Output only. If the TestState is ERROR, then this string will contain 1921 # human-readable details about the error. 1922 }, 1923 "environment": { # The environment in which the test is run. # Output only. How the host machine(s) are configured. 1924 "iosDevice": { # A single iOS device. # An iOS device which must be used with an iOS test. 1925 "locale": "A String", # Required. The locale the test device used for testing. 1926 # Use the TestEnvironmentDiscoveryService to get supported options. 1927 "iosVersionId": "A String", # Required. The id of the iOS major software version to be used. 1928 # Use the TestEnvironmentDiscoveryService to get supported options. 1929 "orientation": "A String", # Required. How the device is oriented during the test. 1930 # Use the TestEnvironmentDiscoveryService to get supported options. 1931 "iosModelId": "A String", # Required. The id of the iOS device to be used. 1932 # Use the TestEnvironmentDiscoveryService to get supported options. 1933 }, 1934 "androidDevice": { # A single Android device. # An Android device which must be used with an Android test. 1935 "locale": "A String", # Required. The locale the test device used for testing. 1936 # Use the TestEnvironmentDiscoveryService to get supported options. 1937 "androidVersionId": "A String", # Required. The id of the Android OS version to be used. 1938 # Use the TestEnvironmentDiscoveryService to get supported options. 1939 "androidModelId": "A String", # Required. The id of the Android device to be used. 1940 # Use the TestEnvironmentDiscoveryService to get supported options. 1941 "orientation": "A String", # Required. How the device is oriented during the test. 1942 # Use the TestEnvironmentDiscoveryService to get supported options. 1943 }, 1944 }, 1945 "state": "A String", # Output only. Indicates the current progress of the test execution 1946 # (e.g., FINISHED). 1947 "projectId": "A String", # Output only. The cloud project that owns the test execution. 1948 "toolResultsStep": { # Represents a tool results step resource. # Output only. Where the results for this execution are written. 1949 # 1950 # This has the results of a TestExecution. 1951 "projectId": "A String", # Output only. The cloud project that owns the tool results step. 1952 "executionId": "A String", # Output only. A tool results execution ID. 1953 "stepId": "A String", # Output only. A tool results step ID. 1954 "historyId": "A String", # Output only. A tool results history ID. 1955 }, 1956 "id": "A String", # Output only. Unique id set by the service. 1957 }, 1958 ], 1959 "testSpecification": { # A description of how to run the test. # Required. How to run the test. 1960 "iosTestSetup": { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS. 1961 "networkProfile": "A String", # The network traffic profile used for running the test. 1962 # Available network profiles can be queried by using the 1963 # NETWORK_CONFIGURATION environment type when calling 1964 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 1965 }, 1966 "iosXcTest": { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file. 1967 # Xcode supports the option to "build for testing", which generates an 1968 # .xctestrun file that contains a test specification (arguments, test methods, 1969 # etc). This test type accepts a zip file containing the .xctestrun file and 1970 # the corresponding contents of the Build/Products directory that contains all 1971 # the binaries needed to run the tests. 1972 "xcodeVersion": "A String", # The Xcode version that should be used for the test. 1973 # Use the TestEnvironmentDiscoveryService to get supported options. 1974 # Defaults to the latest Xcode version Firebase Test Lab supports. 1975 "xctestrun": { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the 1976 # tests zip. Because the .xctestrun file contains environment variables along 1977 # with test methods to run and/or ignore, this can be useful for sharding 1978 # tests. Default is taken from the tests zip. 1979 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1980 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1981 }, 1982 "testsZip": { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the 1983 # DerivedData/Build/Products directory. 1984 # The .xctestrun file in this zip is ignored if the xctestrun field is 1985 # specified. 1986 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 1987 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 1988 }, 1989 "appBundleId": "A String", # Output only. The bundle id for the application under test. 1990 }, 1991 "testTimeout": "A String", # Max time a test execution is allowed to run before it is 1992 # automatically cancelled. 1993 # The default value is 5 min. 1994 "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 1995 # scripts. 1996 "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. 1997 "googleAuto": { # Enables automatic Google account login. # An automatic google login account. 1998 # If set, the service automatically generates a Google test account and adds 1999 # it to the device, before executing the test. Note that test accounts might be 2000 # reused. 2001 # Many applications show their full set of functionalities when an account is 2002 # present on the device. Logging into the device with these generated accounts 2003 # allows testing more functionalities. 2004 }, 2005 }, 2006 "networkProfile": "A String", # The network traffic profile used for running the test. 2007 # Available network profiles can be queried by using the 2008 # NETWORK_CONFIGURATION environment type when calling 2009 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. 2010 "directoriesToPull": [ # List of directories on the device to upload to GCS at the end of the test; 2011 # they must be absolute paths under /sdcard or /data/local/tmp. 2012 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and / 2013 # 2014 # Note: The paths /sdcard and /data will be made available and treated as 2015 # implicit path substitutions. E.g. if /sdcard on a particular device does 2016 # not map to external storage, the system will replace it with the external 2017 # storage path prefix for that device. 2018 "A String", 2019 ], 2020 "filesToPush": [ # List of files to push to the device before starting the test. 2021 { # A single device file description. 2022 "regularFile": { # A file or directory to install on the device before the test starts. # A reference to a regular file. 2023 "content": { # A reference to a file, used for user inputs. # Required. The source file. 2024 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2025 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2026 }, 2027 "devicePath": "A String", # Required. Where to put the content on the device. Must be an absolute, 2028 # whitelisted path. If the file exists, it will be replaced. 2029 # The following device-side directories and any of their subdirectories are 2030 # whitelisted: 2031 # <p>${EXTERNAL_STORAGE}, or /sdcard</p> 2032 # <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p> 2033 # <p>Specifying a path outside of these directory trees is invalid. 2034 # 2035 # <p> The paths /sdcard and /data will be made available and treated as 2036 # implicit path substitutions. E.g. if /sdcard on a particular device does 2037 # not map to external storage, the system will replace it with the external 2038 # storage path prefix for that device and copy the file there. 2039 # 2040 # <p> It is strongly advised to use the <a href= 2041 # "http://developer.android.com/reference/android/os/Environment.html"> 2042 # Environment API</a> in app and test code to access files on the device in a 2043 # portable way. 2044 }, 2045 "obbFile": { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file. 2046 "obbFileName": "A String", # Required. OBB file name which must conform to the format as specified by 2047 # Android 2048 # e.g. [main|patch].0300110.com.example.android.obb 2049 # which will be installed into 2050 # \<shared-storage\>/Android/obb/\<package-name\>/ 2051 # on the device. 2052 "obb": { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device. 2053 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2054 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2055 }, 2056 }, 2057 }, 2058 ], 2059 "additionalApks": [ # APKs to install in addition to those being directly tested. 2060 # Currently capped at 100. 2061 { # An Android package file to install. 2062 "packageName": "A String", # The java package for the APK to be installed. 2063 # Value is determined by examining the application's manifest. 2064 "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. 2065 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2066 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2067 }, 2068 }, 2069 ], 2070 "environmentVariables": [ # Environment variables to set for the test (only applicable for 2071 # instrumentation tests). 2072 { # A key-value pair passed as an environment variable to the test. 2073 "value": "A String", # Value for the environment variable. 2074 "key": "A String", # Key for the environment variable. 2075 }, 2076 ], 2077 }, 2078 "disableVideoRecording": True or False, # Disables video recording. May reduce test latency. 2079 "androidTestLoop": { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop. 2080 # The intent \<intent-name\> will be implicitly added, since Games is the only 2081 # user of this api, for the time being. 2082 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 2083 # a base module directory, zero or more dynamic feature module directories. 2084 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 2085 # building App Bundles. 2086 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 2087 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2088 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2089 }, 2090 }, 2091 "scenarios": [ # The list of scenarios that should be run during the test. 2092 # The default is all test loops, derived from the application's 2093 # manifest. 2094 42, 2095 ], 2096 "appPackageId": "A String", # The java package for the application under test. 2097 # The default is determined by examining the application's manifest. 2098 "scenarioLabels": [ # The list of scenario labels that should be run during the test. 2099 # The scenario labels should map to labels defined in the application's 2100 # manifest. For example, player_experience and 2101 # com.google.test.loops.player_experience add all of the loops labeled in the 2102 # manifest with the com.google.test.loops.player_experience name to the 2103 # execution. 2104 # Scenarios can also be specified in the scenarios field. 2105 "A String", 2106 ], 2107 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 2108 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2109 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2110 }, 2111 }, 2112 "disablePerformanceMetrics": True or False, # Disables performance metrics recording. May reduce test latency. 2113 "androidRoboTest": { # A test of an android application that explores the application on a virtual # An Android robo test. 2114 # or physical Android Device, finding culprits and crashes as it goes. 2115 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 2116 # a base module directory, zero or more dynamic feature module directories. 2117 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 2118 # building App Bundles. 2119 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 2120 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2121 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2122 }, 2123 }, 2124 "roboDirectives": [ # A set of directives Robo should apply during the crawl. 2125 # This allows users to customize the crawl. For example, the username and 2126 # password for a test account can be provided. 2127 { # Directs Robo to interact with a specific UI element if it is encountered 2128 # during the crawl. Currently, Robo can perform text entry or element click. 2129 "inputText": "A String", # The text that Robo is directed to set. If left empty, the directive will be 2130 # treated as a CLICK on the element matching the resource_name. 2131 "resourceName": "A String", # Required. The android resource name of the target UI element. 2132 # For example, 2133 # in Java: R.string.foo 2134 # in xml: @string/foo 2135 # Only the "foo" part is needed. 2136 # Reference doc: 2137 # https://developer.android.com/guide/topics/resources/accessing-resources.html 2138 "actionType": "A String", # Required. The type of action that Robo should perform on the specified 2139 # element. 2140 }, 2141 ], 2142 "roboScript": { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue 2143 # for the crawl. 2144 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2145 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2146 }, 2147 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 2148 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2149 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2150 }, 2151 "maxDepth": 42, # The max depth of the traversal stack Robo can explore. Needs to be at least 2152 # 2 to make Robo explore the app beyond the first activity. 2153 # Default is 50. 2154 "startingIntents": [ # The intents used to launch the app for the crawl. 2155 # If none are provided, then the main launcher activity is launched. 2156 # If some are provided, then only those provided are launched (the main 2157 # launcher activity must be provided explicitly). 2158 { # Message for specifying the start activities to crawl. 2159 "startActivity": { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details. 2160 "action": "A String", # Action name. 2161 # Required for START_ACTIVITY. 2162 "uri": "A String", # URI for the action. 2163 "categories": [ # Intent categories to set on the intent. 2164 "A String", 2165 ], 2166 }, 2167 "timeout": "A String", # Timeout in seconds for each intent. 2168 "launcherActivity": { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity. 2169 }, 2170 }, 2171 ], 2172 "maxSteps": 42, # The max number of steps Robo can execute. 2173 # Default is no limit. 2174 "appPackageId": "A String", # The java package for the application under test. 2175 # The default value is determined by examining the application's manifest. 2176 "appInitialActivity": "A String", # The initial activity that should be used to start the app. 2177 }, 2178 "androidInstrumentationTest": { # A test of an Android application that can control an Android component # An Android instrumentation test. 2179 # independently of its normal lifecycle. 2180 # Android instrumentation tests run an application APK and test APK inside the 2181 # same process on a virtual or physical AndroidDevice. They also specify 2182 # a test runner class, such as com.google.GoogleTestRunner, which can vary 2183 # on the specific instrumentation framework chosen. 2184 # 2185 # See <http://developer.android.com/tools/testing/testing_android.html> for 2186 # more information on types of Android tests. 2187 "appBundle": { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test. 2188 # a base module directory, zero or more dynamic feature module directories. 2189 # <p>See https://developer.android.com/guide/app-bundle/build for guidance on 2190 # building App Bundles. 2191 "bundleLocation": { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test. 2192 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2193 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2194 }, 2195 }, 2196 "testApk": { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed. 2197 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2198 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2199 }, 2200 "testRunnerClass": "A String", # The InstrumentationTestRunner class. 2201 # The default value is determined by examining the application's manifest. 2202 "testPackageId": "A String", # The java package for the test to be executed. 2203 # The default value is determined by examining the application's manifest. 2204 "appApk": { # A reference to a file, used for user inputs. # The APK for the application under test. 2205 "gcsPath": "A String", # A path to a file in Google Cloud Storage. 2206 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk 2207 }, 2208 "appPackageId": "A String", # The java package for the application under test. 2209 # The default value is determined by examining the application's manifest. 2210 "orchestratorOption": "A String", # The option of whether running each test within its own invocation of 2211 # instrumentation with Android Test Orchestrator or not. 2212 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or 2213 # higher! ** 2214 # Orchestrator offers the following benefits: 2215 # - No shared state 2216 # - Crashes are isolated 2217 # - Logs are scoped per test 2218 # 2219 # See 2220 # <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator> 2221 # for more information about Android Test Orchestrator. 2222 # 2223 # If not set, the test will be run without the orchestrator. 2224 "testTargets": [ # Each target must be fully qualified with the package name or class name, 2225 # in one of these formats: 2226 # - "package package_name" 2227 # - "class package_name.class_name" 2228 # - "class package_name.class_name#method_name" 2229 # 2230 # If empty, all targets in the module will be run. 2231 "A String", 2232 ], 2233 }, 2234 }, 2235 "testMatrixId": "A String", # Output only. Unique id set by the service. 2236 "timestamp": "A String", # Output only. The time this test matrix was initially created. 2237 "invalidMatrixDetails": "A String", # Output only. Describes why the matrix is considered invalid. 2238 # Only useful for matrices in the INVALID state. 2239 "environmentMatrix": { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on. 2240 "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 2241 # devices. 2242 "androidDevices": [ # Required. A list of Android devices. 2243 { # A single Android device. 2244 "locale": "A String", # Required. The locale the test device used for testing. 2245 # Use the TestEnvironmentDiscoveryService to get supported options. 2246 "androidVersionId": "A String", # Required. The id of the Android OS version to be used. 2247 # Use the TestEnvironmentDiscoveryService to get supported options. 2248 "androidModelId": "A String", # Required. The id of the Android device to be used. 2249 # Use the TestEnvironmentDiscoveryService to get supported options. 2250 "orientation": "A String", # Required. How the device is oriented during the test. 2251 # Use the TestEnvironmentDiscoveryService to get supported options. 2252 }, 2253 ], 2254 }, 2255 "androidMatrix": { # A set of Android device configuration permutations is defined by the # A matrix of Android devices. 2256 # the cross-product of the given axes. Internally, the given AndroidMatrix 2257 # will be expanded into a set of AndroidDevices. 2258 # 2259 # Only supported permutations will be instantiated. Invalid permutations 2260 # (e.g., incompatible models/versions) are ignored. 2261 "locales": [ # Required. The set of locales the test device will enable for testing. 2262 # Use the TestEnvironmentDiscoveryService to get supported options. 2263 "A String", 2264 ], 2265 "androidModelIds": [ # Required. The ids of the set of Android device to be used. 2266 # Use the TestEnvironmentDiscoveryService to get supported options. 2267 "A String", 2268 ], 2269 "androidVersionIds": [ # Required. The ids of the set of Android OS version to be used. 2270 # Use the TestEnvironmentDiscoveryService to get supported options. 2271 "A String", 2272 ], 2273 "orientations": [ # Required. The set of orientations to test with. 2274 # Use the TestEnvironmentDiscoveryService to get supported options. 2275 "A String", 2276 ], 2277 }, 2278 "iosDeviceList": { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices. 2279 "iosDevices": [ # Required. A list of iOS devices. 2280 { # A single iOS device. 2281 "locale": "A String", # Required. The locale the test device used for testing. 2282 # Use the TestEnvironmentDiscoveryService to get supported options. 2283 "iosVersionId": "A String", # Required. The id of the iOS major software version to be used. 2284 # Use the TestEnvironmentDiscoveryService to get supported options. 2285 "orientation": "A String", # Required. How the device is oriented during the test. 2286 # Use the TestEnvironmentDiscoveryService to get supported options. 2287 "iosModelId": "A String", # Required. The id of the iOS device to be used. 2288 # Use the TestEnvironmentDiscoveryService to get supported options. 2289 }, 2290 ], 2291 }, 2292 }, 2293 "outcomeSummary": "A String", # Output Only. The overall outcome of the test. 2294 # Only set when the test matrix state is FINISHED. 2295 }</pre> 2296</div> 2297 2298</body></html>