blob: 247d9a3af77af40ad073d4350a6f309a01af152d [file] [log] [blame]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001<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>