blob: 2127e7ca8a4c8f90a6835ae88a61c671fbb62865 [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">
Dan O'Mearadd494642020-05-01 07:42:23 -070081 <code><a href="#create">create(projectId, body=None, requestId=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070082<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.
Bu Sun Kim65020912020-05-20 12:08:20 -0700111 &quot;testState&quot;: &quot;A String&quot;, # The current rolled-up state of the test matrix.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700112 # If this state is already final, then the cancelation request will
113 # have no effect.
114 }</pre>
115</div>
116
117<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -0700118 <code class="details" id="create">create(projectId, body=None, requestId=None, x__xgafv=None)</code>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700119 <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)
Dan O'Mearadd494642020-05-01 07:42:23 -0700131 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700132 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.
Bu Sun Kim65020912020-05-20 12:08:20 -0700137 &quot;testSpecification&quot;: { # A description of how to run the test. # Required. How to run the test.
138 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
139 # Xcode supports the option to &quot;build for testing&quot;, which generates an
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700140 # .xctestrun file that contains a test specification (arguments, test methods,
141 # etc). This test type accepts a zip file containing the .xctestrun file and
142 # the corresponding contents of the Build/Products directory that contains all
143 # the binaries needed to run the tests.
Bu Sun Kim65020912020-05-20 12:08:20 -0700144 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700145 # Use the TestEnvironmentDiscoveryService to get supported options.
146 # Defaults to the latest Xcode version Firebase Test Lab supports.
Bu Sun Kim65020912020-05-20 12:08:20 -0700147 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
148 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700149 # tests zip. Because the .xctestrun file contains environment variables along
150 # with test methods to run and/or ignore, this can be useful for sharding
151 # tests. Default is taken from the tests zip.
Bu Sun Kim65020912020-05-20 12:08:20 -0700152 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700153 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
154 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700155 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
156 # app having special entitlements with an explicit application-identifier.
157 # Currently supports testing aps-environment entitlement.
158 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700159 # DerivedData/Build/Products directory.
160 # The .xctestrun file in this zip is ignored if the xctestrun field is
161 # specified.
Bu Sun Kim65020912020-05-20 12:08:20 -0700162 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700163 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
164 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700165 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700166 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
Dan O'Mearadd494642020-05-01 07:42:23 -0700167 # This test type accepts an archived application (.ipa file) and a list of
168 # integer scenarios that will be executed on the app sequentially.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700169 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
170 # single scenario 0 if unspecified.
171 42,
172 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700173 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
174 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
175 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
176 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
177 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700178 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700179 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700180 # automatically cancelled.
181 # The default value is 5 min.
Bu Sun Kim65020912020-05-20 12:08:20 -0700182 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
183 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
184 # Available network profiles can be queried by using the
185 # NETWORK_CONFIGURATION environment type when calling
186 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
187 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700188 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
Dan O'Mearadd494642020-05-01 07:42:23 -0700189 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700190 # user of this api, for the time being.
Bu Sun Kim65020912020-05-20 12:08:20 -0700191 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
192 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
193 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
194 },
195 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
196 # The default is determined by examining the application&#x27;s manifest.
197 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
198 # a base module directory, zero or more dynamic feature module directories.
199 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
200 # building App Bundles.
201 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
202 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
203 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
204 },
205 },
206 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
207 # The default is all test loops, derived from the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700208 # manifest.
209 42,
210 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700211 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
212 # The scenario labels should map to labels defined in the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700213 # manifest. For example, player_experience and
214 # com.google.test.loops.player_experience add all of the loops labeled in the
215 # manifest with the com.google.test.loops.player_experience name to the
216 # execution.
217 # Scenarios can also be specified in the scenarios field.
Bu Sun Kim65020912020-05-20 12:08:20 -0700218 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700219 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700220 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700221 &quot;testSetup&quot;: { # 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
222 # scripts.
223 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
224 { # A single device file description.
225 &quot;obbFile&quot;: { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
226 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
227 # Android
228 # e.g. [main|patch].0300110.com.example.android.obb
229 # which will be installed into
230 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
231 # on the device.
232 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
233 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
234 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
235 },
236 },
237 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
238 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
239 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
240 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
241 },
242 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
243 # whitelisted path. If the file exists, it will be replaced.
244 # The following device-side directories and any of their subdirectories are
245 # whitelisted:
246 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
247 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
248 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
249 #
250 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
251 # implicit path substitutions. E.g. if /sdcard on a particular device does
252 # not map to external storage, the system will replace it with the external
253 # storage path prefix for that device and copy the file there.
254 #
255 # &lt;p&gt; It is strongly advised to use the &lt;a href=
256 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
257 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
258 # portable way.
259 },
260 },
261 ],
262 &quot;account&quot;: { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
263 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
264 # If set, the service automatically generates a Google test account and adds
265 # it to the device, before executing the test. Note that test accounts might be
266 # reused.
267 # Many applications show their full set of functionalities when an account is
268 # present on the device. Logging into the device with these generated accounts
269 # allows testing more functionalities.
270 },
271 },
272 &quot;systrace&quot;: { # Systrace configuration for the run.
273 # If set a systrace will be taken, starting on test start and lasting for the
274 # configured duration. The systrace file thus obtained is put in the results
275 # bucket together with the other artifacts from the run.
276 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
277 # Should be between 1 and 30 seconds. 0 disables systrace.
278 },
279 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
280 # they must be absolute paths under /sdcard or /data/local/tmp.
281 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
282 #
283 # Note: The paths /sdcard and /data will be made available and treated as
284 # implicit path substitutions. E.g. if /sdcard on a particular device does
285 # not map to external storage, the system will replace it with the external
286 # storage path prefix for that device.
287 &quot;A String&quot;,
288 ],
289 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
290 # Available network profiles can be queried by using the
291 # NETWORK_CONFIGURATION environment type when calling
292 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
293 &quot;environmentVariables&quot;: [ # 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 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
297 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
298 },
299 ],
300 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
301 # Currently capped at 100.
302 { # An Android package file to install.
303 &quot;location&quot;: { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
304 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
305 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
306 },
307 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
308 # Value is determined by examining the application&#x27;s manifest.
309 },
310 ],
311 },
312 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
313 # or physical Android Device, finding culprits and crashes as it goes.
314 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
315 # 2 to make Robo explore the app beyond the first activity.
316 # Default is 50.
317 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
318 # The default value is determined by examining the application&#x27;s manifest.
319 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
320 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
321 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
322 },
323 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
324 # If none are provided, then the main launcher activity is launched.
325 # If some are provided, then only those provided are launched (the main
326 # launcher activity must be provided explicitly).
327 { # Message for specifying the start activities to crawl.
328 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
329 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
330 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
331 &quot;categories&quot;: [ # Intent categories to set on the intent.
332 &quot;A String&quot;,
333 ],
334 &quot;action&quot;: &quot;A String&quot;, # Action name.
335 # Required for START_ACTIVITY.
336 },
337 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
338 },
339 },
340 ],
341 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
342 # Default is no limit.
343 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
344 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
345 # This allows users to customize the crawl. For example, the username and
346 # password for a test account can be provided.
347 { # Directs Robo to interact with a specific UI element if it is encountered
348 # during the crawl. Currently, Robo can perform text entry or element click.
349 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
350 # element.
351 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
352 # For example,
353 # in Java: R.string.foo
354 # in xml: @string/foo
355 # Only the &quot;foo&quot; part is needed.
356 # Reference doc:
357 # https://developer.android.com/guide/topics/resources/accessing-resources.html
358 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
359 # treated as a CLICK on the element matching the resource_name.
360 },
361 ],
362 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
363 # a base module directory, zero or more dynamic feature module directories.
364 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
365 # building App Bundles.
366 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
367 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
368 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
369 },
370 },
371 &quot;roboScript&quot;: { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
372 # for the crawl.
373 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
374 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
375 },
376 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700377 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700378 # independently of its normal lifecycle.
379 # Android instrumentation tests run an application APK and test APK inside the
380 # same process on a virtual or physical AndroidDevice. They also specify
381 # a test runner class, such as com.google.GoogleTestRunner, which can vary
382 # on the specific instrumentation framework chosen.
383 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700384 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700385 # more information on types of Android tests.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700386 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
387 # a base module directory, zero or more dynamic feature module directories.
388 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
389 # building App Bundles.
390 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
391 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
392 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
393 },
394 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700395 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700396 # instrumentation with Android Test Orchestrator or not.
397 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
398 # higher! **
399 # Orchestrator offers the following benefits:
400 # - No shared state
401 # - Crashes are isolated
402 # - Logs are scoped per test
403 #
404 # See
Dan O'Mearadd494642020-05-01 07:42:23 -0700405 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700406 # for more information about Android Test Orchestrator.
407 #
408 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -0700409 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
410 # in one of these formats:
411 # - &quot;package package_name&quot;
412 # - &quot;class package_name.class_name&quot;
413 # - &quot;class package_name.class_name#method_name&quot;
414 #
415 # If empty, all targets in the module will be run.
416 &quot;A String&quot;,
417 ],
418 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
419 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
420 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
421 },
422 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
423 # The default value is determined by examining the application&#x27;s manifest.
424 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700425 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
426 #
427 # For Instrumentation test, it will be translated to “-e numShard” “-e
428 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
429 # specifying these sharding arguments via environment_variables is invalid.
430 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
431 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700432 &quot;manualSharding&quot;: { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
Dan O'Mearadd494642020-05-01 07:42:23 -0700433 # methods.
434 # methods.
435 #
436 # With manual sharding enabled, specifying test targets via
437 # environment_variables or in InstrumentationTest is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -0700438 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
Dan O'Mearadd494642020-05-01 07:42:23 -0700439 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
440 { # Test targets for a shard.
Bu Sun Kim65020912020-05-20 12:08:20 -0700441 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
Dan O'Mearadd494642020-05-01 07:42:23 -0700442 # The targets need to be specified in AndroidJUnitRunner argument format. For
443 # example, “package com.my.packages” “class com.my.package.MyClass”.
444 #
445 # The number of shard_test_targets must be greater than 0.
Bu Sun Kim65020912020-05-20 12:08:20 -0700446 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700447 ],
448 },
449 ],
450 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700451 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700452 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
453 # The default value is determined by examining the application&#x27;s manifest.
454 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
455 # The default value is determined by examining the application&#x27;s manifest.
456 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
457 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
458 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
459 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700460 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700461 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
462 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700463 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700464 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project that owns the test matrix.
465 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test matrix was initially created.
466 &quot;flakyTestAttempts&quot;: 42, # The number of times a TestExecution should be re-attempted if one or more
467 # of its test cases fail for any reason.
468 # The maximum number of reruns allowed is 10.
469 #
470 # Default is 0, which implies no reruns.
471 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test matrix.
472 &quot;clientInfo&quot;: { # Information about the client which invoked the test. # Information about the client which invoked the test.
473 &quot;clientInfoDetails&quot;: [ # The list of detailed information about client.
474 { # Key-value pair of detailed information about the client which invoked the
475 # test. Examples: {&#x27;Version&#x27;, &#x27;1.0&#x27;}, {&#x27;Release Track&#x27;, &#x27;BETA&#x27;}.
476 &quot;value&quot;: &quot;A String&quot;, # Required. The value of detailed client information.
477 &quot;key&quot;: &quot;A String&quot;, # Required. The key of detailed client information.
478 },
479 ],
480 &quot;name&quot;: &quot;A String&quot;, # Required. Client name, such as gcloud.
481 },
482 &quot;testExecutions&quot;: [ # Output only. The list of test executions that the service creates for
483 # this matrix.
484 { # A single test executed in a single environment.
Bu Sun Kim65020912020-05-20 12:08:20 -0700485 &quot;environment&quot;: { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
486 &quot;iosDevice&quot;: { # A single iOS device. # An iOS device which must be used with an iOS test.
487 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
488 # Use the TestEnvironmentDiscoveryService to get supported options.
489 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
490 # Use the TestEnvironmentDiscoveryService to get supported options.
491 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
492 # Use the TestEnvironmentDiscoveryService to get supported options.
493 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
494 # Use the TestEnvironmentDiscoveryService to get supported options.
495 },
496 &quot;androidDevice&quot;: { # A single Android device. # An Android device which must be used with an Android test.
Bu Sun Kim65020912020-05-20 12:08:20 -0700497 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
498 # Use the TestEnvironmentDiscoveryService to get supported options.
499 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
500 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700501 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
502 # Use the TestEnvironmentDiscoveryService to get supported options.
503 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
504 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700505 },
506 },
507 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test execution
508 # (e.g., FINISHED).
509 &quot;toolResultsStep&quot;: { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
510 #
511 # This has the results of a TestExecution.
Bu Sun Kim65020912020-05-20 12:08:20 -0700512 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results step.
513 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700514 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
515 &quot;stepId&quot;: &quot;A String&quot;, # Output only. A tool results step ID.
Bu Sun Kim65020912020-05-20 12:08:20 -0700516 },
517 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the test execution.
518 &quot;testSpecification&quot;: { # A description of how to run the test. # Output only. How to run the test.
519 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
520 # Xcode supports the option to &quot;build for testing&quot;, which generates an
521 # .xctestrun file that contains a test specification (arguments, test methods,
522 # etc). This test type accepts a zip file containing the .xctestrun file and
523 # the corresponding contents of the Build/Products directory that contains all
524 # the binaries needed to run the tests.
525 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
526 # Use the TestEnvironmentDiscoveryService to get supported options.
527 # Defaults to the latest Xcode version Firebase Test Lab supports.
528 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
529 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
530 # tests zip. Because the .xctestrun file contains environment variables along
531 # with test methods to run and/or ignore, this can be useful for sharding
532 # tests. Default is taken from the tests zip.
533 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
534 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
535 },
536 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
537 # app having special entitlements with an explicit application-identifier.
538 # Currently supports testing aps-environment entitlement.
539 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
540 # DerivedData/Build/Products directory.
541 # The .xctestrun file in this zip is ignored if the xctestrun field is
542 # specified.
543 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
544 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
545 },
546 },
547 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
548 # This test type accepts an archived application (.ipa file) and a list of
549 # integer scenarios that will be executed on the app sequentially.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700550 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
551 # single scenario 0 if unspecified.
552 42,
553 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700554 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
555 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
556 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
557 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
558 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700559 },
560 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
561 # automatically cancelled.
562 # The default value is 5 min.
563 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
564 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
565 # Available network profiles can be queried by using the
566 # NETWORK_CONFIGURATION environment type when calling
567 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
568 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700569 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
570 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
571 # user of this api, for the time being.
572 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
573 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
574 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
575 },
576 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
577 # The default is determined by examining the application&#x27;s manifest.
578 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
579 # a base module directory, zero or more dynamic feature module directories.
580 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
581 # building App Bundles.
582 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
583 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
584 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
585 },
586 },
587 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
588 # The default is all test loops, derived from the application&#x27;s
589 # manifest.
590 42,
591 ],
592 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
593 # The scenario labels should map to labels defined in the application&#x27;s
594 # manifest. For example, player_experience and
595 # com.google.test.loops.player_experience add all of the loops labeled in the
596 # manifest with the com.google.test.loops.player_experience name to the
597 # execution.
598 # Scenarios can also be specified in the scenarios field.
599 &quot;A String&quot;,
600 ],
601 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700602 &quot;testSetup&quot;: { # 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
603 # scripts.
604 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
605 { # A single device file description.
606 &quot;obbFile&quot;: { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
607 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
608 # Android
609 # e.g. [main|patch].0300110.com.example.android.obb
610 # which will be installed into
611 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
612 # on the device.
613 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
614 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
615 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
616 },
617 },
618 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
619 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
620 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
621 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
622 },
623 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
624 # whitelisted path. If the file exists, it will be replaced.
625 # The following device-side directories and any of their subdirectories are
626 # whitelisted:
627 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
628 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
629 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
630 #
631 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
632 # implicit path substitutions. E.g. if /sdcard on a particular device does
633 # not map to external storage, the system will replace it with the external
634 # storage path prefix for that device and copy the file there.
635 #
636 # &lt;p&gt; It is strongly advised to use the &lt;a href=
637 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
638 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
639 # portable way.
640 },
641 },
642 ],
643 &quot;account&quot;: { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
644 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
645 # If set, the service automatically generates a Google test account and adds
646 # it to the device, before executing the test. Note that test accounts might be
647 # reused.
648 # Many applications show their full set of functionalities when an account is
649 # present on the device. Logging into the device with these generated accounts
650 # allows testing more functionalities.
651 },
652 },
653 &quot;systrace&quot;: { # Systrace configuration for the run.
654 # If set a systrace will be taken, starting on test start and lasting for the
655 # configured duration. The systrace file thus obtained is put in the results
656 # bucket together with the other artifacts from the run.
657 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
658 # Should be between 1 and 30 seconds. 0 disables systrace.
659 },
660 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
661 # they must be absolute paths under /sdcard or /data/local/tmp.
662 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
663 #
664 # Note: The paths /sdcard and /data will be made available and treated as
665 # implicit path substitutions. E.g. if /sdcard on a particular device does
666 # not map to external storage, the system will replace it with the external
667 # storage path prefix for that device.
668 &quot;A String&quot;,
669 ],
670 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
671 # Available network profiles can be queried by using the
672 # NETWORK_CONFIGURATION environment type when calling
673 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
674 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
675 # instrumentation tests).
676 { # A key-value pair passed as an environment variable to the test.
677 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
678 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
679 },
680 ],
681 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
682 # Currently capped at 100.
683 { # An Android package file to install.
684 &quot;location&quot;: { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
685 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
686 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
687 },
688 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
689 # Value is determined by examining the application&#x27;s manifest.
690 },
691 ],
692 },
693 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
694 # or physical Android Device, finding culprits and crashes as it goes.
695 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
696 # 2 to make Robo explore the app beyond the first activity.
697 # Default is 50.
698 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
699 # The default value is determined by examining the application&#x27;s manifest.
700 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
701 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
702 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
703 },
704 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
705 # If none are provided, then the main launcher activity is launched.
706 # If some are provided, then only those provided are launched (the main
707 # launcher activity must be provided explicitly).
708 { # Message for specifying the start activities to crawl.
709 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
710 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
711 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
712 &quot;categories&quot;: [ # Intent categories to set on the intent.
713 &quot;A String&quot;,
714 ],
715 &quot;action&quot;: &quot;A String&quot;, # Action name.
716 # Required for START_ACTIVITY.
717 },
718 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
719 },
720 },
721 ],
722 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
723 # Default is no limit.
724 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
725 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
726 # This allows users to customize the crawl. For example, the username and
727 # password for a test account can be provided.
728 { # Directs Robo to interact with a specific UI element if it is encountered
729 # during the crawl. Currently, Robo can perform text entry or element click.
730 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
731 # element.
732 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
733 # For example,
734 # in Java: R.string.foo
735 # in xml: @string/foo
736 # Only the &quot;foo&quot; part is needed.
737 # Reference doc:
738 # https://developer.android.com/guide/topics/resources/accessing-resources.html
739 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
740 # treated as a CLICK on the element matching the resource_name.
741 },
742 ],
743 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
744 # a base module directory, zero or more dynamic feature module directories.
745 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
746 # building App Bundles.
747 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
748 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
749 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
750 },
751 },
752 &quot;roboScript&quot;: { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
753 # for the crawl.
754 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
755 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
756 },
757 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700758 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
759 # independently of its normal lifecycle.
760 # Android instrumentation tests run an application APK and test APK inside the
761 # same process on a virtual or physical AndroidDevice. They also specify
762 # a test runner class, such as com.google.GoogleTestRunner, which can vary
763 # on the specific instrumentation framework chosen.
764 #
765 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
766 # more information on types of Android tests.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700767 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
768 # a base module directory, zero or more dynamic feature module directories.
769 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
770 # building App Bundles.
771 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
772 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
773 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
774 },
775 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700776 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
777 # instrumentation with Android Test Orchestrator or not.
778 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
779 # higher! **
780 # Orchestrator offers the following benefits:
781 # - No shared state
782 # - Crashes are isolated
783 # - Logs are scoped per test
784 #
785 # See
786 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
787 # for more information about Android Test Orchestrator.
788 #
789 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -0700790 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
791 # in one of these formats:
792 # - &quot;package package_name&quot;
793 # - &quot;class package_name.class_name&quot;
794 # - &quot;class package_name.class_name#method_name&quot;
795 #
796 # If empty, all targets in the module will be run.
797 &quot;A String&quot;,
798 ],
799 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
800 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
801 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
802 },
803 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
804 # The default value is determined by examining the application&#x27;s manifest.
805 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700806 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
807 #
808 # For Instrumentation test, it will be translated to “-e numShard” “-e
809 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
810 # specifying these sharding arguments via environment_variables is invalid.
811 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
812 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700813 &quot;manualSharding&quot;: { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
814 # methods.
815 # methods.
816 #
817 # With manual sharding enabled, specifying test targets via
818 # environment_variables or in InstrumentationTest is invalid.
819 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
820 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
821 { # Test targets for a shard.
822 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
823 # The targets need to be specified in AndroidJUnitRunner argument format. For
824 # example, “package com.my.packages” “class com.my.package.MyClass”.
825 #
826 # The number of shard_test_targets must be greater than 0.
827 &quot;A String&quot;,
828 ],
829 },
830 ],
831 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700832 },
833 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
834 # The default value is determined by examining the application&#x27;s manifest.
835 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
836 # The default value is determined by examining the application&#x27;s manifest.
837 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
838 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
839 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
840 },
841 },
842 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
843 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
844 },
845 &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700846 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test execution was initially created.
847 &quot;shard&quot;: { # Output only. Details about the shard. # Output only. Details about the shard.
848 &quot;shardIndex&quot;: 42, # Output only. The index of the shard among all the shards.
849 &quot;testTargetsForShard&quot;: { # Test targets for a shard. # Output only. Test targets for each shard.
850 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
851 # The targets need to be specified in AndroidJUnitRunner argument format. For
852 # example, “package com.my.packages” “class com.my.package.MyClass”.
853 #
854 # The number of shard_test_targets must be greater than 0.
855 &quot;A String&quot;,
856 ],
857 },
858 &quot;numShards&quot;: 42, # Output only. The total number of shards.
859 },
860 &quot;matrixId&quot;: &quot;A String&quot;, # Output only. Id of the containing TestMatrix.
861 &quot;testDetails&quot;: { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
862 &quot;errorMessage&quot;: &quot;A String&quot;, # Output only. If the TestState is ERROR, then this string will contain
863 # human-readable details about the error.
864 &quot;progressMessages&quot;: [ # Output only. Human-readable, detailed descriptions of the test&#x27;s progress.
865 # For example: &quot;Provisioning a device&quot;, &quot;Starting Test&quot;.
866 #
867 # During the course of execution new data may be appended
868 # to the end of progress_messages.
869 &quot;A String&quot;,
870 ],
871 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700872 },
873 ],
874 &quot;environmentMatrix&quot;: { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
Bu Sun Kim65020912020-05-20 12:08:20 -0700875 &quot;androidMatrix&quot;: { # A set of Android device configuration permutations is defined by the # A matrix of Android devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700876 # the cross-product of the given axes. Internally, the given AndroidMatrix
877 # will be expanded into a set of AndroidDevices.
878 #
879 # Only supported permutations will be instantiated. Invalid permutations
880 # (e.g., incompatible models/versions) are ignored.
Bu Sun Kim65020912020-05-20 12:08:20 -0700881 &quot;androidModelIds&quot;: [ # Required. The ids of the set of Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700882 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700883 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700884 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700885 &quot;orientations&quot;: [ # Required. The set of orientations to test with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700886 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700887 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700888 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700889 &quot;androidVersionIds&quot;: [ # Required. The ids of the set of Android OS version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700890 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700891 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700892 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700893 &quot;locales&quot;: [ # Required. The set of locales the test device will enable for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700894 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700895 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700896 ],
897 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700898 &quot;iosDeviceList&quot;: { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
899 &quot;iosDevices&quot;: [ # Required. A list of iOS devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700900 { # A single iOS device.
Bu Sun Kim65020912020-05-20 12:08:20 -0700901 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700902 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700903 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700904 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700905 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700906 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700907 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700908 # Use the TestEnvironmentDiscoveryService to get supported options.
909 },
910 ],
911 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700912 &quot;androidDeviceList&quot;: { # 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
913 # devices.
914 &quot;androidDevices&quot;: [ # Required. A list of Android devices.
915 { # A single Android device.
916 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
917 # Use the TestEnvironmentDiscoveryService to get supported options.
918 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
919 # Use the TestEnvironmentDiscoveryService to get supported options.
920 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
921 # Use the TestEnvironmentDiscoveryService to get supported options.
922 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
923 # Use the TestEnvironmentDiscoveryService to get supported options.
924 },
925 ],
926 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700927 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700928 &quot;resultStorage&quot;: { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700929 &quot;toolResultsExecution&quot;: { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
930 #
931 # This has the results of a TestMatrix.
932 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results execution.
933 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
934 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
935 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700936 &quot;resultsUrl&quot;: &quot;A String&quot;, # Output only. URL to the results in the Firebase Web Console.
937 &quot;toolResultsHistory&quot;: { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
938 # results are written to.
939 #
940 # If not provided, the service will choose an appropriate value.
941 &quot;projectId&quot;: &quot;A String&quot;, # Required. The cloud project that owns the tool results history.
942 &quot;historyId&quot;: &quot;A String&quot;, # Required. A tool results history ID.
943 },
944 &quot;googleCloudStorage&quot;: { # A storage location within Google cloud storage (GCS). # Required.
945 &quot;gcsPath&quot;: &quot;A String&quot;, # Required. The path to a directory in GCS that will
946 # eventually contain the results for this test.
947 # The requesting user must have write access on the bucket in the supplied
948 # path.
949 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700950 },
951 &quot;testMatrixId&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700952 &quot;invalidMatrixDetails&quot;: &quot;A String&quot;, # Output only. Describes why the matrix is considered invalid.
953 # Only useful for matrices in the INVALID state.
954 &quot;outcomeSummary&quot;: &quot;A String&quot;, # Output Only. The overall outcome of the test.
955 # Only set when the test matrix state is FINISHED.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700956 }
957
958 requestId: string, A string id used to detect duplicated requests.
959Ids are automatically scoped to a project, so
960users should ensure the ID is unique per-project.
961A UUID is recommended.
962
963Optional, but strongly recommended.
964 x__xgafv: string, V1 error format.
965 Allowed values
966 1 - v1 error format
967 2 - v2 error format
968
969Returns:
970 An object of the form:
971
972 { # TestMatrix captures all details about a test. It contains the environment
973 # configuration, test specification, test executions and overall state and
974 # outcome.
Bu Sun Kim65020912020-05-20 12:08:20 -0700975 &quot;testSpecification&quot;: { # A description of how to run the test. # Required. How to run the test.
976 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
977 # Xcode supports the option to &quot;build for testing&quot;, which generates an
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700978 # .xctestrun file that contains a test specification (arguments, test methods,
979 # etc). This test type accepts a zip file containing the .xctestrun file and
980 # the corresponding contents of the Build/Products directory that contains all
981 # the binaries needed to run the tests.
Bu Sun Kim65020912020-05-20 12:08:20 -0700982 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700983 # Use the TestEnvironmentDiscoveryService to get supported options.
984 # Defaults to the latest Xcode version Firebase Test Lab supports.
Bu Sun Kim65020912020-05-20 12:08:20 -0700985 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
986 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700987 # tests zip. Because the .xctestrun file contains environment variables along
988 # with test methods to run and/or ignore, this can be useful for sharding
989 # tests. Default is taken from the tests zip.
Bu Sun Kim65020912020-05-20 12:08:20 -0700990 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700991 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
992 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700993 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
994 # app having special entitlements with an explicit application-identifier.
995 # Currently supports testing aps-environment entitlement.
996 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700997 # DerivedData/Build/Products directory.
998 # The .xctestrun file in this zip is ignored if the xctestrun field is
999 # specified.
Bu Sun Kim65020912020-05-20 12:08:20 -07001000 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001001 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1002 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001003 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001004 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
Dan O'Mearadd494642020-05-01 07:42:23 -07001005 # This test type accepts an archived application (.ipa file) and a list of
1006 # integer scenarios that will be executed on the app sequentially.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001007 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
1008 # single scenario 0 if unspecified.
1009 42,
1010 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001011 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1012 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
1013 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1014 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1015 },
Dan O'Mearadd494642020-05-01 07:42:23 -07001016 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001017 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001018 # automatically cancelled.
1019 # The default value is 5 min.
Bu Sun Kim65020912020-05-20 12:08:20 -07001020 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
1021 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1022 # Available network profiles can be queried by using the
1023 # NETWORK_CONFIGURATION environment type when calling
1024 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1025 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001026 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
Dan O'Mearadd494642020-05-01 07:42:23 -07001027 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001028 # user of this api, for the time being.
Bu Sun Kim65020912020-05-20 12:08:20 -07001029 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1030 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1031 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1032 },
1033 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1034 # The default is determined by examining the application&#x27;s manifest.
1035 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1036 # a base module directory, zero or more dynamic feature module directories.
1037 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1038 # building App Bundles.
1039 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1040 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1041 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1042 },
1043 },
1044 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
1045 # The default is all test loops, derived from the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001046 # manifest.
1047 42,
1048 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001049 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
1050 # The scenario labels should map to labels defined in the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001051 # manifest. For example, player_experience and
1052 # com.google.test.loops.player_experience add all of the loops labeled in the
1053 # manifest with the com.google.test.loops.player_experience name to the
1054 # execution.
1055 # Scenarios can also be specified in the scenarios field.
Bu Sun Kim65020912020-05-20 12:08:20 -07001056 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001057 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001058 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001059 &quot;testSetup&quot;: { # 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
1060 # scripts.
1061 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
1062 { # A single device file description.
1063 &quot;obbFile&quot;: { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
1064 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
1065 # Android
1066 # e.g. [main|patch].0300110.com.example.android.obb
1067 # which will be installed into
1068 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
1069 # on the device.
1070 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1071 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1072 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1073 },
1074 },
1075 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
1076 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
1077 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1078 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1079 },
1080 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
1081 # whitelisted path. If the file exists, it will be replaced.
1082 # The following device-side directories and any of their subdirectories are
1083 # whitelisted:
1084 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
1085 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
1086 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
1087 #
1088 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
1089 # implicit path substitutions. E.g. if /sdcard on a particular device does
1090 # not map to external storage, the system will replace it with the external
1091 # storage path prefix for that device and copy the file there.
1092 #
1093 # &lt;p&gt; It is strongly advised to use the &lt;a href=
1094 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
1095 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
1096 # portable way.
1097 },
1098 },
1099 ],
1100 &quot;account&quot;: { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
1101 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
1102 # If set, the service automatically generates a Google test account and adds
1103 # it to the device, before executing the test. Note that test accounts might be
1104 # reused.
1105 # Many applications show their full set of functionalities when an account is
1106 # present on the device. Logging into the device with these generated accounts
1107 # allows testing more functionalities.
1108 },
1109 },
1110 &quot;systrace&quot;: { # Systrace configuration for the run.
1111 # If set a systrace will be taken, starting on test start and lasting for the
1112 # configured duration. The systrace file thus obtained is put in the results
1113 # bucket together with the other artifacts from the run.
1114 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
1115 # Should be between 1 and 30 seconds. 0 disables systrace.
1116 },
1117 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
1118 # they must be absolute paths under /sdcard or /data/local/tmp.
1119 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1120 #
1121 # Note: The paths /sdcard and /data will be made available and treated as
1122 # implicit path substitutions. E.g. if /sdcard on a particular device does
1123 # not map to external storage, the system will replace it with the external
1124 # storage path prefix for that device.
1125 &quot;A String&quot;,
1126 ],
1127 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1128 # Available network profiles can be queried by using the
1129 # NETWORK_CONFIGURATION environment type when calling
1130 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1131 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
1132 # instrumentation tests).
1133 { # A key-value pair passed as an environment variable to the test.
1134 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
1135 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
1136 },
1137 ],
1138 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
1139 # Currently capped at 100.
1140 { # An Android package file to install.
1141 &quot;location&quot;: { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
1142 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1143 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1144 },
1145 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
1146 # Value is determined by examining the application&#x27;s manifest.
1147 },
1148 ],
1149 },
1150 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
1151 # or physical Android Device, finding culprits and crashes as it goes.
1152 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
1153 # 2 to make Robo explore the app beyond the first activity.
1154 # Default is 50.
1155 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1156 # The default value is determined by examining the application&#x27;s manifest.
1157 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1158 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1159 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1160 },
1161 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
1162 # If none are provided, then the main launcher activity is launched.
1163 # If some are provided, then only those provided are launched (the main
1164 # launcher activity must be provided explicitly).
1165 { # Message for specifying the start activities to crawl.
1166 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
1167 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
1168 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
1169 &quot;categories&quot;: [ # Intent categories to set on the intent.
1170 &quot;A String&quot;,
1171 ],
1172 &quot;action&quot;: &quot;A String&quot;, # Action name.
1173 # Required for START_ACTIVITY.
1174 },
1175 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
1176 },
1177 },
1178 ],
1179 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
1180 # Default is no limit.
1181 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
1182 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
1183 # This allows users to customize the crawl. For example, the username and
1184 # password for a test account can be provided.
1185 { # Directs Robo to interact with a specific UI element if it is encountered
1186 # during the crawl. Currently, Robo can perform text entry or element click.
1187 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
1188 # element.
1189 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
1190 # For example,
1191 # in Java: R.string.foo
1192 # in xml: @string/foo
1193 # Only the &quot;foo&quot; part is needed.
1194 # Reference doc:
1195 # https://developer.android.com/guide/topics/resources/accessing-resources.html
1196 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
1197 # treated as a CLICK on the element matching the resource_name.
1198 },
1199 ],
1200 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1201 # a base module directory, zero or more dynamic feature module directories.
1202 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1203 # building App Bundles.
1204 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1205 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1206 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1207 },
1208 },
1209 &quot;roboScript&quot;: { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
1210 # for the crawl.
1211 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1212 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1213 },
1214 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001215 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001216 # independently of its normal lifecycle.
1217 # Android instrumentation tests run an application APK and test APK inside the
1218 # same process on a virtual or physical AndroidDevice. They also specify
1219 # a test runner class, such as com.google.GoogleTestRunner, which can vary
1220 # on the specific instrumentation framework chosen.
1221 #
Dan O'Mearadd494642020-05-01 07:42:23 -07001222 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001223 # more information on types of Android tests.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001224 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1225 # a base module directory, zero or more dynamic feature module directories.
1226 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1227 # building App Bundles.
1228 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1229 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1230 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1231 },
1232 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001233 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001234 # instrumentation with Android Test Orchestrator or not.
1235 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
1236 # higher! **
1237 # Orchestrator offers the following benefits:
1238 # - No shared state
1239 # - Crashes are isolated
1240 # - Logs are scoped per test
1241 #
1242 # See
Dan O'Mearadd494642020-05-01 07:42:23 -07001243 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001244 # for more information about Android Test Orchestrator.
1245 #
1246 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -07001247 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
1248 # in one of these formats:
1249 # - &quot;package package_name&quot;
1250 # - &quot;class package_name.class_name&quot;
1251 # - &quot;class package_name.class_name#method_name&quot;
1252 #
1253 # If empty, all targets in the module will be run.
1254 &quot;A String&quot;,
1255 ],
1256 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
1257 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1258 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1259 },
1260 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
1261 # The default value is determined by examining the application&#x27;s manifest.
1262 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001263 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
1264 #
1265 # For Instrumentation test, it will be translated to “-e numShard” “-e
1266 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
1267 # specifying these sharding arguments via environment_variables is invalid.
1268 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
1269 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001270 &quot;manualSharding&quot;: { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
Dan O'Mearadd494642020-05-01 07:42:23 -07001271 # methods.
1272 # methods.
1273 #
1274 # With manual sharding enabled, specifying test targets via
1275 # environment_variables or in InstrumentationTest is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -07001276 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
Dan O'Mearadd494642020-05-01 07:42:23 -07001277 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
1278 { # Test targets for a shard.
Bu Sun Kim65020912020-05-20 12:08:20 -07001279 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
Dan O'Mearadd494642020-05-01 07:42:23 -07001280 # The targets need to be specified in AndroidJUnitRunner argument format. For
1281 # example, “package com.my.packages” “class com.my.package.MyClass”.
1282 #
1283 # The number of shard_test_targets must be greater than 0.
Bu Sun Kim65020912020-05-20 12:08:20 -07001284 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -07001285 ],
1286 },
1287 ],
1288 },
Dan O'Mearadd494642020-05-01 07:42:23 -07001289 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001290 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
1291 # The default value is determined by examining the application&#x27;s manifest.
1292 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1293 # The default value is determined by examining the application&#x27;s manifest.
1294 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1295 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1296 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1297 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001298 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001299 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
1300 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001301 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001302 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project that owns the test matrix.
1303 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test matrix was initially created.
1304 &quot;flakyTestAttempts&quot;: 42, # The number of times a TestExecution should be re-attempted if one or more
1305 # of its test cases fail for any reason.
1306 # The maximum number of reruns allowed is 10.
1307 #
1308 # Default is 0, which implies no reruns.
1309 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test matrix.
1310 &quot;clientInfo&quot;: { # Information about the client which invoked the test. # Information about the client which invoked the test.
1311 &quot;clientInfoDetails&quot;: [ # The list of detailed information about client.
1312 { # Key-value pair of detailed information about the client which invoked the
1313 # test. Examples: {&#x27;Version&#x27;, &#x27;1.0&#x27;}, {&#x27;Release Track&#x27;, &#x27;BETA&#x27;}.
1314 &quot;value&quot;: &quot;A String&quot;, # Required. The value of detailed client information.
1315 &quot;key&quot;: &quot;A String&quot;, # Required. The key of detailed client information.
1316 },
1317 ],
1318 &quot;name&quot;: &quot;A String&quot;, # Required. Client name, such as gcloud.
1319 },
1320 &quot;testExecutions&quot;: [ # Output only. The list of test executions that the service creates for
1321 # this matrix.
1322 { # A single test executed in a single environment.
Bu Sun Kim65020912020-05-20 12:08:20 -07001323 &quot;environment&quot;: { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
1324 &quot;iosDevice&quot;: { # A single iOS device. # An iOS device which must be used with an iOS test.
1325 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
1326 # Use the TestEnvironmentDiscoveryService to get supported options.
1327 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
1328 # Use the TestEnvironmentDiscoveryService to get supported options.
1329 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
1330 # Use the TestEnvironmentDiscoveryService to get supported options.
1331 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
1332 # Use the TestEnvironmentDiscoveryService to get supported options.
1333 },
1334 &quot;androidDevice&quot;: { # A single Android device. # An Android device which must be used with an Android test.
Bu Sun Kim65020912020-05-20 12:08:20 -07001335 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
1336 # Use the TestEnvironmentDiscoveryService to get supported options.
1337 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
1338 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001339 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
1340 # Use the TestEnvironmentDiscoveryService to get supported options.
1341 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
1342 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001343 },
1344 },
1345 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test execution
1346 # (e.g., FINISHED).
1347 &quot;toolResultsStep&quot;: { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
1348 #
1349 # This has the results of a TestExecution.
Bu Sun Kim65020912020-05-20 12:08:20 -07001350 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results step.
1351 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001352 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
1353 &quot;stepId&quot;: &quot;A String&quot;, # Output only. A tool results step ID.
Bu Sun Kim65020912020-05-20 12:08:20 -07001354 },
1355 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the test execution.
1356 &quot;testSpecification&quot;: { # A description of how to run the test. # Output only. How to run the test.
1357 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
1358 # Xcode supports the option to &quot;build for testing&quot;, which generates an
1359 # .xctestrun file that contains a test specification (arguments, test methods,
1360 # etc). This test type accepts a zip file containing the .xctestrun file and
1361 # the corresponding contents of the Build/Products directory that contains all
1362 # the binaries needed to run the tests.
1363 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
1364 # Use the TestEnvironmentDiscoveryService to get supported options.
1365 # Defaults to the latest Xcode version Firebase Test Lab supports.
1366 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1367 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
1368 # tests zip. Because the .xctestrun file contains environment variables along
1369 # with test methods to run and/or ignore, this can be useful for sharding
1370 # tests. Default is taken from the tests zip.
1371 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1372 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1373 },
1374 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
1375 # app having special entitlements with an explicit application-identifier.
1376 # Currently supports testing aps-environment entitlement.
1377 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
1378 # DerivedData/Build/Products directory.
1379 # The .xctestrun file in this zip is ignored if the xctestrun field is
1380 # specified.
1381 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1382 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1383 },
1384 },
1385 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
1386 # This test type accepts an archived application (.ipa file) and a list of
1387 # integer scenarios that will be executed on the app sequentially.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001388 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
1389 # single scenario 0 if unspecified.
1390 42,
1391 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001392 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1393 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
1394 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1395 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1396 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001397 },
1398 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
1399 # automatically cancelled.
1400 # The default value is 5 min.
1401 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
1402 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1403 # Available network profiles can be queried by using the
1404 # NETWORK_CONFIGURATION environment type when calling
1405 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1406 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001407 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
1408 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
1409 # user of this api, for the time being.
1410 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1411 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1412 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1413 },
1414 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1415 # The default is determined by examining the application&#x27;s manifest.
1416 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1417 # a base module directory, zero or more dynamic feature module directories.
1418 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1419 # building App Bundles.
1420 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1421 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1422 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1423 },
1424 },
1425 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
1426 # The default is all test loops, derived from the application&#x27;s
1427 # manifest.
1428 42,
1429 ],
1430 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
1431 # The scenario labels should map to labels defined in the application&#x27;s
1432 # manifest. For example, player_experience and
1433 # com.google.test.loops.player_experience add all of the loops labeled in the
1434 # manifest with the com.google.test.loops.player_experience name to the
1435 # execution.
1436 # Scenarios can also be specified in the scenarios field.
1437 &quot;A String&quot;,
1438 ],
1439 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001440 &quot;testSetup&quot;: { # 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
1441 # scripts.
1442 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
1443 { # A single device file description.
1444 &quot;obbFile&quot;: { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
1445 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
1446 # Android
1447 # e.g. [main|patch].0300110.com.example.android.obb
1448 # which will be installed into
1449 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
1450 # on the device.
1451 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1452 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1453 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1454 },
1455 },
1456 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
1457 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
1458 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1459 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1460 },
1461 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
1462 # whitelisted path. If the file exists, it will be replaced.
1463 # The following device-side directories and any of their subdirectories are
1464 # whitelisted:
1465 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
1466 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
1467 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
1468 #
1469 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
1470 # implicit path substitutions. E.g. if /sdcard on a particular device does
1471 # not map to external storage, the system will replace it with the external
1472 # storage path prefix for that device and copy the file there.
1473 #
1474 # &lt;p&gt; It is strongly advised to use the &lt;a href=
1475 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
1476 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
1477 # portable way.
1478 },
1479 },
1480 ],
1481 &quot;account&quot;: { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
1482 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
1483 # If set, the service automatically generates a Google test account and adds
1484 # it to the device, before executing the test. Note that test accounts might be
1485 # reused.
1486 # Many applications show their full set of functionalities when an account is
1487 # present on the device. Logging into the device with these generated accounts
1488 # allows testing more functionalities.
1489 },
1490 },
1491 &quot;systrace&quot;: { # Systrace configuration for the run.
1492 # If set a systrace will be taken, starting on test start and lasting for the
1493 # configured duration. The systrace file thus obtained is put in the results
1494 # bucket together with the other artifacts from the run.
1495 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
1496 # Should be between 1 and 30 seconds. 0 disables systrace.
1497 },
1498 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
1499 # they must be absolute paths under /sdcard or /data/local/tmp.
1500 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1501 #
1502 # Note: The paths /sdcard and /data will be made available and treated as
1503 # implicit path substitutions. E.g. if /sdcard on a particular device does
1504 # not map to external storage, the system will replace it with the external
1505 # storage path prefix for that device.
1506 &quot;A String&quot;,
1507 ],
1508 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1509 # Available network profiles can be queried by using the
1510 # NETWORK_CONFIGURATION environment type when calling
1511 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1512 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
1513 # instrumentation tests).
1514 { # A key-value pair passed as an environment variable to the test.
1515 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
1516 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
1517 },
1518 ],
1519 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
1520 # Currently capped at 100.
1521 { # An Android package file to install.
1522 &quot;location&quot;: { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
1523 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1524 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1525 },
1526 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
1527 # Value is determined by examining the application&#x27;s manifest.
1528 },
1529 ],
1530 },
1531 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
1532 # or physical Android Device, finding culprits and crashes as it goes.
1533 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
1534 # 2 to make Robo explore the app beyond the first activity.
1535 # Default is 50.
1536 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1537 # The default value is determined by examining the application&#x27;s manifest.
1538 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1539 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1540 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1541 },
1542 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
1543 # If none are provided, then the main launcher activity is launched.
1544 # If some are provided, then only those provided are launched (the main
1545 # launcher activity must be provided explicitly).
1546 { # Message for specifying the start activities to crawl.
1547 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
1548 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
1549 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
1550 &quot;categories&quot;: [ # Intent categories to set on the intent.
1551 &quot;A String&quot;,
1552 ],
1553 &quot;action&quot;: &quot;A String&quot;, # Action name.
1554 # Required for START_ACTIVITY.
1555 },
1556 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
1557 },
1558 },
1559 ],
1560 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
1561 # Default is no limit.
1562 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
1563 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
1564 # This allows users to customize the crawl. For example, the username and
1565 # password for a test account can be provided.
1566 { # Directs Robo to interact with a specific UI element if it is encountered
1567 # during the crawl. Currently, Robo can perform text entry or element click.
1568 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
1569 # element.
1570 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
1571 # For example,
1572 # in Java: R.string.foo
1573 # in xml: @string/foo
1574 # Only the &quot;foo&quot; part is needed.
1575 # Reference doc:
1576 # https://developer.android.com/guide/topics/resources/accessing-resources.html
1577 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
1578 # treated as a CLICK on the element matching the resource_name.
1579 },
1580 ],
1581 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1582 # a base module directory, zero or more dynamic feature module directories.
1583 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1584 # building App Bundles.
1585 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1586 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1587 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1588 },
1589 },
1590 &quot;roboScript&quot;: { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
1591 # for the crawl.
1592 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1593 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1594 },
1595 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001596 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
1597 # independently of its normal lifecycle.
1598 # Android instrumentation tests run an application APK and test APK inside the
1599 # same process on a virtual or physical AndroidDevice. They also specify
1600 # a test runner class, such as com.google.GoogleTestRunner, which can vary
1601 # on the specific instrumentation framework chosen.
1602 #
1603 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
1604 # more information on types of Android tests.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001605 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1606 # a base module directory, zero or more dynamic feature module directories.
1607 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1608 # building App Bundles.
1609 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1610 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1611 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1612 },
1613 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001614 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
1615 # instrumentation with Android Test Orchestrator or not.
1616 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
1617 # higher! **
1618 # Orchestrator offers the following benefits:
1619 # - No shared state
1620 # - Crashes are isolated
1621 # - Logs are scoped per test
1622 #
1623 # See
1624 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
1625 # for more information about Android Test Orchestrator.
1626 #
1627 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -07001628 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
1629 # in one of these formats:
1630 # - &quot;package package_name&quot;
1631 # - &quot;class package_name.class_name&quot;
1632 # - &quot;class package_name.class_name#method_name&quot;
1633 #
1634 # If empty, all targets in the module will be run.
1635 &quot;A String&quot;,
1636 ],
1637 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
1638 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1639 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1640 },
1641 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
1642 # The default value is determined by examining the application&#x27;s manifest.
1643 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001644 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
1645 #
1646 # For Instrumentation test, it will be translated to “-e numShard” “-e
1647 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
1648 # specifying these sharding arguments via environment_variables is invalid.
1649 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
1650 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001651 &quot;manualSharding&quot;: { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
1652 # methods.
1653 # methods.
1654 #
1655 # With manual sharding enabled, specifying test targets via
1656 # environment_variables or in InstrumentationTest is invalid.
1657 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
1658 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
1659 { # Test targets for a shard.
1660 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
1661 # The targets need to be specified in AndroidJUnitRunner argument format. For
1662 # example, “package com.my.packages” “class com.my.package.MyClass”.
1663 #
1664 # The number of shard_test_targets must be greater than 0.
1665 &quot;A String&quot;,
1666 ],
1667 },
1668 ],
1669 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001670 },
1671 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
1672 # The default value is determined by examining the application&#x27;s manifest.
1673 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1674 # The default value is determined by examining the application&#x27;s manifest.
1675 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1676 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1677 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1678 },
1679 },
1680 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
1681 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
1682 },
1683 &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001684 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test execution was initially created.
1685 &quot;shard&quot;: { # Output only. Details about the shard. # Output only. Details about the shard.
1686 &quot;shardIndex&quot;: 42, # Output only. The index of the shard among all the shards.
1687 &quot;testTargetsForShard&quot;: { # Test targets for a shard. # Output only. Test targets for each shard.
1688 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
1689 # The targets need to be specified in AndroidJUnitRunner argument format. For
1690 # example, “package com.my.packages” “class com.my.package.MyClass”.
1691 #
1692 # The number of shard_test_targets must be greater than 0.
1693 &quot;A String&quot;,
1694 ],
1695 },
1696 &quot;numShards&quot;: 42, # Output only. The total number of shards.
1697 },
1698 &quot;matrixId&quot;: &quot;A String&quot;, # Output only. Id of the containing TestMatrix.
1699 &quot;testDetails&quot;: { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
1700 &quot;errorMessage&quot;: &quot;A String&quot;, # Output only. If the TestState is ERROR, then this string will contain
1701 # human-readable details about the error.
1702 &quot;progressMessages&quot;: [ # Output only. Human-readable, detailed descriptions of the test&#x27;s progress.
1703 # For example: &quot;Provisioning a device&quot;, &quot;Starting Test&quot;.
1704 #
1705 # During the course of execution new data may be appended
1706 # to the end of progress_messages.
1707 &quot;A String&quot;,
1708 ],
1709 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001710 },
1711 ],
1712 &quot;environmentMatrix&quot;: { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
Bu Sun Kim65020912020-05-20 12:08:20 -07001713 &quot;androidMatrix&quot;: { # A set of Android device configuration permutations is defined by the # A matrix of Android devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001714 # the cross-product of the given axes. Internally, the given AndroidMatrix
1715 # will be expanded into a set of AndroidDevices.
1716 #
1717 # Only supported permutations will be instantiated. Invalid permutations
1718 # (e.g., incompatible models/versions) are ignored.
Bu Sun Kim65020912020-05-20 12:08:20 -07001719 &quot;androidModelIds&quot;: [ # Required. The ids of the set of Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001720 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001721 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001722 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001723 &quot;orientations&quot;: [ # Required. The set of orientations to test with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001724 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001725 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001726 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001727 &quot;androidVersionIds&quot;: [ # Required. The ids of the set of Android OS version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001728 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001729 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001730 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001731 &quot;locales&quot;: [ # Required. The set of locales the test device will enable for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001732 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001733 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001734 ],
1735 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001736 &quot;iosDeviceList&quot;: { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
1737 &quot;iosDevices&quot;: [ # Required. A list of iOS devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001738 { # A single iOS device.
Bu Sun Kim65020912020-05-20 12:08:20 -07001739 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001740 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001741 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001742 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001743 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001744 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001745 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001746 # Use the TestEnvironmentDiscoveryService to get supported options.
1747 },
1748 ],
1749 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001750 &quot;androidDeviceList&quot;: { # 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
1751 # devices.
1752 &quot;androidDevices&quot;: [ # Required. A list of Android devices.
1753 { # A single Android device.
1754 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
1755 # Use the TestEnvironmentDiscoveryService to get supported options.
1756 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
1757 # Use the TestEnvironmentDiscoveryService to get supported options.
1758 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
1759 # Use the TestEnvironmentDiscoveryService to get supported options.
1760 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
1761 # Use the TestEnvironmentDiscoveryService to get supported options.
1762 },
1763 ],
1764 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001765 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001766 &quot;resultStorage&quot;: { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001767 &quot;toolResultsExecution&quot;: { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
1768 #
1769 # This has the results of a TestMatrix.
1770 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results execution.
1771 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
1772 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
1773 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001774 &quot;resultsUrl&quot;: &quot;A String&quot;, # Output only. URL to the results in the Firebase Web Console.
1775 &quot;toolResultsHistory&quot;: { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
1776 # results are written to.
1777 #
1778 # If not provided, the service will choose an appropriate value.
1779 &quot;projectId&quot;: &quot;A String&quot;, # Required. The cloud project that owns the tool results history.
1780 &quot;historyId&quot;: &quot;A String&quot;, # Required. A tool results history ID.
1781 },
1782 &quot;googleCloudStorage&quot;: { # A storage location within Google cloud storage (GCS). # Required.
1783 &quot;gcsPath&quot;: &quot;A String&quot;, # Required. The path to a directory in GCS that will
1784 # eventually contain the results for this test.
1785 # The requesting user must have write access on the bucket in the supplied
1786 # path.
1787 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001788 },
1789 &quot;testMatrixId&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001790 &quot;invalidMatrixDetails&quot;: &quot;A String&quot;, # Output only. Describes why the matrix is considered invalid.
1791 # Only useful for matrices in the INVALID state.
1792 &quot;outcomeSummary&quot;: &quot;A String&quot;, # Output Only. The overall outcome of the test.
1793 # Only set when the test matrix state is FINISHED.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001794 }</pre>
1795</div>
1796
1797<div class="method">
1798 <code class="details" id="get">get(projectId, testMatrixId, x__xgafv=None)</code>
1799 <pre>Checks the status of a test matrix.
1800
1801May return any of the following canonical error codes:
1802
1803- PERMISSION_DENIED - if the user is not authorized to read project
1804- INVALID_ARGUMENT - if the request is malformed
1805- NOT_FOUND - if the Test Matrix does not exist
1806
1807Args:
1808 projectId: string, Cloud project that owns the test matrix. (required)
1809 testMatrixId: string, Unique test matrix id which was assigned by the service. (required)
1810 x__xgafv: string, V1 error format.
1811 Allowed values
1812 1 - v1 error format
1813 2 - v2 error format
1814
1815Returns:
1816 An object of the form:
1817
1818 { # TestMatrix captures all details about a test. It contains the environment
1819 # configuration, test specification, test executions and overall state and
1820 # outcome.
Bu Sun Kim65020912020-05-20 12:08:20 -07001821 &quot;testSpecification&quot;: { # A description of how to run the test. # Required. How to run the test.
1822 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
1823 # Xcode supports the option to &quot;build for testing&quot;, which generates an
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001824 # .xctestrun file that contains a test specification (arguments, test methods,
1825 # etc). This test type accepts a zip file containing the .xctestrun file and
1826 # the corresponding contents of the Build/Products directory that contains all
1827 # the binaries needed to run the tests.
Bu Sun Kim65020912020-05-20 12:08:20 -07001828 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001829 # Use the TestEnvironmentDiscoveryService to get supported options.
1830 # Defaults to the latest Xcode version Firebase Test Lab supports.
Bu Sun Kim65020912020-05-20 12:08:20 -07001831 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1832 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001833 # tests zip. Because the .xctestrun file contains environment variables along
1834 # with test methods to run and/or ignore, this can be useful for sharding
1835 # tests. Default is taken from the tests zip.
Bu Sun Kim65020912020-05-20 12:08:20 -07001836 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001837 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1838 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001839 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
1840 # app having special entitlements with an explicit application-identifier.
1841 # Currently supports testing aps-environment entitlement.
1842 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001843 # DerivedData/Build/Products directory.
1844 # The .xctestrun file in this zip is ignored if the xctestrun field is
1845 # specified.
Bu Sun Kim65020912020-05-20 12:08:20 -07001846 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001847 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1848 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001849 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001850 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
Dan O'Mearadd494642020-05-01 07:42:23 -07001851 # This test type accepts an archived application (.ipa file) and a list of
1852 # integer scenarios that will be executed on the app sequentially.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001853 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
1854 # single scenario 0 if unspecified.
1855 42,
1856 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001857 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1858 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
1859 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1860 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1861 },
Dan O'Mearadd494642020-05-01 07:42:23 -07001862 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001863 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001864 # automatically cancelled.
1865 # The default value is 5 min.
Bu Sun Kim65020912020-05-20 12:08:20 -07001866 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
1867 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1868 # Available network profiles can be queried by using the
1869 # NETWORK_CONFIGURATION environment type when calling
1870 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1871 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001872 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
Dan O'Mearadd494642020-05-01 07:42:23 -07001873 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001874 # user of this api, for the time being.
Bu Sun Kim65020912020-05-20 12:08:20 -07001875 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1876 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1877 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1878 },
1879 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1880 # The default is determined by examining the application&#x27;s manifest.
1881 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1882 # a base module directory, zero or more dynamic feature module directories.
1883 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1884 # building App Bundles.
1885 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1886 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1887 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1888 },
1889 },
1890 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
1891 # The default is all test loops, derived from the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001892 # manifest.
1893 42,
1894 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001895 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
1896 # The scenario labels should map to labels defined in the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001897 # manifest. For example, player_experience and
1898 # com.google.test.loops.player_experience add all of the loops labeled in the
1899 # manifest with the com.google.test.loops.player_experience name to the
1900 # execution.
1901 # Scenarios can also be specified in the scenarios field.
Bu Sun Kim65020912020-05-20 12:08:20 -07001902 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001903 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001904 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001905 &quot;testSetup&quot;: { # 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
1906 # scripts.
1907 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
1908 { # A single device file description.
1909 &quot;obbFile&quot;: { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
1910 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
1911 # Android
1912 # e.g. [main|patch].0300110.com.example.android.obb
1913 # which will be installed into
1914 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
1915 # on the device.
1916 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1917 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1918 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1919 },
1920 },
1921 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
1922 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
1923 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1924 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1925 },
1926 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
1927 # whitelisted path. If the file exists, it will be replaced.
1928 # The following device-side directories and any of their subdirectories are
1929 # whitelisted:
1930 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
1931 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
1932 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
1933 #
1934 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
1935 # implicit path substitutions. E.g. if /sdcard on a particular device does
1936 # not map to external storage, the system will replace it with the external
1937 # storage path prefix for that device and copy the file there.
1938 #
1939 # &lt;p&gt; It is strongly advised to use the &lt;a href=
1940 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
1941 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
1942 # portable way.
1943 },
1944 },
1945 ],
1946 &quot;account&quot;: { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
1947 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
1948 # If set, the service automatically generates a Google test account and adds
1949 # it to the device, before executing the test. Note that test accounts might be
1950 # reused.
1951 # Many applications show their full set of functionalities when an account is
1952 # present on the device. Logging into the device with these generated accounts
1953 # allows testing more functionalities.
1954 },
1955 },
1956 &quot;systrace&quot;: { # Systrace configuration for the run.
1957 # If set a systrace will be taken, starting on test start and lasting for the
1958 # configured duration. The systrace file thus obtained is put in the results
1959 # bucket together with the other artifacts from the run.
1960 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
1961 # Should be between 1 and 30 seconds. 0 disables systrace.
1962 },
1963 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
1964 # they must be absolute paths under /sdcard or /data/local/tmp.
1965 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1966 #
1967 # Note: The paths /sdcard and /data will be made available and treated as
1968 # implicit path substitutions. E.g. if /sdcard on a particular device does
1969 # not map to external storage, the system will replace it with the external
1970 # storage path prefix for that device.
1971 &quot;A String&quot;,
1972 ],
1973 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1974 # Available network profiles can be queried by using the
1975 # NETWORK_CONFIGURATION environment type when calling
1976 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1977 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
1978 # instrumentation tests).
1979 { # A key-value pair passed as an environment variable to the test.
1980 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
1981 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
1982 },
1983 ],
1984 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
1985 # Currently capped at 100.
1986 { # An Android package file to install.
1987 &quot;location&quot;: { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
1988 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1989 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1990 },
1991 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
1992 # Value is determined by examining the application&#x27;s manifest.
1993 },
1994 ],
1995 },
1996 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
1997 # or physical Android Device, finding culprits and crashes as it goes.
1998 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
1999 # 2 to make Robo explore the app beyond the first activity.
2000 # Default is 50.
2001 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2002 # The default value is determined by examining the application&#x27;s manifest.
2003 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2004 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2005 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2006 },
2007 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
2008 # If none are provided, then the main launcher activity is launched.
2009 # If some are provided, then only those provided are launched (the main
2010 # launcher activity must be provided explicitly).
2011 { # Message for specifying the start activities to crawl.
2012 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
2013 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
2014 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
2015 &quot;categories&quot;: [ # Intent categories to set on the intent.
2016 &quot;A String&quot;,
2017 ],
2018 &quot;action&quot;: &quot;A String&quot;, # Action name.
2019 # Required for START_ACTIVITY.
2020 },
2021 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
2022 },
2023 },
2024 ],
2025 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
2026 # Default is no limit.
2027 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
2028 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
2029 # This allows users to customize the crawl. For example, the username and
2030 # password for a test account can be provided.
2031 { # Directs Robo to interact with a specific UI element if it is encountered
2032 # during the crawl. Currently, Robo can perform text entry or element click.
2033 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
2034 # element.
2035 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
2036 # For example,
2037 # in Java: R.string.foo
2038 # in xml: @string/foo
2039 # Only the &quot;foo&quot; part is needed.
2040 # Reference doc:
2041 # https://developer.android.com/guide/topics/resources/accessing-resources.html
2042 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
2043 # treated as a CLICK on the element matching the resource_name.
2044 },
2045 ],
2046 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2047 # a base module directory, zero or more dynamic feature module directories.
2048 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2049 # building App Bundles.
2050 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2051 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2052 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2053 },
2054 },
2055 &quot;roboScript&quot;: { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
2056 # for the crawl.
2057 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2058 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2059 },
2060 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002061 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002062 # independently of its normal lifecycle.
2063 # Android instrumentation tests run an application APK and test APK inside the
2064 # same process on a virtual or physical AndroidDevice. They also specify
2065 # a test runner class, such as com.google.GoogleTestRunner, which can vary
2066 # on the specific instrumentation framework chosen.
2067 #
Dan O'Mearadd494642020-05-01 07:42:23 -07002068 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002069 # more information on types of Android tests.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002070 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2071 # a base module directory, zero or more dynamic feature module directories.
2072 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2073 # building App Bundles.
2074 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2075 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2076 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2077 },
2078 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002079 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002080 # instrumentation with Android Test Orchestrator or not.
2081 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
2082 # higher! **
2083 # Orchestrator offers the following benefits:
2084 # - No shared state
2085 # - Crashes are isolated
2086 # - Logs are scoped per test
2087 #
2088 # See
Dan O'Mearadd494642020-05-01 07:42:23 -07002089 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002090 # for more information about Android Test Orchestrator.
2091 #
2092 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -07002093 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
2094 # in one of these formats:
2095 # - &quot;package package_name&quot;
2096 # - &quot;class package_name.class_name&quot;
2097 # - &quot;class package_name.class_name#method_name&quot;
2098 #
2099 # If empty, all targets in the module will be run.
2100 &quot;A String&quot;,
2101 ],
2102 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
2103 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2104 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2105 },
2106 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
2107 # The default value is determined by examining the application&#x27;s manifest.
2108 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002109 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
2110 #
2111 # For Instrumentation test, it will be translated to “-e numShard” “-e
2112 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
2113 # specifying these sharding arguments via environment_variables is invalid.
2114 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
2115 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002116 &quot;manualSharding&quot;: { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
Dan O'Mearadd494642020-05-01 07:42:23 -07002117 # methods.
2118 # methods.
2119 #
2120 # With manual sharding enabled, specifying test targets via
2121 # environment_variables or in InstrumentationTest is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -07002122 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
Dan O'Mearadd494642020-05-01 07:42:23 -07002123 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
2124 { # Test targets for a shard.
Bu Sun Kim65020912020-05-20 12:08:20 -07002125 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
Dan O'Mearadd494642020-05-01 07:42:23 -07002126 # The targets need to be specified in AndroidJUnitRunner argument format. For
2127 # example, “package com.my.packages” “class com.my.package.MyClass”.
2128 #
2129 # The number of shard_test_targets must be greater than 0.
Bu Sun Kim65020912020-05-20 12:08:20 -07002130 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -07002131 ],
2132 },
2133 ],
2134 },
Dan O'Mearadd494642020-05-01 07:42:23 -07002135 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002136 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
2137 # The default value is determined by examining the application&#x27;s manifest.
2138 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2139 # The default value is determined by examining the application&#x27;s manifest.
2140 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2141 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2142 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2143 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002144 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002145 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
2146 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002147 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002148 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project that owns the test matrix.
2149 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test matrix was initially created.
2150 &quot;flakyTestAttempts&quot;: 42, # The number of times a TestExecution should be re-attempted if one or more
2151 # of its test cases fail for any reason.
2152 # The maximum number of reruns allowed is 10.
2153 #
2154 # Default is 0, which implies no reruns.
2155 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test matrix.
2156 &quot;clientInfo&quot;: { # Information about the client which invoked the test. # Information about the client which invoked the test.
2157 &quot;clientInfoDetails&quot;: [ # The list of detailed information about client.
2158 { # Key-value pair of detailed information about the client which invoked the
2159 # test. Examples: {&#x27;Version&#x27;, &#x27;1.0&#x27;}, {&#x27;Release Track&#x27;, &#x27;BETA&#x27;}.
2160 &quot;value&quot;: &quot;A String&quot;, # Required. The value of detailed client information.
2161 &quot;key&quot;: &quot;A String&quot;, # Required. The key of detailed client information.
2162 },
2163 ],
2164 &quot;name&quot;: &quot;A String&quot;, # Required. Client name, such as gcloud.
2165 },
2166 &quot;testExecutions&quot;: [ # Output only. The list of test executions that the service creates for
2167 # this matrix.
2168 { # A single test executed in a single environment.
Bu Sun Kim65020912020-05-20 12:08:20 -07002169 &quot;environment&quot;: { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
2170 &quot;iosDevice&quot;: { # A single iOS device. # An iOS device which must be used with an iOS test.
2171 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
2172 # Use the TestEnvironmentDiscoveryService to get supported options.
2173 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
2174 # Use the TestEnvironmentDiscoveryService to get supported options.
2175 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
2176 # Use the TestEnvironmentDiscoveryService to get supported options.
2177 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
2178 # Use the TestEnvironmentDiscoveryService to get supported options.
2179 },
2180 &quot;androidDevice&quot;: { # A single Android device. # An Android device which must be used with an Android test.
Bu Sun Kim65020912020-05-20 12:08:20 -07002181 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
2182 # Use the TestEnvironmentDiscoveryService to get supported options.
2183 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
2184 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002185 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
2186 # Use the TestEnvironmentDiscoveryService to get supported options.
2187 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
2188 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002189 },
2190 },
2191 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test execution
2192 # (e.g., FINISHED).
2193 &quot;toolResultsStep&quot;: { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
2194 #
2195 # This has the results of a TestExecution.
Bu Sun Kim65020912020-05-20 12:08:20 -07002196 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results step.
2197 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002198 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
2199 &quot;stepId&quot;: &quot;A String&quot;, # Output only. A tool results step ID.
Bu Sun Kim65020912020-05-20 12:08:20 -07002200 },
2201 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the test execution.
2202 &quot;testSpecification&quot;: { # A description of how to run the test. # Output only. How to run the test.
2203 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
2204 # Xcode supports the option to &quot;build for testing&quot;, which generates an
2205 # .xctestrun file that contains a test specification (arguments, test methods,
2206 # etc). This test type accepts a zip file containing the .xctestrun file and
2207 # the corresponding contents of the Build/Products directory that contains all
2208 # the binaries needed to run the tests.
2209 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
2210 # Use the TestEnvironmentDiscoveryService to get supported options.
2211 # Defaults to the latest Xcode version Firebase Test Lab supports.
2212 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
2213 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
2214 # tests zip. Because the .xctestrun file contains environment variables along
2215 # with test methods to run and/or ignore, this can be useful for sharding
2216 # tests. Default is taken from the tests zip.
2217 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2218 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2219 },
2220 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
2221 # app having special entitlements with an explicit application-identifier.
2222 # Currently supports testing aps-environment entitlement.
2223 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
2224 # DerivedData/Build/Products directory.
2225 # The .xctestrun file in this zip is ignored if the xctestrun field is
2226 # specified.
2227 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2228 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2229 },
2230 },
2231 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
2232 # This test type accepts an archived application (.ipa file) and a list of
2233 # integer scenarios that will be executed on the app sequentially.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002234 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
2235 # single scenario 0 if unspecified.
2236 42,
2237 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002238 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
2239 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
2240 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2241 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2242 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002243 },
2244 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
2245 # automatically cancelled.
2246 # The default value is 5 min.
2247 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
2248 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
2249 # Available network profiles can be queried by using the
2250 # NETWORK_CONFIGURATION environment type when calling
2251 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
2252 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002253 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
2254 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
2255 # user of this api, for the time being.
2256 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2257 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2258 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2259 },
2260 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2261 # The default is determined by examining the application&#x27;s manifest.
2262 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2263 # a base module directory, zero or more dynamic feature module directories.
2264 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2265 # building App Bundles.
2266 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2267 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2268 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2269 },
2270 },
2271 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
2272 # The default is all test loops, derived from the application&#x27;s
2273 # manifest.
2274 42,
2275 ],
2276 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
2277 # The scenario labels should map to labels defined in the application&#x27;s
2278 # manifest. For example, player_experience and
2279 # com.google.test.loops.player_experience add all of the loops labeled in the
2280 # manifest with the com.google.test.loops.player_experience name to the
2281 # execution.
2282 # Scenarios can also be specified in the scenarios field.
2283 &quot;A String&quot;,
2284 ],
2285 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002286 &quot;testSetup&quot;: { # 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
2287 # scripts.
2288 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
2289 { # A single device file description.
2290 &quot;obbFile&quot;: { # An opaque binary blob file to install on the device before the test starts. # A reference to an opaque binary blob file.
2291 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
2292 # Android
2293 # e.g. [main|patch].0300110.com.example.android.obb
2294 # which will be installed into
2295 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
2296 # on the device.
2297 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
2298 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2299 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2300 },
2301 },
2302 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
2303 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
2304 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2305 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2306 },
2307 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
2308 # whitelisted path. If the file exists, it will be replaced.
2309 # The following device-side directories and any of their subdirectories are
2310 # whitelisted:
2311 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
2312 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
2313 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
2314 #
2315 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
2316 # implicit path substitutions. E.g. if /sdcard on a particular device does
2317 # not map to external storage, the system will replace it with the external
2318 # storage path prefix for that device and copy the file there.
2319 #
2320 # &lt;p&gt; It is strongly advised to use the &lt;a href=
2321 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
2322 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
2323 # portable way.
2324 },
2325 },
2326 ],
2327 &quot;account&quot;: { # Identifies an account and how to log into it. # The device will be logged in on this account for the duration of the test.
2328 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
2329 # If set, the service automatically generates a Google test account and adds
2330 # it to the device, before executing the test. Note that test accounts might be
2331 # reused.
2332 # Many applications show their full set of functionalities when an account is
2333 # present on the device. Logging into the device with these generated accounts
2334 # allows testing more functionalities.
2335 },
2336 },
2337 &quot;systrace&quot;: { # Systrace configuration for the run.
2338 # If set a systrace will be taken, starting on test start and lasting for the
2339 # configured duration. The systrace file thus obtained is put in the results
2340 # bucket together with the other artifacts from the run.
2341 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
2342 # Should be between 1 and 30 seconds. 0 disables systrace.
2343 },
2344 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
2345 # they must be absolute paths under /sdcard or /data/local/tmp.
2346 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
2347 #
2348 # Note: The paths /sdcard and /data will be made available and treated as
2349 # implicit path substitutions. E.g. if /sdcard on a particular device does
2350 # not map to external storage, the system will replace it with the external
2351 # storage path prefix for that device.
2352 &quot;A String&quot;,
2353 ],
2354 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
2355 # Available network profiles can be queried by using the
2356 # NETWORK_CONFIGURATION environment type when calling
2357 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
2358 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
2359 # instrumentation tests).
2360 { # A key-value pair passed as an environment variable to the test.
2361 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
2362 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
2363 },
2364 ],
2365 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
2366 # Currently capped at 100.
2367 { # An Android package file to install.
2368 &quot;location&quot;: { # A reference to a file, used for user inputs. # The path to an APK to be installed on the device before the test begins.
2369 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2370 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2371 },
2372 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
2373 # Value is determined by examining the application&#x27;s manifest.
2374 },
2375 ],
2376 },
2377 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
2378 # or physical Android Device, finding culprits and crashes as it goes.
2379 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
2380 # 2 to make Robo explore the app beyond the first activity.
2381 # Default is 50.
2382 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2383 # The default value is determined by examining the application&#x27;s manifest.
2384 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2385 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2386 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2387 },
2388 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
2389 # If none are provided, then the main launcher activity is launched.
2390 # If some are provided, then only those provided are launched (the main
2391 # launcher activity must be provided explicitly).
2392 { # Message for specifying the start activities to crawl.
2393 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
2394 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
2395 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
2396 &quot;categories&quot;: [ # Intent categories to set on the intent.
2397 &quot;A String&quot;,
2398 ],
2399 &quot;action&quot;: &quot;A String&quot;, # Action name.
2400 # Required for START_ACTIVITY.
2401 },
2402 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
2403 },
2404 },
2405 ],
2406 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
2407 # Default is no limit.
2408 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
2409 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
2410 # This allows users to customize the crawl. For example, the username and
2411 # password for a test account can be provided.
2412 { # Directs Robo to interact with a specific UI element if it is encountered
2413 # during the crawl. Currently, Robo can perform text entry or element click.
2414 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
2415 # element.
2416 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
2417 # For example,
2418 # in Java: R.string.foo
2419 # in xml: @string/foo
2420 # Only the &quot;foo&quot; part is needed.
2421 # Reference doc:
2422 # https://developer.android.com/guide/topics/resources/accessing-resources.html
2423 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
2424 # treated as a CLICK on the element matching the resource_name.
2425 },
2426 ],
2427 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2428 # a base module directory, zero or more dynamic feature module directories.
2429 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2430 # building App Bundles.
2431 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2432 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2433 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2434 },
2435 },
2436 &quot;roboScript&quot;: { # A reference to a file, used for user inputs. # A JSON file with a sequence of actions Robo should perform as a prologue
2437 # for the crawl.
2438 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2439 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2440 },
2441 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002442 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
2443 # independently of its normal lifecycle.
2444 # Android instrumentation tests run an application APK and test APK inside the
2445 # same process on a virtual or physical AndroidDevice. They also specify
2446 # a test runner class, such as com.google.GoogleTestRunner, which can vary
2447 # on the specific instrumentation framework chosen.
2448 #
2449 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
2450 # more information on types of Android tests.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002451 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2452 # a base module directory, zero or more dynamic feature module directories.
2453 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2454 # building App Bundles.
2455 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2456 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2457 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2458 },
2459 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002460 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
2461 # instrumentation with Android Test Orchestrator or not.
2462 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
2463 # higher! **
2464 # Orchestrator offers the following benefits:
2465 # - No shared state
2466 # - Crashes are isolated
2467 # - Logs are scoped per test
2468 #
2469 # See
2470 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
2471 # for more information about Android Test Orchestrator.
2472 #
2473 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -07002474 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
2475 # in one of these formats:
2476 # - &quot;package package_name&quot;
2477 # - &quot;class package_name.class_name&quot;
2478 # - &quot;class package_name.class_name#method_name&quot;
2479 #
2480 # If empty, all targets in the module will be run.
2481 &quot;A String&quot;,
2482 ],
2483 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
2484 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2485 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2486 },
2487 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
2488 # The default value is determined by examining the application&#x27;s manifest.
2489 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002490 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
2491 #
2492 # For Instrumentation test, it will be translated to “-e numShard” “-e
2493 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
2494 # specifying these sharding arguments via environment_variables is invalid.
2495 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
2496 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002497 &quot;manualSharding&quot;: { # Shards test cases into the specified groups of packages, classes, and/or # Shards test cases into the specified groups of packages, classes, and/or
2498 # methods.
2499 # methods.
2500 #
2501 # With manual sharding enabled, specifying test targets via
2502 # environment_variables or in InstrumentationTest is invalid.
2503 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
2504 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
2505 { # Test targets for a shard.
2506 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
2507 # The targets need to be specified in AndroidJUnitRunner argument format. For
2508 # example, “package com.my.packages” “class com.my.package.MyClass”.
2509 #
2510 # The number of shard_test_targets must be greater than 0.
2511 &quot;A String&quot;,
2512 ],
2513 },
2514 ],
2515 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002516 },
2517 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
2518 # The default value is determined by examining the application&#x27;s manifest.
2519 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2520 # The default value is determined by examining the application&#x27;s manifest.
2521 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2522 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2523 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2524 },
2525 },
2526 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
2527 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
2528 },
2529 &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002530 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test execution was initially created.
2531 &quot;shard&quot;: { # Output only. Details about the shard. # Output only. Details about the shard.
2532 &quot;shardIndex&quot;: 42, # Output only. The index of the shard among all the shards.
2533 &quot;testTargetsForShard&quot;: { # Test targets for a shard. # Output only. Test targets for each shard.
2534 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
2535 # The targets need to be specified in AndroidJUnitRunner argument format. For
2536 # example, “package com.my.packages” “class com.my.package.MyClass”.
2537 #
2538 # The number of shard_test_targets must be greater than 0.
2539 &quot;A String&quot;,
2540 ],
2541 },
2542 &quot;numShards&quot;: 42, # Output only. The total number of shards.
2543 },
2544 &quot;matrixId&quot;: &quot;A String&quot;, # Output only. Id of the containing TestMatrix.
2545 &quot;testDetails&quot;: { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
2546 &quot;errorMessage&quot;: &quot;A String&quot;, # Output only. If the TestState is ERROR, then this string will contain
2547 # human-readable details about the error.
2548 &quot;progressMessages&quot;: [ # Output only. Human-readable, detailed descriptions of the test&#x27;s progress.
2549 # For example: &quot;Provisioning a device&quot;, &quot;Starting Test&quot;.
2550 #
2551 # During the course of execution new data may be appended
2552 # to the end of progress_messages.
2553 &quot;A String&quot;,
2554 ],
2555 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002556 },
2557 ],
2558 &quot;environmentMatrix&quot;: { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
Bu Sun Kim65020912020-05-20 12:08:20 -07002559 &quot;androidMatrix&quot;: { # A set of Android device configuration permutations is defined by the # A matrix of Android devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002560 # the cross-product of the given axes. Internally, the given AndroidMatrix
2561 # will be expanded into a set of AndroidDevices.
2562 #
2563 # Only supported permutations will be instantiated. Invalid permutations
2564 # (e.g., incompatible models/versions) are ignored.
Bu Sun Kim65020912020-05-20 12:08:20 -07002565 &quot;androidModelIds&quot;: [ # Required. The ids of the set of Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002566 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002567 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002568 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002569 &quot;orientations&quot;: [ # Required. The set of orientations to test with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002570 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002571 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002572 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002573 &quot;androidVersionIds&quot;: [ # Required. The ids of the set of Android OS version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002574 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002575 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002576 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002577 &quot;locales&quot;: [ # Required. The set of locales the test device will enable for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002578 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002579 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002580 ],
2581 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002582 &quot;iosDeviceList&quot;: { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
2583 &quot;iosDevices&quot;: [ # Required. A list of iOS devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002584 { # A single iOS device.
Bu Sun Kim65020912020-05-20 12:08:20 -07002585 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002586 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002587 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002588 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002589 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002590 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002591 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002592 # Use the TestEnvironmentDiscoveryService to get supported options.
2593 },
2594 ],
2595 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002596 &quot;androidDeviceList&quot;: { # 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
2597 # devices.
2598 &quot;androidDevices&quot;: [ # Required. A list of Android devices.
2599 { # A single Android device.
2600 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
2601 # Use the TestEnvironmentDiscoveryService to get supported options.
2602 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
2603 # Use the TestEnvironmentDiscoveryService to get supported options.
2604 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
2605 # Use the TestEnvironmentDiscoveryService to get supported options.
2606 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
2607 # Use the TestEnvironmentDiscoveryService to get supported options.
2608 },
2609 ],
2610 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002611 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002612 &quot;resultStorage&quot;: { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002613 &quot;toolResultsExecution&quot;: { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
2614 #
2615 # This has the results of a TestMatrix.
2616 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results execution.
2617 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
2618 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
2619 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002620 &quot;resultsUrl&quot;: &quot;A String&quot;, # Output only. URL to the results in the Firebase Web Console.
2621 &quot;toolResultsHistory&quot;: { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
2622 # results are written to.
2623 #
2624 # If not provided, the service will choose an appropriate value.
2625 &quot;projectId&quot;: &quot;A String&quot;, # Required. The cloud project that owns the tool results history.
2626 &quot;historyId&quot;: &quot;A String&quot;, # Required. A tool results history ID.
2627 },
2628 &quot;googleCloudStorage&quot;: { # A storage location within Google cloud storage (GCS). # Required.
2629 &quot;gcsPath&quot;: &quot;A String&quot;, # Required. The path to a directory in GCS that will
2630 # eventually contain the results for this test.
2631 # The requesting user must have write access on the bucket in the supplied
2632 # path.
2633 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002634 },
2635 &quot;testMatrixId&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002636 &quot;invalidMatrixDetails&quot;: &quot;A String&quot;, # Output only. Describes why the matrix is considered invalid.
2637 # Only useful for matrices in the INVALID state.
2638 &quot;outcomeSummary&quot;: &quot;A String&quot;, # Output Only. The overall outcome of the test.
2639 # Only set when the test matrix state is FINISHED.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002640 }</pre>
2641</div>
2642
2643</body></html>