blob: f9f6fb0e1bd7209b83b4cd0308b76469b474af3f [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;invalidMatrixDetails&quot;: &quot;A String&quot;, # Output only. Describes why the matrix is considered invalid.
138 # Only useful for matrices in the INVALID state.
139 &quot;outcomeSummary&quot;: &quot;A String&quot;, # Output Only. The overall outcome of the test.
140 # Only set when the test matrix state is FINISHED.
141 &quot;testSpecification&quot;: { # A description of how to run the test. # Required. How to run the test.
142 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
143 # Xcode supports the option to &quot;build for testing&quot;, which generates an
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700144 # .xctestrun file that contains a test specification (arguments, test methods,
145 # etc). This test type accepts a zip file containing the .xctestrun file and
146 # the corresponding contents of the Build/Products directory that contains all
147 # the binaries needed to run the tests.
Bu Sun Kim65020912020-05-20 12:08:20 -0700148 &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 -0700149 # Use the TestEnvironmentDiscoveryService to get supported options.
150 # Defaults to the latest Xcode version Firebase Test Lab supports.
Bu Sun Kim65020912020-05-20 12:08:20 -0700151 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
152 &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 -0700153 # tests zip. Because the .xctestrun file contains environment variables along
154 # with test methods to run and/or ignore, this can be useful for sharding
155 # tests. Default is taken from the tests zip.
Bu Sun Kim65020912020-05-20 12:08:20 -0700156 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700157 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
158 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700159 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
160 # app having special entitlements with an explicit application-identifier.
161 # Currently supports testing aps-environment entitlement.
162 &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 -0700163 # DerivedData/Build/Products directory.
164 # The .xctestrun file in this zip is ignored if the xctestrun field is
165 # specified.
Bu Sun Kim65020912020-05-20 12:08:20 -0700166 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700167 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
168 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700169 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700170 &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 -0700171 # This test type accepts an archived application (.ipa file) and a list of
172 # integer scenarios that will be executed on the app sequentially.
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 },
178 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
Dan O'Mearadd494642020-05-01 07:42:23 -0700179 # single scenario 0 if unspecified.
180 42,
181 ],
Dan O'Mearadd494642020-05-01 07:42:23 -0700182 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700183 &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 -0700184 # automatically cancelled.
185 # The default value is 5 min.
Bu Sun Kim65020912020-05-20 12:08:20 -0700186 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
187 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
188 # Available network profiles can be queried by using the
189 # NETWORK_CONFIGURATION environment type when calling
190 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
191 },
192 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
193 # or physical Android Device, finding culprits and crashes as it goes.
194 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
195 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
196 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
197 },
198 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
199 # The default value is determined by examining the application&#x27;s manifest.
200 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
201 # If none are provided, then the main launcher activity is launched.
202 # If some are provided, then only those provided are launched (the main
203 # launcher activity must be provided explicitly).
204 { # Message for specifying the start activities to crawl.
205 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
206 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
207 &quot;action&quot;: &quot;A String&quot;, # Action name.
208 # Required for START_ACTIVITY.
209 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
210 &quot;categories&quot;: [ # Intent categories to set on the intent.
211 &quot;A String&quot;,
212 ],
213 },
214 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
215 },
216 },
217 ],
218 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
219 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
220 # Default is no limit.
221 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
222 # a base module directory, zero or more dynamic feature module directories.
223 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
224 # building App Bundles.
225 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
226 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
227 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
228 },
229 },
230 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
231 # This allows users to customize the crawl. For example, the username and
232 # password for a test account can be provided.
233 { # Directs Robo to interact with a specific UI element if it is encountered
234 # during the crawl. Currently, Robo can perform text entry or element click.
235 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
236 # element.
237 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
238 # For example,
239 # in Java: R.string.foo
240 # in xml: @string/foo
241 # Only the &quot;foo&quot; part is needed.
242 # Reference doc:
243 # https://developer.android.com/guide/topics/resources/accessing-resources.html
244 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
245 # treated as a CLICK on the element matching the resource_name.
246 },
247 ],
248 &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
249 # for the crawl.
250 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
251 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
252 },
253 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
254 # 2 to make Robo explore the app beyond the first activity.
255 # Default is 50.
256 },
257 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700258 # scripts.
Bu Sun Kim65020912020-05-20 12:08:20 -0700259 &quot;systrace&quot;: { # Systrace configuration for the run.
260 # If set a systrace will be taken, starting on test start and lasting for the
261 # configured duration. The systrace file thus obtained is put in the results
262 # bucket together with the other artifacts from the run.
263 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
264 # Should be between 1 and 30 seconds. 0 disables systrace.
265 },
266 &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.
267 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700268 # If set, the service automatically generates a Google test account and adds
269 # it to the device, before executing the test. Note that test accounts might be
270 # reused.
271 # Many applications show their full set of functionalities when an account is
272 # present on the device. Logging into the device with these generated accounts
273 # allows testing more functionalities.
274 },
275 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700276 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700277 # they must be absolute paths under /sdcard or /data/local/tmp.
278 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
279 #
280 # Note: The paths /sdcard and /data will be made available and treated as
281 # implicit path substitutions. E.g. if /sdcard on a particular device does
282 # not map to external storage, the system will replace it with the external
283 # storage path prefix for that device.
Bu Sun Kim65020912020-05-20 12:08:20 -0700284 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700285 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700286 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
287 # Available network profiles can be queried by using the
288 # NETWORK_CONFIGURATION environment type when calling
289 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
290 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
Dan O'Mearadd494642020-05-01 07:42:23 -0700291 # instrumentation tests).
292 { # A key-value pair passed as an environment variable to the test.
Bu Sun Kim65020912020-05-20 12:08:20 -0700293 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
294 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
Dan O'Mearadd494642020-05-01 07:42:23 -0700295 },
296 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700297 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
298 # Currently capped at 100.
299 { # An Android package file to install.
300 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
301 # Value is determined by examining the application&#x27;s manifest.
302 &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.
303 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
304 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
305 },
306 },
307 ],
308 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700309 { # A single device file description.
Bu Sun Kim65020912020-05-20 12:08:20 -0700310 &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.
311 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
312 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700313 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
314 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700315 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
316 # Android
317 # e.g. [main|patch].0300110.com.example.android.obb
318 # which will be installed into
319 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
320 # on the device.
321 },
322 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
323 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700324 # whitelisted path. If the file exists, it will be replaced.
325 # The following device-side directories and any of their subdirectories are
326 # whitelisted:
Dan O'Mearadd494642020-05-01 07:42:23 -0700327 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
328 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
329 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700330 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700331 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700332 # implicit path substitutions. E.g. if /sdcard on a particular device does
333 # not map to external storage, the system will replace it with the external
334 # storage path prefix for that device and copy the file there.
335 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700336 # &lt;p&gt; It is strongly advised to use the &lt;a href=
Bu Sun Kim65020912020-05-20 12:08:20 -0700337 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
Dan O'Mearadd494642020-05-01 07:42:23 -0700338 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700339 # portable way.
Bu Sun Kim65020912020-05-20 12:08:20 -0700340 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
341 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700342 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
343 },
344 },
345 },
346 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700347 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700348 &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 -0700349 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700350 # user of this api, for the time being.
Bu Sun Kim65020912020-05-20 12:08:20 -0700351 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
352 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
353 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
354 },
355 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
356 # The default is determined by examining the application&#x27;s manifest.
357 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
358 # a base module directory, zero or more dynamic feature module directories.
359 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
360 # building App Bundles.
361 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
362 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
363 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
364 },
365 },
366 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
367 # The default is all test loops, derived from the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700368 # manifest.
369 42,
370 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700371 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
372 # The scenario labels should map to labels defined in the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700373 # manifest. For example, player_experience and
374 # com.google.test.loops.player_experience add all of the loops labeled in the
375 # manifest with the com.google.test.loops.player_experience name to the
376 # execution.
377 # Scenarios can also be specified in the scenarios field.
Bu Sun Kim65020912020-05-20 12:08:20 -0700378 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700379 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700380 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700381 &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 -0700382 # independently of its normal lifecycle.
383 # Android instrumentation tests run an application APK and test APK inside the
384 # same process on a virtual or physical AndroidDevice. They also specify
385 # a test runner class, such as com.google.GoogleTestRunner, which can vary
386 # on the specific instrumentation framework chosen.
387 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700388 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700389 # more information on types of Android tests.
Bu Sun Kim65020912020-05-20 12:08:20 -0700390 &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 -0700391 # instrumentation with Android Test Orchestrator or not.
392 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
393 # higher! **
394 # Orchestrator offers the following benefits:
395 # - No shared state
396 # - Crashes are isolated
397 # - Logs are scoped per test
398 #
399 # See
Dan O'Mearadd494642020-05-01 07:42:23 -0700400 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700401 # for more information about Android Test Orchestrator.
402 #
403 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -0700404 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
405 # a base module directory, zero or more dynamic feature module directories.
406 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
407 # building App Bundles.
408 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
409 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
410 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
411 },
412 },
413 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
414 # in one of these formats:
415 # - &quot;package package_name&quot;
416 # - &quot;class package_name.class_name&quot;
417 # - &quot;class package_name.class_name#method_name&quot;
418 #
419 # If empty, all targets in the module will be run.
420 &quot;A String&quot;,
421 ],
422 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
423 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
424 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
425 },
426 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
427 # The default value is determined by examining the application&#x27;s manifest.
428 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
429 &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 -0700430 # methods.
431 # methods.
432 #
433 # With manual sharding enabled, specifying test targets via
434 # environment_variables or in InstrumentationTest is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -0700435 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
Dan O'Mearadd494642020-05-01 07:42:23 -0700436 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
437 { # Test targets for a shard.
Bu Sun Kim65020912020-05-20 12:08:20 -0700438 &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 -0700439 # The targets need to be specified in AndroidJUnitRunner argument format. For
440 # example, “package com.my.packages” “class com.my.package.MyClass”.
441 #
442 # The number of shard_test_targets must be greater than 0.
Bu Sun Kim65020912020-05-20 12:08:20 -0700443 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700444 ],
445 },
446 ],
447 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700448 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
Dan O'Mearadd494642020-05-01 07:42:23 -0700449 #
450 # For Instrumentation test, it will be translated to “-e numShard” “-e
451 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
452 # specifying these sharding arguments via environment_variables is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -0700453 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
Dan O'Mearadd494642020-05-01 07:42:23 -0700454 },
455 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700456 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
457 # The default value is determined by examining the application&#x27;s manifest.
458 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
459 # The default value is determined by examining the application&#x27;s manifest.
460 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
461 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
462 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
463 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700464 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700465 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
466 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700467 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700468 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project that owns the test matrix.
469 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test matrix was initially created.
470 &quot;flakyTestAttempts&quot;: 42, # The number of times a TestExecution should be re-attempted if one or more
471 # of its test cases fail for any reason.
472 # The maximum number of reruns allowed is 10.
473 #
474 # Default is 0, which implies no reruns.
475 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test matrix.
476 &quot;clientInfo&quot;: { # Information about the client which invoked the test. # Information about the client which invoked the test.
477 &quot;clientInfoDetails&quot;: [ # The list of detailed information about client.
478 { # Key-value pair of detailed information about the client which invoked the
479 # test. Examples: {&#x27;Version&#x27;, &#x27;1.0&#x27;}, {&#x27;Release Track&#x27;, &#x27;BETA&#x27;}.
480 &quot;value&quot;: &quot;A String&quot;, # Required. The value of detailed client information.
481 &quot;key&quot;: &quot;A String&quot;, # Required. The key of detailed client information.
482 },
483 ],
484 &quot;name&quot;: &quot;A String&quot;, # Required. Client name, such as gcloud.
485 },
486 &quot;testExecutions&quot;: [ # Output only. The list of test executions that the service creates for
487 # this matrix.
488 { # A single test executed in a single environment.
489 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test execution was initially created.
490 &quot;shard&quot;: { # Output only. Details about the shard. # Output only. Details about the shard.
491 &quot;shardIndex&quot;: 42, # Output only. The index of the shard among all the shards.
492 &quot;testTargetsForShard&quot;: { # Test targets for a shard. # Output only. Test targets for each shard.
493 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
494 # The targets need to be specified in AndroidJUnitRunner argument format. For
495 # example, “package com.my.packages” “class com.my.package.MyClass”.
496 #
497 # The number of shard_test_targets must be greater than 0.
498 &quot;A String&quot;,
499 ],
500 },
501 &quot;numShards&quot;: 42, # Output only. The total number of shards.
502 },
503 &quot;matrixId&quot;: &quot;A String&quot;, # Output only. Id of the containing TestMatrix.
504 &quot;testDetails&quot;: { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
505 &quot;progressMessages&quot;: [ # Output only. Human-readable, detailed descriptions of the test&#x27;s progress.
506 # For example: &quot;Provisioning a device&quot;, &quot;Starting Test&quot;.
507 #
508 # During the course of execution new data may be appended
509 # to the end of progress_messages.
510 &quot;A String&quot;,
511 ],
512 &quot;errorMessage&quot;: &quot;A String&quot;, # Output only. If the TestState is ERROR, then this string will contain
513 # human-readable details about the error.
514 },
515 &quot;environment&quot;: { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
516 &quot;iosDevice&quot;: { # A single iOS device. # An iOS device which must be used with an iOS test.
517 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
518 # Use the TestEnvironmentDiscoveryService to get supported options.
519 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
520 # Use the TestEnvironmentDiscoveryService to get supported options.
521 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
522 # Use the TestEnvironmentDiscoveryService to get supported options.
523 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
524 # Use the TestEnvironmentDiscoveryService to get supported options.
525 },
526 &quot;androidDevice&quot;: { # A single Android device. # An Android device which must be used with an Android test.
527 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
528 # Use the TestEnvironmentDiscoveryService to get supported options.
529 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
530 # Use the TestEnvironmentDiscoveryService to get supported options.
531 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
532 # Use the TestEnvironmentDiscoveryService to get supported options.
533 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
534 # Use the TestEnvironmentDiscoveryService to get supported options.
535 },
536 },
537 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test execution
538 # (e.g., FINISHED).
539 &quot;toolResultsStep&quot;: { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
540 #
541 # This has the results of a TestExecution.
542 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
543 &quot;stepId&quot;: &quot;A String&quot;, # Output only. A tool results step ID.
544 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results step.
545 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
546 },
547 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the test execution.
548 &quot;testSpecification&quot;: { # A description of how to run the test. # Output only. How to run the test.
549 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
550 # Xcode supports the option to &quot;build for testing&quot;, which generates an
551 # .xctestrun file that contains a test specification (arguments, test methods,
552 # etc). This test type accepts a zip file containing the .xctestrun file and
553 # the corresponding contents of the Build/Products directory that contains all
554 # the binaries needed to run the tests.
555 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
556 # Use the TestEnvironmentDiscoveryService to get supported options.
557 # Defaults to the latest Xcode version Firebase Test Lab supports.
558 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
559 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
560 # tests zip. Because the .xctestrun file contains environment variables along
561 # with test methods to run and/or ignore, this can be useful for sharding
562 # tests. Default is taken from the tests zip.
563 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
564 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
565 },
566 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
567 # app having special entitlements with an explicit application-identifier.
568 # Currently supports testing aps-environment entitlement.
569 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
570 # DerivedData/Build/Products directory.
571 # The .xctestrun file in this zip is ignored if the xctestrun field is
572 # specified.
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 },
577 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
578 # This test type accepts an archived application (.ipa file) and a list of
579 # integer scenarios that will be executed on the app sequentially.
580 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
581 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
582 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
583 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
584 },
585 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
586 # single scenario 0 if unspecified.
587 42,
588 ],
589 },
590 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
591 # automatically cancelled.
592 # The default value is 5 min.
593 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
594 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
595 # Available network profiles can be queried by using the
596 # NETWORK_CONFIGURATION environment type when calling
597 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
598 },
599 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
600 # or physical Android Device, finding culprits and crashes as it goes.
601 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
602 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
603 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
604 },
605 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
606 # The default value is determined by examining the application&#x27;s manifest.
607 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
608 # If none are provided, then the main launcher activity is launched.
609 # If some are provided, then only those provided are launched (the main
610 # launcher activity must be provided explicitly).
611 { # Message for specifying the start activities to crawl.
612 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
613 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
614 &quot;action&quot;: &quot;A String&quot;, # Action name.
615 # Required for START_ACTIVITY.
616 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
617 &quot;categories&quot;: [ # Intent categories to set on the intent.
618 &quot;A String&quot;,
619 ],
620 },
621 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
622 },
623 },
624 ],
625 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
626 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
627 # Default is no limit.
628 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
629 # a base module directory, zero or more dynamic feature module directories.
630 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
631 # building App Bundles.
632 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
633 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
634 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
635 },
636 },
637 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
638 # This allows users to customize the crawl. For example, the username and
639 # password for a test account can be provided.
640 { # Directs Robo to interact with a specific UI element if it is encountered
641 # during the crawl. Currently, Robo can perform text entry or element click.
642 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
643 # element.
644 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
645 # For example,
646 # in Java: R.string.foo
647 # in xml: @string/foo
648 # Only the &quot;foo&quot; part is needed.
649 # Reference doc:
650 # https://developer.android.com/guide/topics/resources/accessing-resources.html
651 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
652 # treated as a CLICK on the element matching the resource_name.
653 },
654 ],
655 &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
656 # for the crawl.
657 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
658 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
659 },
660 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
661 # 2 to make Robo explore the app beyond the first activity.
662 # Default is 50.
663 },
664 &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
665 # scripts.
666 &quot;systrace&quot;: { # Systrace configuration for the run.
667 # If set a systrace will be taken, starting on test start and lasting for the
668 # configured duration. The systrace file thus obtained is put in the results
669 # bucket together with the other artifacts from the run.
670 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
671 # Should be between 1 and 30 seconds. 0 disables systrace.
672 },
673 &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.
674 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
675 # If set, the service automatically generates a Google test account and adds
676 # it to the device, before executing the test. Note that test accounts might be
677 # reused.
678 # Many applications show their full set of functionalities when an account is
679 # present on the device. Logging into the device with these generated accounts
680 # allows testing more functionalities.
681 },
682 },
683 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
684 # they must be absolute paths under /sdcard or /data/local/tmp.
685 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
686 #
687 # Note: The paths /sdcard and /data will be made available and treated as
688 # implicit path substitutions. E.g. if /sdcard on a particular device does
689 # not map to external storage, the system will replace it with the external
690 # storage path prefix for that device.
691 &quot;A String&quot;,
692 ],
693 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
694 # Available network profiles can be queried by using the
695 # NETWORK_CONFIGURATION environment type when calling
696 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
697 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
698 # instrumentation tests).
699 { # A key-value pair passed as an environment variable to the test.
700 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
701 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
702 },
703 ],
704 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
705 # Currently capped at 100.
706 { # An Android package file to install.
707 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
708 # Value is determined by examining the application&#x27;s manifest.
709 &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.
710 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
711 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
712 },
713 },
714 ],
715 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
716 { # A single device file description.
717 &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.
718 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
719 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
720 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
721 },
722 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
723 # Android
724 # e.g. [main|patch].0300110.com.example.android.obb
725 # which will be installed into
726 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
727 # on the device.
728 },
729 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
730 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
731 # whitelisted path. If the file exists, it will be replaced.
732 # The following device-side directories and any of their subdirectories are
733 # whitelisted:
734 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
735 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
736 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
737 #
738 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
739 # implicit path substitutions. E.g. if /sdcard on a particular device does
740 # not map to external storage, the system will replace it with the external
741 # storage path prefix for that device and copy the file there.
742 #
743 # &lt;p&gt; It is strongly advised to use the &lt;a href=
744 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
745 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
746 # portable way.
747 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
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 },
753 ],
754 },
755 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
756 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
757 # user of this api, for the time being.
758 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
759 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
760 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
761 },
762 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
763 # The default is determined by examining the application&#x27;s manifest.
764 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
765 # a base module directory, zero or more dynamic feature module directories.
766 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
767 # building App Bundles.
768 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
769 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
770 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
771 },
772 },
773 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
774 # The default is all test loops, derived from the application&#x27;s
775 # manifest.
776 42,
777 ],
778 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
779 # The scenario labels should map to labels defined in the application&#x27;s
780 # manifest. For example, player_experience and
781 # com.google.test.loops.player_experience add all of the loops labeled in the
782 # manifest with the com.google.test.loops.player_experience name to the
783 # execution.
784 # Scenarios can also be specified in the scenarios field.
785 &quot;A String&quot;,
786 ],
787 },
788 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
789 # independently of its normal lifecycle.
790 # Android instrumentation tests run an application APK and test APK inside the
791 # same process on a virtual or physical AndroidDevice. They also specify
792 # a test runner class, such as com.google.GoogleTestRunner, which can vary
793 # on the specific instrumentation framework chosen.
794 #
795 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
796 # more information on types of Android tests.
797 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
798 # instrumentation with Android Test Orchestrator or not.
799 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
800 # higher! **
801 # Orchestrator offers the following benefits:
802 # - No shared state
803 # - Crashes are isolated
804 # - Logs are scoped per test
805 #
806 # See
807 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
808 # for more information about Android Test Orchestrator.
809 #
810 # If not set, the test will be run without the orchestrator.
811 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
812 # a base module directory, zero or more dynamic feature module directories.
813 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
814 # building App Bundles.
815 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
816 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
817 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
818 },
819 },
820 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
821 # in one of these formats:
822 # - &quot;package package_name&quot;
823 # - &quot;class package_name.class_name&quot;
824 # - &quot;class package_name.class_name#method_name&quot;
825 #
826 # If empty, all targets in the module will be run.
827 &quot;A String&quot;,
828 ],
829 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
830 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
831 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
832 },
833 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
834 # The default value is determined by examining the application&#x27;s manifest.
835 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
836 &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
837 # methods.
838 # methods.
839 #
840 # With manual sharding enabled, specifying test targets via
841 # environment_variables or in InstrumentationTest is invalid.
842 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
843 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
844 { # Test targets for a shard.
845 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
846 # The targets need to be specified in AndroidJUnitRunner argument format. For
847 # example, “package com.my.packages” “class com.my.package.MyClass”.
848 #
849 # The number of shard_test_targets must be greater than 0.
850 &quot;A String&quot;,
851 ],
852 },
853 ],
854 },
855 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
856 #
857 # For Instrumentation test, it will be translated to “-e numShard” “-e
858 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
859 # specifying these sharding arguments via environment_variables is invalid.
860 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
861 },
862 },
863 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
864 # The default value is determined by examining the application&#x27;s manifest.
865 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
866 # The default value is determined by examining the application&#x27;s manifest.
867 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
868 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
869 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
870 },
871 },
872 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
873 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
874 },
875 &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
876 },
877 ],
878 &quot;environmentMatrix&quot;: { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
879 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700880 # devices.
Bu Sun Kim65020912020-05-20 12:08:20 -0700881 &quot;androidDevices&quot;: [ # Required. A list of Android devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700882 { # A single Android device.
Bu Sun Kim65020912020-05-20 12:08:20 -0700883 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700884 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700885 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
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;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700888 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700889 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700890 # Use the TestEnvironmentDiscoveryService to get supported options.
891 },
892 ],
893 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700894 &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 -0700895 # the cross-product of the given axes. Internally, the given AndroidMatrix
896 # will be expanded into a set of AndroidDevices.
897 #
898 # Only supported permutations will be instantiated. Invalid permutations
899 # (e.g., incompatible models/versions) are ignored.
Bu Sun Kim65020912020-05-20 12:08:20 -0700900 &quot;androidModelIds&quot;: [ # Required. The ids of the set of Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700901 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700902 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700903 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700904 &quot;orientations&quot;: [ # Required. The set of orientations to test with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700905 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700906 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700907 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700908 &quot;androidVersionIds&quot;: [ # Required. The ids of the set of Android OS version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700909 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700910 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700911 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700912 &quot;locales&quot;: [ # Required. The set of locales the test device will enable for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700913 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700914 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700915 ],
916 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700917 &quot;iosDeviceList&quot;: { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
918 &quot;iosDevices&quot;: [ # Required. A list of iOS devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700919 { # A single iOS device.
Bu Sun Kim65020912020-05-20 12:08:20 -0700920 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700921 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700922 &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 -0700923 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700924 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700925 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700926 &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 -0700927 # Use the TestEnvironmentDiscoveryService to get supported options.
928 },
929 ],
930 },
931 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700932 &quot;resultStorage&quot;: { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
933 &quot;resultsUrl&quot;: &quot;A String&quot;, # Output only. URL to the results in the Firebase Web Console.
934 &quot;toolResultsHistory&quot;: { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
935 # results are written to.
936 #
937 # If not provided, the service will choose an appropriate value.
938 &quot;projectId&quot;: &quot;A String&quot;, # Required. The cloud project that owns the tool results history.
939 &quot;historyId&quot;: &quot;A String&quot;, # Required. A tool results history ID.
940 },
941 &quot;googleCloudStorage&quot;: { # A storage location within Google cloud storage (GCS). # Required.
942 &quot;gcsPath&quot;: &quot;A String&quot;, # Required. The path to a directory in GCS that will
943 # eventually contain the results for this test.
944 # The requesting user must have write access on the bucket in the supplied
945 # path.
946 },
947 &quot;toolResultsExecution&quot;: { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
948 #
949 # This has the results of a TestMatrix.
950 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results execution.
951 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
952 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
953 },
954 },
955 &quot;testMatrixId&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
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;invalidMatrixDetails&quot;: &quot;A String&quot;, # Output only. Describes why the matrix is considered invalid.
976 # Only useful for matrices in the INVALID state.
977 &quot;outcomeSummary&quot;: &quot;A String&quot;, # Output Only. The overall outcome of the test.
978 # Only set when the test matrix state is FINISHED.
979 &quot;testSpecification&quot;: { # A description of how to run the test. # Required. How to run the test.
980 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
981 # Xcode supports the option to &quot;build for testing&quot;, which generates an
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700982 # .xctestrun file that contains a test specification (arguments, test methods,
983 # etc). This test type accepts a zip file containing the .xctestrun file and
984 # the corresponding contents of the Build/Products directory that contains all
985 # the binaries needed to run the tests.
Bu Sun Kim65020912020-05-20 12:08:20 -0700986 &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 -0700987 # Use the TestEnvironmentDiscoveryService to get supported options.
988 # Defaults to the latest Xcode version Firebase Test Lab supports.
Bu Sun Kim65020912020-05-20 12:08:20 -0700989 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
990 &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 -0700991 # tests zip. Because the .xctestrun file contains environment variables along
992 # with test methods to run and/or ignore, this can be useful for sharding
993 # tests. Default is taken from the tests zip.
Bu Sun Kim65020912020-05-20 12:08:20 -0700994 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700995 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
996 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700997 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
998 # app having special entitlements with an explicit application-identifier.
999 # Currently supports testing aps-environment entitlement.
1000 &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 -07001001 # DerivedData/Build/Products directory.
1002 # The .xctestrun file in this zip is ignored if the xctestrun field is
1003 # specified.
Bu Sun Kim65020912020-05-20 12:08:20 -07001004 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001005 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1006 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001007 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001008 &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 -07001009 # This test type accepts an archived application (.ipa file) and a list of
1010 # integer scenarios that will be executed on the app sequentially.
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 },
1016 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
Dan O'Mearadd494642020-05-01 07:42:23 -07001017 # single scenario 0 if unspecified.
1018 42,
1019 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07001020 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001021 &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 -07001022 # automatically cancelled.
1023 # The default value is 5 min.
Bu Sun Kim65020912020-05-20 12:08:20 -07001024 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
1025 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1026 # Available network profiles can be queried by using the
1027 # NETWORK_CONFIGURATION environment type when calling
1028 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1029 },
1030 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
1031 # or physical Android Device, finding culprits and crashes as it goes.
1032 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1033 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1034 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1035 },
1036 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1037 # The default value is determined by examining the application&#x27;s manifest.
1038 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
1039 # If none are provided, then the main launcher activity is launched.
1040 # If some are provided, then only those provided are launched (the main
1041 # launcher activity must be provided explicitly).
1042 { # Message for specifying the start activities to crawl.
1043 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
1044 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
1045 &quot;action&quot;: &quot;A String&quot;, # Action name.
1046 # Required for START_ACTIVITY.
1047 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
1048 &quot;categories&quot;: [ # Intent categories to set on the intent.
1049 &quot;A String&quot;,
1050 ],
1051 },
1052 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
1053 },
1054 },
1055 ],
1056 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
1057 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
1058 # Default is no limit.
1059 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1060 # a base module directory, zero or more dynamic feature module directories.
1061 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1062 # building App Bundles.
1063 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1064 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1065 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1066 },
1067 },
1068 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
1069 # This allows users to customize the crawl. For example, the username and
1070 # password for a test account can be provided.
1071 { # Directs Robo to interact with a specific UI element if it is encountered
1072 # during the crawl. Currently, Robo can perform text entry or element click.
1073 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
1074 # element.
1075 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
1076 # For example,
1077 # in Java: R.string.foo
1078 # in xml: @string/foo
1079 # Only the &quot;foo&quot; part is needed.
1080 # Reference doc:
1081 # https://developer.android.com/guide/topics/resources/accessing-resources.html
1082 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
1083 # treated as a CLICK on the element matching the resource_name.
1084 },
1085 ],
1086 &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
1087 # for the crawl.
1088 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1089 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1090 },
1091 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
1092 # 2 to make Robo explore the app beyond the first activity.
1093 # Default is 50.
1094 },
1095 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001096 # scripts.
Bu Sun Kim65020912020-05-20 12:08:20 -07001097 &quot;systrace&quot;: { # Systrace configuration for the run.
1098 # If set a systrace will be taken, starting on test start and lasting for the
1099 # configured duration. The systrace file thus obtained is put in the results
1100 # bucket together with the other artifacts from the run.
1101 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
1102 # Should be between 1 and 30 seconds. 0 disables systrace.
1103 },
1104 &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.
1105 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001106 # If set, the service automatically generates a Google test account and adds
1107 # it to the device, before executing the test. Note that test accounts might be
1108 # reused.
1109 # Many applications show their full set of functionalities when an account is
1110 # present on the device. Logging into the device with these generated accounts
1111 # allows testing more functionalities.
1112 },
1113 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001114 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001115 # they must be absolute paths under /sdcard or /data/local/tmp.
1116 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1117 #
1118 # Note: The paths /sdcard and /data will be made available and treated as
1119 # implicit path substitutions. E.g. if /sdcard on a particular device does
1120 # not map to external storage, the system will replace it with the external
1121 # storage path prefix for that device.
Bu Sun Kim65020912020-05-20 12:08:20 -07001122 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001123 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001124 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1125 # Available network profiles can be queried by using the
1126 # NETWORK_CONFIGURATION environment type when calling
1127 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1128 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
Dan O'Mearadd494642020-05-01 07:42:23 -07001129 # instrumentation tests).
1130 { # A key-value pair passed as an environment variable to the test.
Bu Sun Kim65020912020-05-20 12:08:20 -07001131 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
1132 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
Dan O'Mearadd494642020-05-01 07:42:23 -07001133 },
1134 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001135 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
1136 # Currently capped at 100.
1137 { # An Android package file to install.
1138 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
1139 # Value is determined by examining the application&#x27;s manifest.
1140 &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.
1141 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1142 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1143 },
1144 },
1145 ],
1146 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001147 { # A single device file description.
Bu Sun Kim65020912020-05-20 12:08:20 -07001148 &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.
1149 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1150 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001151 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1152 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001153 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
1154 # Android
1155 # e.g. [main|patch].0300110.com.example.android.obb
1156 # which will be installed into
1157 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
1158 # on the device.
1159 },
1160 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
1161 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001162 # whitelisted path. If the file exists, it will be replaced.
1163 # The following device-side directories and any of their subdirectories are
1164 # whitelisted:
Dan O'Mearadd494642020-05-01 07:42:23 -07001165 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
1166 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
1167 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001168 #
Dan O'Mearadd494642020-05-01 07:42:23 -07001169 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001170 # implicit path substitutions. E.g. if /sdcard on a particular device does
1171 # not map to external storage, the system will replace it with the external
1172 # storage path prefix for that device and copy the file there.
1173 #
Dan O'Mearadd494642020-05-01 07:42:23 -07001174 # &lt;p&gt; It is strongly advised to use the &lt;a href=
Bu Sun Kim65020912020-05-20 12:08:20 -07001175 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
Dan O'Mearadd494642020-05-01 07:42:23 -07001176 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001177 # portable way.
Bu Sun Kim65020912020-05-20 12:08:20 -07001178 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
1179 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001180 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1181 },
1182 },
1183 },
1184 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001185 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001186 &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 -07001187 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001188 # user of this api, for the time being.
Bu Sun Kim65020912020-05-20 12:08:20 -07001189 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1190 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1191 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1192 },
1193 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1194 # The default is determined by examining the application&#x27;s manifest.
1195 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1196 # a base module directory, zero or more dynamic feature module directories.
1197 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1198 # building App Bundles.
1199 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1200 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1201 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1202 },
1203 },
1204 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
1205 # The default is all test loops, derived from the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001206 # manifest.
1207 42,
1208 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001209 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
1210 # The scenario labels should map to labels defined in the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001211 # manifest. For example, player_experience and
1212 # com.google.test.loops.player_experience add all of the loops labeled in the
1213 # manifest with the com.google.test.loops.player_experience name to the
1214 # execution.
1215 # Scenarios can also be specified in the scenarios field.
Bu Sun Kim65020912020-05-20 12:08:20 -07001216 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001217 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001218 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001219 &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 -07001220 # independently of its normal lifecycle.
1221 # Android instrumentation tests run an application APK and test APK inside the
1222 # same process on a virtual or physical AndroidDevice. They also specify
1223 # a test runner class, such as com.google.GoogleTestRunner, which can vary
1224 # on the specific instrumentation framework chosen.
1225 #
Dan O'Mearadd494642020-05-01 07:42:23 -07001226 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001227 # more information on types of Android tests.
Bu Sun Kim65020912020-05-20 12:08:20 -07001228 &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 -07001229 # instrumentation with Android Test Orchestrator or not.
1230 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
1231 # higher! **
1232 # Orchestrator offers the following benefits:
1233 # - No shared state
1234 # - Crashes are isolated
1235 # - Logs are scoped per test
1236 #
1237 # See
Dan O'Mearadd494642020-05-01 07:42:23 -07001238 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001239 # for more information about Android Test Orchestrator.
1240 #
1241 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -07001242 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1243 # a base module directory, zero or more dynamic feature module directories.
1244 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1245 # building App Bundles.
1246 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1247 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1248 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1249 },
1250 },
1251 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
1252 # in one of these formats:
1253 # - &quot;package package_name&quot;
1254 # - &quot;class package_name.class_name&quot;
1255 # - &quot;class package_name.class_name#method_name&quot;
1256 #
1257 # If empty, all targets in the module will be run.
1258 &quot;A String&quot;,
1259 ],
1260 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
1261 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1262 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1263 },
1264 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
1265 # The default value is determined by examining the application&#x27;s manifest.
1266 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
1267 &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 -07001268 # methods.
1269 # methods.
1270 #
1271 # With manual sharding enabled, specifying test targets via
1272 # environment_variables or in InstrumentationTest is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -07001273 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
Dan O'Mearadd494642020-05-01 07:42:23 -07001274 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
1275 { # Test targets for a shard.
Bu Sun Kim65020912020-05-20 12:08:20 -07001276 &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 -07001277 # The targets need to be specified in AndroidJUnitRunner argument format. For
1278 # example, “package com.my.packages” “class com.my.package.MyClass”.
1279 #
1280 # The number of shard_test_targets must be greater than 0.
Bu Sun Kim65020912020-05-20 12:08:20 -07001281 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -07001282 ],
1283 },
1284 ],
1285 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001286 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
Dan O'Mearadd494642020-05-01 07:42:23 -07001287 #
1288 # For Instrumentation test, it will be translated to “-e numShard” “-e
1289 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
1290 # specifying these sharding arguments via environment_variables is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -07001291 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
Dan O'Mearadd494642020-05-01 07:42:23 -07001292 },
1293 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001294 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
1295 # The default value is determined by examining the application&#x27;s manifest.
1296 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1297 # The default value is determined by examining the application&#x27;s manifest.
1298 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1299 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1300 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1301 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001302 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001303 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
1304 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001305 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001306 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project that owns the test matrix.
1307 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test matrix was initially created.
1308 &quot;flakyTestAttempts&quot;: 42, # The number of times a TestExecution should be re-attempted if one or more
1309 # of its test cases fail for any reason.
1310 # The maximum number of reruns allowed is 10.
1311 #
1312 # Default is 0, which implies no reruns.
1313 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test matrix.
1314 &quot;clientInfo&quot;: { # Information about the client which invoked the test. # Information about the client which invoked the test.
1315 &quot;clientInfoDetails&quot;: [ # The list of detailed information about client.
1316 { # Key-value pair of detailed information about the client which invoked the
1317 # test. Examples: {&#x27;Version&#x27;, &#x27;1.0&#x27;}, {&#x27;Release Track&#x27;, &#x27;BETA&#x27;}.
1318 &quot;value&quot;: &quot;A String&quot;, # Required. The value of detailed client information.
1319 &quot;key&quot;: &quot;A String&quot;, # Required. The key of detailed client information.
1320 },
1321 ],
1322 &quot;name&quot;: &quot;A String&quot;, # Required. Client name, such as gcloud.
1323 },
1324 &quot;testExecutions&quot;: [ # Output only. The list of test executions that the service creates for
1325 # this matrix.
1326 { # A single test executed in a single environment.
1327 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test execution was initially created.
1328 &quot;shard&quot;: { # Output only. Details about the shard. # Output only. Details about the shard.
1329 &quot;shardIndex&quot;: 42, # Output only. The index of the shard among all the shards.
1330 &quot;testTargetsForShard&quot;: { # Test targets for a shard. # Output only. Test targets for each shard.
1331 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
1332 # The targets need to be specified in AndroidJUnitRunner argument format. For
1333 # example, “package com.my.packages” “class com.my.package.MyClass”.
1334 #
1335 # The number of shard_test_targets must be greater than 0.
1336 &quot;A String&quot;,
1337 ],
1338 },
1339 &quot;numShards&quot;: 42, # Output only. The total number of shards.
1340 },
1341 &quot;matrixId&quot;: &quot;A String&quot;, # Output only. Id of the containing TestMatrix.
1342 &quot;testDetails&quot;: { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
1343 &quot;progressMessages&quot;: [ # Output only. Human-readable, detailed descriptions of the test&#x27;s progress.
1344 # For example: &quot;Provisioning a device&quot;, &quot;Starting Test&quot;.
1345 #
1346 # During the course of execution new data may be appended
1347 # to the end of progress_messages.
1348 &quot;A String&quot;,
1349 ],
1350 &quot;errorMessage&quot;: &quot;A String&quot;, # Output only. If the TestState is ERROR, then this string will contain
1351 # human-readable details about the error.
1352 },
1353 &quot;environment&quot;: { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
1354 &quot;iosDevice&quot;: { # A single iOS device. # An iOS device which must be used with an iOS test.
1355 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
1356 # Use the TestEnvironmentDiscoveryService to get supported options.
1357 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
1358 # Use the TestEnvironmentDiscoveryService to get supported options.
1359 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
1360 # Use the TestEnvironmentDiscoveryService to get supported options.
1361 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
1362 # Use the TestEnvironmentDiscoveryService to get supported options.
1363 },
1364 &quot;androidDevice&quot;: { # A single Android device. # An Android device which must be used with an Android test.
1365 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
1366 # Use the TestEnvironmentDiscoveryService to get supported options.
1367 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
1368 # Use the TestEnvironmentDiscoveryService to get supported options.
1369 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
1370 # Use the TestEnvironmentDiscoveryService to get supported options.
1371 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
1372 # Use the TestEnvironmentDiscoveryService to get supported options.
1373 },
1374 },
1375 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test execution
1376 # (e.g., FINISHED).
1377 &quot;toolResultsStep&quot;: { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
1378 #
1379 # This has the results of a TestExecution.
1380 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
1381 &quot;stepId&quot;: &quot;A String&quot;, # Output only. A tool results step ID.
1382 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results step.
1383 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
1384 },
1385 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the test execution.
1386 &quot;testSpecification&quot;: { # A description of how to run the test. # Output only. How to run the test.
1387 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
1388 # Xcode supports the option to &quot;build for testing&quot;, which generates an
1389 # .xctestrun file that contains a test specification (arguments, test methods,
1390 # etc). This test type accepts a zip file containing the .xctestrun file and
1391 # the corresponding contents of the Build/Products directory that contains all
1392 # the binaries needed to run the tests.
1393 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
1394 # Use the TestEnvironmentDiscoveryService to get supported options.
1395 # Defaults to the latest Xcode version Firebase Test Lab supports.
1396 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1397 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
1398 # tests zip. Because the .xctestrun file contains environment variables along
1399 # with test methods to run and/or ignore, this can be useful for sharding
1400 # tests. Default is taken from the tests zip.
1401 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1402 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1403 },
1404 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
1405 # app having special entitlements with an explicit application-identifier.
1406 # Currently supports testing aps-environment entitlement.
1407 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
1408 # DerivedData/Build/Products directory.
1409 # The .xctestrun file in this zip is ignored if the xctestrun field is
1410 # specified.
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 },
1415 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
1416 # This test type accepts an archived application (.ipa file) and a list of
1417 # integer scenarios that will be executed on the app sequentially.
1418 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1419 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
1420 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1421 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1422 },
1423 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
1424 # single scenario 0 if unspecified.
1425 42,
1426 ],
1427 },
1428 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
1429 # automatically cancelled.
1430 # The default value is 5 min.
1431 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
1432 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1433 # Available network profiles can be queried by using the
1434 # NETWORK_CONFIGURATION environment type when calling
1435 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1436 },
1437 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
1438 # or physical Android Device, finding culprits and crashes as it goes.
1439 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1440 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1441 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1442 },
1443 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1444 # The default value is determined by examining the application&#x27;s manifest.
1445 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
1446 # If none are provided, then the main launcher activity is launched.
1447 # If some are provided, then only those provided are launched (the main
1448 # launcher activity must be provided explicitly).
1449 { # Message for specifying the start activities to crawl.
1450 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
1451 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
1452 &quot;action&quot;: &quot;A String&quot;, # Action name.
1453 # Required for START_ACTIVITY.
1454 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
1455 &quot;categories&quot;: [ # Intent categories to set on the intent.
1456 &quot;A String&quot;,
1457 ],
1458 },
1459 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
1460 },
1461 },
1462 ],
1463 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
1464 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
1465 # Default is no limit.
1466 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1467 # a base module directory, zero or more dynamic feature module directories.
1468 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1469 # building App Bundles.
1470 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1471 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1472 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1473 },
1474 },
1475 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
1476 # This allows users to customize the crawl. For example, the username and
1477 # password for a test account can be provided.
1478 { # Directs Robo to interact with a specific UI element if it is encountered
1479 # during the crawl. Currently, Robo can perform text entry or element click.
1480 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
1481 # element.
1482 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
1483 # For example,
1484 # in Java: R.string.foo
1485 # in xml: @string/foo
1486 # Only the &quot;foo&quot; part is needed.
1487 # Reference doc:
1488 # https://developer.android.com/guide/topics/resources/accessing-resources.html
1489 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
1490 # treated as a CLICK on the element matching the resource_name.
1491 },
1492 ],
1493 &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
1494 # for the crawl.
1495 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1496 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1497 },
1498 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
1499 # 2 to make Robo explore the app beyond the first activity.
1500 # Default is 50.
1501 },
1502 &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
1503 # scripts.
1504 &quot;systrace&quot;: { # Systrace configuration for the run.
1505 # If set a systrace will be taken, starting on test start and lasting for the
1506 # configured duration. The systrace file thus obtained is put in the results
1507 # bucket together with the other artifacts from the run.
1508 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
1509 # Should be between 1 and 30 seconds. 0 disables systrace.
1510 },
1511 &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.
1512 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
1513 # If set, the service automatically generates a Google test account and adds
1514 # it to the device, before executing the test. Note that test accounts might be
1515 # reused.
1516 # Many applications show their full set of functionalities when an account is
1517 # present on the device. Logging into the device with these generated accounts
1518 # allows testing more functionalities.
1519 },
1520 },
1521 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
1522 # they must be absolute paths under /sdcard or /data/local/tmp.
1523 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1524 #
1525 # Note: The paths /sdcard and /data will be made available and treated as
1526 # implicit path substitutions. E.g. if /sdcard on a particular device does
1527 # not map to external storage, the system will replace it with the external
1528 # storage path prefix for that device.
1529 &quot;A String&quot;,
1530 ],
1531 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1532 # Available network profiles can be queried by using the
1533 # NETWORK_CONFIGURATION environment type when calling
1534 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1535 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
1536 # instrumentation tests).
1537 { # A key-value pair passed as an environment variable to the test.
1538 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
1539 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
1540 },
1541 ],
1542 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
1543 # Currently capped at 100.
1544 { # An Android package file to install.
1545 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
1546 # Value is determined by examining the application&#x27;s manifest.
1547 &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.
1548 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1549 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1550 },
1551 },
1552 ],
1553 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
1554 { # A single device file description.
1555 &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.
1556 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1557 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1558 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1559 },
1560 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
1561 # Android
1562 # e.g. [main|patch].0300110.com.example.android.obb
1563 # which will be installed into
1564 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
1565 # on the device.
1566 },
1567 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
1568 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
1569 # whitelisted path. If the file exists, it will be replaced.
1570 # The following device-side directories and any of their subdirectories are
1571 # whitelisted:
1572 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
1573 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
1574 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
1575 #
1576 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
1577 # implicit path substitutions. E.g. if /sdcard on a particular device does
1578 # not map to external storage, the system will replace it with the external
1579 # storage path prefix for that device and copy the file there.
1580 #
1581 # &lt;p&gt; It is strongly advised to use the &lt;a href=
1582 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
1583 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
1584 # portable way.
1585 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
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 },
1591 ],
1592 },
1593 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
1594 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
1595 # user of this api, for the time being.
1596 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1597 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1598 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1599 },
1600 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1601 # The default is determined by examining the application&#x27;s manifest.
1602 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1603 # a base module directory, zero or more dynamic feature module directories.
1604 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1605 # building App Bundles.
1606 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1607 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1608 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1609 },
1610 },
1611 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
1612 # The default is all test loops, derived from the application&#x27;s
1613 # manifest.
1614 42,
1615 ],
1616 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
1617 # The scenario labels should map to labels defined in the application&#x27;s
1618 # manifest. For example, player_experience and
1619 # com.google.test.loops.player_experience add all of the loops labeled in the
1620 # manifest with the com.google.test.loops.player_experience name to the
1621 # execution.
1622 # Scenarios can also be specified in the scenarios field.
1623 &quot;A String&quot;,
1624 ],
1625 },
1626 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
1627 # independently of its normal lifecycle.
1628 # Android instrumentation tests run an application APK and test APK inside the
1629 # same process on a virtual or physical AndroidDevice. They also specify
1630 # a test runner class, such as com.google.GoogleTestRunner, which can vary
1631 # on the specific instrumentation framework chosen.
1632 #
1633 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
1634 # more information on types of Android tests.
1635 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
1636 # instrumentation with Android Test Orchestrator or not.
1637 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
1638 # higher! **
1639 # Orchestrator offers the following benefits:
1640 # - No shared state
1641 # - Crashes are isolated
1642 # - Logs are scoped per test
1643 #
1644 # See
1645 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
1646 # for more information about Android Test Orchestrator.
1647 #
1648 # If not set, the test will be run without the orchestrator.
1649 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1650 # a base module directory, zero or more dynamic feature module directories.
1651 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1652 # building App Bundles.
1653 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1654 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1655 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1656 },
1657 },
1658 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
1659 # in one of these formats:
1660 # - &quot;package package_name&quot;
1661 # - &quot;class package_name.class_name&quot;
1662 # - &quot;class package_name.class_name#method_name&quot;
1663 #
1664 # If empty, all targets in the module will be run.
1665 &quot;A String&quot;,
1666 ],
1667 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
1668 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1669 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1670 },
1671 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
1672 # The default value is determined by examining the application&#x27;s manifest.
1673 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
1674 &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
1675 # methods.
1676 # methods.
1677 #
1678 # With manual sharding enabled, specifying test targets via
1679 # environment_variables or in InstrumentationTest is invalid.
1680 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
1681 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
1682 { # Test targets for a shard.
1683 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
1684 # The targets need to be specified in AndroidJUnitRunner argument format. For
1685 # example, “package com.my.packages” “class com.my.package.MyClass”.
1686 #
1687 # The number of shard_test_targets must be greater than 0.
1688 &quot;A String&quot;,
1689 ],
1690 },
1691 ],
1692 },
1693 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
1694 #
1695 # For Instrumentation test, it will be translated to “-e numShard” “-e
1696 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
1697 # specifying these sharding arguments via environment_variables is invalid.
1698 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
1699 },
1700 },
1701 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
1702 # The default value is determined by examining the application&#x27;s manifest.
1703 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1704 # The default value is determined by examining the application&#x27;s manifest.
1705 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1706 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1707 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1708 },
1709 },
1710 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
1711 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
1712 },
1713 &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
1714 },
1715 ],
1716 &quot;environmentMatrix&quot;: { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
1717 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001718 # devices.
Bu Sun Kim65020912020-05-20 12:08:20 -07001719 &quot;androidDevices&quot;: [ # Required. A list of Android devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001720 { # A single Android device.
Bu Sun Kim65020912020-05-20 12:08:20 -07001721 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001722 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001723 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
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;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001726 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001727 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001728 # Use the TestEnvironmentDiscoveryService to get supported options.
1729 },
1730 ],
1731 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001732 &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 -07001733 # the cross-product of the given axes. Internally, the given AndroidMatrix
1734 # will be expanded into a set of AndroidDevices.
1735 #
1736 # Only supported permutations will be instantiated. Invalid permutations
1737 # (e.g., incompatible models/versions) are ignored.
Bu Sun Kim65020912020-05-20 12:08:20 -07001738 &quot;androidModelIds&quot;: [ # Required. The ids of the set of Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001739 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001740 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001741 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001742 &quot;orientations&quot;: [ # Required. The set of orientations to test with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001743 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001744 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001745 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001746 &quot;androidVersionIds&quot;: [ # Required. The ids of the set of Android OS version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001747 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001748 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001749 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001750 &quot;locales&quot;: [ # Required. The set of locales the test device will enable for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001751 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001752 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001753 ],
1754 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001755 &quot;iosDeviceList&quot;: { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
1756 &quot;iosDevices&quot;: [ # Required. A list of iOS devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001757 { # A single iOS device.
Bu Sun Kim65020912020-05-20 12:08:20 -07001758 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001759 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001760 &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 -07001761 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001762 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001763 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07001764 &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 -07001765 # Use the TestEnvironmentDiscoveryService to get supported options.
1766 },
1767 ],
1768 },
1769 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001770 &quot;resultStorage&quot;: { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
1771 &quot;resultsUrl&quot;: &quot;A String&quot;, # Output only. URL to the results in the Firebase Web Console.
1772 &quot;toolResultsHistory&quot;: { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
1773 # results are written to.
1774 #
1775 # If not provided, the service will choose an appropriate value.
1776 &quot;projectId&quot;: &quot;A String&quot;, # Required. The cloud project that owns the tool results history.
1777 &quot;historyId&quot;: &quot;A String&quot;, # Required. A tool results history ID.
1778 },
1779 &quot;googleCloudStorage&quot;: { # A storage location within Google cloud storage (GCS). # Required.
1780 &quot;gcsPath&quot;: &quot;A String&quot;, # Required. The path to a directory in GCS that will
1781 # eventually contain the results for this test.
1782 # The requesting user must have write access on the bucket in the supplied
1783 # path.
1784 },
1785 &quot;toolResultsExecution&quot;: { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
1786 #
1787 # This has the results of a TestMatrix.
1788 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results execution.
1789 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
1790 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
1791 },
1792 },
1793 &quot;testMatrixId&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
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;invalidMatrixDetails&quot;: &quot;A String&quot;, # Output only. Describes why the matrix is considered invalid.
1822 # Only useful for matrices in the INVALID state.
1823 &quot;outcomeSummary&quot;: &quot;A String&quot;, # Output Only. The overall outcome of the test.
1824 # Only set when the test matrix state is FINISHED.
1825 &quot;testSpecification&quot;: { # A description of how to run the test. # Required. How to run the test.
1826 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
1827 # Xcode supports the option to &quot;build for testing&quot;, which generates an
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001828 # .xctestrun file that contains a test specification (arguments, test methods,
1829 # etc). This test type accepts a zip file containing the .xctestrun file and
1830 # the corresponding contents of the Build/Products directory that contains all
1831 # the binaries needed to run the tests.
Bu Sun Kim65020912020-05-20 12:08:20 -07001832 &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 -07001833 # Use the TestEnvironmentDiscoveryService to get supported options.
1834 # Defaults to the latest Xcode version Firebase Test Lab supports.
Bu Sun Kim65020912020-05-20 12:08:20 -07001835 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
1836 &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 -07001837 # tests zip. Because the .xctestrun file contains environment variables along
1838 # with test methods to run and/or ignore, this can be useful for sharding
1839 # tests. Default is taken from the tests zip.
Bu Sun Kim65020912020-05-20 12:08:20 -07001840 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001841 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1842 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001843 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
1844 # app having special entitlements with an explicit application-identifier.
1845 # Currently supports testing aps-environment entitlement.
1846 &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 -07001847 # DerivedData/Build/Products directory.
1848 # The .xctestrun file in this zip is ignored if the xctestrun field is
1849 # specified.
Bu Sun Kim65020912020-05-20 12:08:20 -07001850 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001851 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1852 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001853 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001854 &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 -07001855 # This test type accepts an archived application (.ipa file) and a list of
1856 # integer scenarios that will be executed on the app sequentially.
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 },
1862 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
Dan O'Mearadd494642020-05-01 07:42:23 -07001863 # single scenario 0 if unspecified.
1864 42,
1865 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07001866 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001867 &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 -07001868 # automatically cancelled.
1869 # The default value is 5 min.
Bu Sun Kim65020912020-05-20 12:08:20 -07001870 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
1871 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1872 # Available network profiles can be queried by using the
1873 # NETWORK_CONFIGURATION environment type when calling
1874 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1875 },
1876 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
1877 # or physical Android Device, finding culprits and crashes as it goes.
1878 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
1879 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1880 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1881 },
1882 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
1883 # The default value is determined by examining the application&#x27;s manifest.
1884 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
1885 # If none are provided, then the main launcher activity is launched.
1886 # If some are provided, then only those provided are launched (the main
1887 # launcher activity must be provided explicitly).
1888 { # Message for specifying the start activities to crawl.
1889 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
1890 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
1891 &quot;action&quot;: &quot;A String&quot;, # Action name.
1892 # Required for START_ACTIVITY.
1893 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
1894 &quot;categories&quot;: [ # Intent categories to set on the intent.
1895 &quot;A String&quot;,
1896 ],
1897 },
1898 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
1899 },
1900 },
1901 ],
1902 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
1903 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
1904 # Default is no limit.
1905 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
1906 # a base module directory, zero or more dynamic feature module directories.
1907 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
1908 # building App Bundles.
1909 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
1910 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1911 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1912 },
1913 },
1914 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
1915 # This allows users to customize the crawl. For example, the username and
1916 # password for a test account can be provided.
1917 { # Directs Robo to interact with a specific UI element if it is encountered
1918 # during the crawl. Currently, Robo can perform text entry or element click.
1919 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
1920 # element.
1921 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
1922 # For example,
1923 # in Java: R.string.foo
1924 # in xml: @string/foo
1925 # Only the &quot;foo&quot; part is needed.
1926 # Reference doc:
1927 # https://developer.android.com/guide/topics/resources/accessing-resources.html
1928 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
1929 # treated as a CLICK on the element matching the resource_name.
1930 },
1931 ],
1932 &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
1933 # for the crawl.
1934 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1935 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1936 },
1937 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
1938 # 2 to make Robo explore the app beyond the first activity.
1939 # Default is 50.
1940 },
1941 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001942 # scripts.
Bu Sun Kim65020912020-05-20 12:08:20 -07001943 &quot;systrace&quot;: { # Systrace configuration for the run.
1944 # If set a systrace will be taken, starting on test start and lasting for the
1945 # configured duration. The systrace file thus obtained is put in the results
1946 # bucket together with the other artifacts from the run.
1947 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
1948 # Should be between 1 and 30 seconds. 0 disables systrace.
1949 },
1950 &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.
1951 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001952 # If set, the service automatically generates a Google test account and adds
1953 # it to the device, before executing the test. Note that test accounts might be
1954 # reused.
1955 # Many applications show their full set of functionalities when an account is
1956 # present on the device. Logging into the device with these generated accounts
1957 # allows testing more functionalities.
1958 },
1959 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001960 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001961 # they must be absolute paths under /sdcard or /data/local/tmp.
1962 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1963 #
1964 # Note: The paths /sdcard and /data will be made available and treated as
1965 # implicit path substitutions. E.g. if /sdcard on a particular device does
1966 # not map to external storage, the system will replace it with the external
1967 # storage path prefix for that device.
Bu Sun Kim65020912020-05-20 12:08:20 -07001968 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001969 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001970 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
1971 # Available network profiles can be queried by using the
1972 # NETWORK_CONFIGURATION environment type when calling
1973 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1974 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
Dan O'Mearadd494642020-05-01 07:42:23 -07001975 # instrumentation tests).
1976 { # A key-value pair passed as an environment variable to the test.
Bu Sun Kim65020912020-05-20 12:08:20 -07001977 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
1978 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
Dan O'Mearadd494642020-05-01 07:42:23 -07001979 },
1980 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001981 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
1982 # Currently capped at 100.
1983 { # An Android package file to install.
1984 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
1985 # Value is determined by examining the application&#x27;s manifest.
1986 &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.
1987 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
1988 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1989 },
1990 },
1991 ],
1992 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001993 { # A single device file description.
Bu Sun Kim65020912020-05-20 12:08:20 -07001994 &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.
1995 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1996 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001997 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
1998 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001999 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
2000 # Android
2001 # e.g. [main|patch].0300110.com.example.android.obb
2002 # which will be installed into
2003 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
2004 # on the device.
2005 },
2006 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
2007 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002008 # whitelisted path. If the file exists, it will be replaced.
2009 # The following device-side directories and any of their subdirectories are
2010 # whitelisted:
Dan O'Mearadd494642020-05-01 07:42:23 -07002011 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
2012 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
2013 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002014 #
Dan O'Mearadd494642020-05-01 07:42:23 -07002015 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002016 # implicit path substitutions. E.g. if /sdcard on a particular device does
2017 # not map to external storage, the system will replace it with the external
2018 # storage path prefix for that device and copy the file there.
2019 #
Dan O'Mearadd494642020-05-01 07:42:23 -07002020 # &lt;p&gt; It is strongly advised to use the &lt;a href=
Bu Sun Kim65020912020-05-20 12:08:20 -07002021 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
Dan O'Mearadd494642020-05-01 07:42:23 -07002022 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002023 # portable way.
Bu Sun Kim65020912020-05-20 12:08:20 -07002024 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
2025 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002026 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2027 },
2028 },
2029 },
2030 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002031 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002032 &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 -07002033 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002034 # user of this api, for the time being.
Bu Sun Kim65020912020-05-20 12:08:20 -07002035 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2036 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2037 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2038 },
2039 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2040 # The default is determined by examining the application&#x27;s manifest.
2041 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2042 # a base module directory, zero or more dynamic feature module directories.
2043 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2044 # building App Bundles.
2045 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2046 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2047 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2048 },
2049 },
2050 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
2051 # The default is all test loops, derived from the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002052 # manifest.
2053 42,
2054 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002055 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
2056 # The scenario labels should map to labels defined in the application&#x27;s
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002057 # manifest. For example, player_experience and
2058 # com.google.test.loops.player_experience add all of the loops labeled in the
2059 # manifest with the com.google.test.loops.player_experience name to the
2060 # execution.
2061 # Scenarios can also be specified in the scenarios field.
Bu Sun Kim65020912020-05-20 12:08:20 -07002062 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002063 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002064 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002065 &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 -07002066 # independently of its normal lifecycle.
2067 # Android instrumentation tests run an application APK and test APK inside the
2068 # same process on a virtual or physical AndroidDevice. They also specify
2069 # a test runner class, such as com.google.GoogleTestRunner, which can vary
2070 # on the specific instrumentation framework chosen.
2071 #
Dan O'Mearadd494642020-05-01 07:42:23 -07002072 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002073 # more information on types of Android tests.
Bu Sun Kim65020912020-05-20 12:08:20 -07002074 &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 -07002075 # instrumentation with Android Test Orchestrator or not.
2076 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
2077 # higher! **
2078 # Orchestrator offers the following benefits:
2079 # - No shared state
2080 # - Crashes are isolated
2081 # - Logs are scoped per test
2082 #
2083 # See
Dan O'Mearadd494642020-05-01 07:42:23 -07002084 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002085 # for more information about Android Test Orchestrator.
2086 #
2087 # If not set, the test will be run without the orchestrator.
Bu Sun Kim65020912020-05-20 12:08:20 -07002088 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2089 # a base module directory, zero or more dynamic feature module directories.
2090 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2091 # building App Bundles.
2092 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2093 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2094 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2095 },
2096 },
2097 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
2098 # in one of these formats:
2099 # - &quot;package package_name&quot;
2100 # - &quot;class package_name.class_name&quot;
2101 # - &quot;class package_name.class_name#method_name&quot;
2102 #
2103 # If empty, all targets in the module will be run.
2104 &quot;A String&quot;,
2105 ],
2106 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
2107 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2108 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2109 },
2110 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
2111 # The default value is determined by examining the application&#x27;s manifest.
2112 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
2113 &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 -07002114 # methods.
2115 # methods.
2116 #
2117 # With manual sharding enabled, specifying test targets via
2118 # environment_variables or in InstrumentationTest is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -07002119 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
Dan O'Mearadd494642020-05-01 07:42:23 -07002120 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
2121 { # Test targets for a shard.
Bu Sun Kim65020912020-05-20 12:08:20 -07002122 &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 -07002123 # The targets need to be specified in AndroidJUnitRunner argument format. For
2124 # example, “package com.my.packages” “class com.my.package.MyClass”.
2125 #
2126 # The number of shard_test_targets must be greater than 0.
Bu Sun Kim65020912020-05-20 12:08:20 -07002127 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -07002128 ],
2129 },
2130 ],
2131 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002132 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
Dan O'Mearadd494642020-05-01 07:42:23 -07002133 #
2134 # For Instrumentation test, it will be translated to “-e numShard” “-e
2135 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
2136 # specifying these sharding arguments via environment_variables is invalid.
Bu Sun Kim65020912020-05-20 12:08:20 -07002137 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
Dan O'Mearadd494642020-05-01 07:42:23 -07002138 },
2139 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002140 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
2141 # The default value is determined by examining the application&#x27;s manifest.
2142 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2143 # The default value is determined by examining the application&#x27;s manifest.
2144 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2145 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2146 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2147 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002148 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002149 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
2150 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002151 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002152 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project that owns the test matrix.
2153 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test matrix was initially created.
2154 &quot;flakyTestAttempts&quot;: 42, # The number of times a TestExecution should be re-attempted if one or more
2155 # of its test cases fail for any reason.
2156 # The maximum number of reruns allowed is 10.
2157 #
2158 # Default is 0, which implies no reruns.
2159 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test matrix.
2160 &quot;clientInfo&quot;: { # Information about the client which invoked the test. # Information about the client which invoked the test.
2161 &quot;clientInfoDetails&quot;: [ # The list of detailed information about client.
2162 { # Key-value pair of detailed information about the client which invoked the
2163 # test. Examples: {&#x27;Version&#x27;, &#x27;1.0&#x27;}, {&#x27;Release Track&#x27;, &#x27;BETA&#x27;}.
2164 &quot;value&quot;: &quot;A String&quot;, # Required. The value of detailed client information.
2165 &quot;key&quot;: &quot;A String&quot;, # Required. The key of detailed client information.
2166 },
2167 ],
2168 &quot;name&quot;: &quot;A String&quot;, # Required. Client name, such as gcloud.
2169 },
2170 &quot;testExecutions&quot;: [ # Output only. The list of test executions that the service creates for
2171 # this matrix.
2172 { # A single test executed in a single environment.
2173 &quot;timestamp&quot;: &quot;A String&quot;, # Output only. The time this test execution was initially created.
2174 &quot;shard&quot;: { # Output only. Details about the shard. # Output only. Details about the shard.
2175 &quot;shardIndex&quot;: 42, # Output only. The index of the shard among all the shards.
2176 &quot;testTargetsForShard&quot;: { # Test targets for a shard. # Output only. Test targets for each shard.
2177 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
2178 # The targets need to be specified in AndroidJUnitRunner argument format. For
2179 # example, “package com.my.packages” “class com.my.package.MyClass”.
2180 #
2181 # The number of shard_test_targets must be greater than 0.
2182 &quot;A String&quot;,
2183 ],
2184 },
2185 &quot;numShards&quot;: 42, # Output only. The total number of shards.
2186 },
2187 &quot;matrixId&quot;: &quot;A String&quot;, # Output only. Id of the containing TestMatrix.
2188 &quot;testDetails&quot;: { # Additional details about the progress of the running test. # Output only. Additional details about the running test.
2189 &quot;progressMessages&quot;: [ # Output only. Human-readable, detailed descriptions of the test&#x27;s progress.
2190 # For example: &quot;Provisioning a device&quot;, &quot;Starting Test&quot;.
2191 #
2192 # During the course of execution new data may be appended
2193 # to the end of progress_messages.
2194 &quot;A String&quot;,
2195 ],
2196 &quot;errorMessage&quot;: &quot;A String&quot;, # Output only. If the TestState is ERROR, then this string will contain
2197 # human-readable details about the error.
2198 },
2199 &quot;environment&quot;: { # The environment in which the test is run. # Output only. How the host machine(s) are configured.
2200 &quot;iosDevice&quot;: { # A single iOS device. # An iOS device which must be used with an iOS test.
2201 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
2202 # Use the TestEnvironmentDiscoveryService to get supported options.
2203 &quot;iosVersionId&quot;: &quot;A String&quot;, # Required. The id of the iOS major software version to be used.
2204 # Use the TestEnvironmentDiscoveryService to get supported options.
2205 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
2206 # Use the TestEnvironmentDiscoveryService to get supported options.
2207 &quot;iosModelId&quot;: &quot;A String&quot;, # Required. The id of the iOS device to be used.
2208 # Use the TestEnvironmentDiscoveryService to get supported options.
2209 },
2210 &quot;androidDevice&quot;: { # A single Android device. # An Android device which must be used with an Android test.
2211 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
2212 # Use the TestEnvironmentDiscoveryService to get supported options.
2213 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
2214 # Use the TestEnvironmentDiscoveryService to get supported options.
2215 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
2216 # Use the TestEnvironmentDiscoveryService to get supported options.
2217 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
2218 # Use the TestEnvironmentDiscoveryService to get supported options.
2219 },
2220 },
2221 &quot;state&quot;: &quot;A String&quot;, # Output only. Indicates the current progress of the test execution
2222 # (e.g., FINISHED).
2223 &quot;toolResultsStep&quot;: { # Represents a tool results step resource. # Output only. Where the results for this execution are written.
2224 #
2225 # This has the results of a TestExecution.
2226 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
2227 &quot;stepId&quot;: &quot;A String&quot;, # Output only. A tool results step ID.
2228 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results step.
2229 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
2230 },
2231 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the test execution.
2232 &quot;testSpecification&quot;: { # A description of how to run the test. # Output only. How to run the test.
2233 &quot;iosXcTest&quot;: { # A test of an iOS application that uses the XCTest framework. # An iOS XCTest, via an .xctestrun file.
2234 # Xcode supports the option to &quot;build for testing&quot;, which generates an
2235 # .xctestrun file that contains a test specification (arguments, test methods,
2236 # etc). This test type accepts a zip file containing the .xctestrun file and
2237 # the corresponding contents of the Build/Products directory that contains all
2238 # the binaries needed to run the tests.
2239 &quot;xcodeVersion&quot;: &quot;A String&quot;, # The Xcode version that should be used for the test.
2240 # Use the TestEnvironmentDiscoveryService to get supported options.
2241 # Defaults to the latest Xcode version Firebase Test Lab supports.
2242 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
2243 &quot;xctestrun&quot;: { # A reference to a file, used for user inputs. # An .xctestrun file that will override the .xctestrun file in the
2244 # tests zip. Because the .xctestrun file contains environment variables along
2245 # with test methods to run and/or ignore, this can be useful for sharding
2246 # tests. Default is taken from the tests zip.
2247 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2248 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2249 },
2250 &quot;testSpecialEntitlements&quot;: True or False, # The option to test special app entitlements. Setting this would re-sign the
2251 # app having special entitlements with an explicit application-identifier.
2252 # Currently supports testing aps-environment entitlement.
2253 &quot;testsZip&quot;: { # A reference to a file, used for user inputs. # Required. The .zip containing the .xctestrun file and the contents of the
2254 # DerivedData/Build/Products directory.
2255 # The .xctestrun file in this zip is ignored if the xctestrun field is
2256 # specified.
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 },
2261 &quot;iosTestLoop&quot;: { # A test of an iOS application that implements one or more game loop scenarios. # An iOS application with a test loop.
2262 # This test type accepts an archived application (.ipa file) and a list of
2263 # integer scenarios that will be executed on the app sequentially.
2264 &quot;appBundleId&quot;: &quot;A String&quot;, # Output only. The bundle id for the application under test.
2265 &quot;appIpa&quot;: { # A reference to a file, used for user inputs. # Required. The .ipa of the application to test.
2266 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2267 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2268 },
2269 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test. Defaults to the
2270 # single scenario 0 if unspecified.
2271 42,
2272 ],
2273 },
2274 &quot;testTimeout&quot;: &quot;A String&quot;, # Max time a test execution is allowed to run before it is
2275 # automatically cancelled.
2276 # The default value is 5 min.
2277 &quot;iosTestSetup&quot;: { # A description of how to set up an iOS device prior to running the test. # Test setup requirements for iOS.
2278 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
2279 # Available network profiles can be queried by using the
2280 # NETWORK_CONFIGURATION environment type when calling
2281 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
2282 },
2283 &quot;androidRoboTest&quot;: { # A test of an android application that explores the application on a virtual # An Android robo test.
2284 # or physical Android Device, finding culprits and crashes as it goes.
2285 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2286 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2287 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2288 },
2289 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2290 # The default value is determined by examining the application&#x27;s manifest.
2291 &quot;startingIntents&quot;: [ # The intents used to launch the app for the crawl.
2292 # If none are provided, then the main launcher activity is launched.
2293 # If some are provided, then only those provided are launched (the main
2294 # launcher activity must be provided explicitly).
2295 { # Message for specifying the start activities to crawl.
2296 &quot;timeout&quot;: &quot;A String&quot;, # Timeout in seconds for each intent.
2297 &quot;startActivity&quot;: { # A starting intent specified by an action, uri, and categories. # An intent that starts an activity with specific details.
2298 &quot;action&quot;: &quot;A String&quot;, # Action name.
2299 # Required for START_ACTIVITY.
2300 &quot;uri&quot;: &quot;A String&quot;, # URI for the action.
2301 &quot;categories&quot;: [ # Intent categories to set on the intent.
2302 &quot;A String&quot;,
2303 ],
2304 },
2305 &quot;launcherActivity&quot;: { # Specifies an intent that starts the main launcher activity. # An intent that starts the main launcher activity.
2306 },
2307 },
2308 ],
2309 &quot;appInitialActivity&quot;: &quot;A String&quot;, # The initial activity that should be used to start the app.
2310 &quot;maxSteps&quot;: 42, # The max number of steps Robo can execute.
2311 # Default is no limit.
2312 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2313 # a base module directory, zero or more dynamic feature module directories.
2314 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2315 # building App Bundles.
2316 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2317 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2318 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2319 },
2320 },
2321 &quot;roboDirectives&quot;: [ # A set of directives Robo should apply during the crawl.
2322 # This allows users to customize the crawl. For example, the username and
2323 # password for a test account can be provided.
2324 { # Directs Robo to interact with a specific UI element if it is encountered
2325 # during the crawl. Currently, Robo can perform text entry or element click.
2326 &quot;actionType&quot;: &quot;A String&quot;, # Required. The type of action that Robo should perform on the specified
2327 # element.
2328 &quot;resourceName&quot;: &quot;A String&quot;, # Required. The android resource name of the target UI element.
2329 # For example,
2330 # in Java: R.string.foo
2331 # in xml: @string/foo
2332 # Only the &quot;foo&quot; part is needed.
2333 # Reference doc:
2334 # https://developer.android.com/guide/topics/resources/accessing-resources.html
2335 &quot;inputText&quot;: &quot;A String&quot;, # The text that Robo is directed to set. If left empty, the directive will be
2336 # treated as a CLICK on the element matching the resource_name.
2337 },
2338 ],
2339 &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
2340 # for the crawl.
2341 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2342 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2343 },
2344 &quot;maxDepth&quot;: 42, # The max depth of the traversal stack Robo can explore. Needs to be at least
2345 # 2 to make Robo explore the app beyond the first activity.
2346 # Default is 50.
2347 },
2348 &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
2349 # scripts.
2350 &quot;systrace&quot;: { # Systrace configuration for the run.
2351 # If set a systrace will be taken, starting on test start and lasting for the
2352 # configured duration. The systrace file thus obtained is put in the results
2353 # bucket together with the other artifacts from the run.
2354 &quot;durationSeconds&quot;: 42, # Systrace duration in seconds.
2355 # Should be between 1 and 30 seconds. 0 disables systrace.
2356 },
2357 &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.
2358 &quot;googleAuto&quot;: { # Enables automatic Google account login. # An automatic google login account.
2359 # If set, the service automatically generates a Google test account and adds
2360 # it to the device, before executing the test. Note that test accounts might be
2361 # reused.
2362 # Many applications show their full set of functionalities when an account is
2363 # present on the device. Logging into the device with these generated accounts
2364 # allows testing more functionalities.
2365 },
2366 },
2367 &quot;directoriesToPull&quot;: [ # List of directories on the device to upload to GCS at the end of the test;
2368 # they must be absolute paths under /sdcard or /data/local/tmp.
2369 # Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
2370 #
2371 # Note: The paths /sdcard and /data will be made available and treated as
2372 # implicit path substitutions. E.g. if /sdcard on a particular device does
2373 # not map to external storage, the system will replace it with the external
2374 # storage path prefix for that device.
2375 &quot;A String&quot;,
2376 ],
2377 &quot;networkProfile&quot;: &quot;A String&quot;, # The network traffic profile used for running the test.
2378 # Available network profiles can be queried by using the
2379 # NETWORK_CONFIGURATION environment type when calling
2380 # TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
2381 &quot;environmentVariables&quot;: [ # Environment variables to set for the test (only applicable for
2382 # instrumentation tests).
2383 { # A key-value pair passed as an environment variable to the test.
2384 &quot;value&quot;: &quot;A String&quot;, # Value for the environment variable.
2385 &quot;key&quot;: &quot;A String&quot;, # Key for the environment variable.
2386 },
2387 ],
2388 &quot;additionalApks&quot;: [ # APKs to install in addition to those being directly tested.
2389 # Currently capped at 100.
2390 { # An Android package file to install.
2391 &quot;packageName&quot;: &quot;A String&quot;, # The java package for the APK to be installed.
2392 # Value is determined by examining the application&#x27;s manifest.
2393 &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.
2394 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2395 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2396 },
2397 },
2398 ],
2399 &quot;filesToPush&quot;: [ # List of files to push to the device before starting the test.
2400 { # A single device file description.
2401 &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.
2402 &quot;obb&quot;: { # A reference to a file, used for user inputs. # Required. Opaque Binary Blob (OBB) file(s) to install on the device.
2403 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2404 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2405 },
2406 &quot;obbFileName&quot;: &quot;A String&quot;, # Required. OBB file name which must conform to the format as specified by
2407 # Android
2408 # e.g. [main|patch].0300110.com.example.android.obb
2409 # which will be installed into
2410 # \&lt;shared-storage\&gt;/Android/obb/\&lt;package-name\&gt;/
2411 # on the device.
2412 },
2413 &quot;regularFile&quot;: { # A file or directory to install on the device before the test starts. # A reference to a regular file.
2414 &quot;devicePath&quot;: &quot;A String&quot;, # Required. Where to put the content on the device. Must be an absolute,
2415 # whitelisted path. If the file exists, it will be replaced.
2416 # The following device-side directories and any of their subdirectories are
2417 # whitelisted:
2418 # &lt;p&gt;${EXTERNAL_STORAGE}, or /sdcard&lt;/p&gt;
2419 # &lt;p&gt;${ANDROID_DATA}/local/tmp, or /data/local/tmp&lt;/p&gt;
2420 # &lt;p&gt;Specifying a path outside of these directory trees is invalid.
2421 #
2422 # &lt;p&gt; The paths /sdcard and /data will be made available and treated as
2423 # implicit path substitutions. E.g. if /sdcard on a particular device does
2424 # not map to external storage, the system will replace it with the external
2425 # storage path prefix for that device and copy the file there.
2426 #
2427 # &lt;p&gt; It is strongly advised to use the &lt;a href=
2428 # &quot;http://developer.android.com/reference/android/os/Environment.html&quot;&gt;
2429 # Environment API&lt;/a&gt; in app and test code to access files on the device in a
2430 # portable way.
2431 &quot;content&quot;: { # A reference to a file, used for user inputs. # Required. The source file.
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 },
2437 ],
2438 },
2439 &quot;androidTestLoop&quot;: { # A test of an Android Application with a Test Loop. # An Android Application with a Test Loop.
2440 # The intent \&lt;intent-name\&gt; will be implicitly added, since Games is the only
2441 # user of this api, for the time being.
2442 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2443 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2444 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2445 },
2446 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2447 # The default is determined by examining the application&#x27;s manifest.
2448 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2449 # a base module directory, zero or more dynamic feature module directories.
2450 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2451 # building App Bundles.
2452 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2453 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2454 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2455 },
2456 },
2457 &quot;scenarios&quot;: [ # The list of scenarios that should be run during the test.
2458 # The default is all test loops, derived from the application&#x27;s
2459 # manifest.
2460 42,
2461 ],
2462 &quot;scenarioLabels&quot;: [ # The list of scenario labels that should be run during the test.
2463 # The scenario labels should map to labels defined in the application&#x27;s
2464 # manifest. For example, player_experience and
2465 # com.google.test.loops.player_experience add all of the loops labeled in the
2466 # manifest with the com.google.test.loops.player_experience name to the
2467 # execution.
2468 # Scenarios can also be specified in the scenarios field.
2469 &quot;A String&quot;,
2470 ],
2471 },
2472 &quot;androidInstrumentationTest&quot;: { # A test of an Android application that can control an Android component # An Android instrumentation test.
2473 # independently of its normal lifecycle.
2474 # Android instrumentation tests run an application APK and test APK inside the
2475 # same process on a virtual or physical AndroidDevice. They also specify
2476 # a test runner class, such as com.google.GoogleTestRunner, which can vary
2477 # on the specific instrumentation framework chosen.
2478 #
2479 # See &lt;http://developer.android.com/tools/testing/testing_android.html&gt; for
2480 # more information on types of Android tests.
2481 &quot;orchestratorOption&quot;: &quot;A String&quot;, # The option of whether running each test within its own invocation of
2482 # instrumentation with Android Test Orchestrator or not.
2483 # ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
2484 # higher! **
2485 # Orchestrator offers the following benefits:
2486 # - No shared state
2487 # - Crashes are isolated
2488 # - Logs are scoped per test
2489 #
2490 # See
2491 # &lt;https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator&gt;
2492 # for more information about Android Test Orchestrator.
2493 #
2494 # If not set, the test will be run without the orchestrator.
2495 &quot;appBundle&quot;: { # An Android App Bundle file format, containing a BundleConfig.pb file, # A multi-apk app bundle for the application under test.
2496 # a base module directory, zero or more dynamic feature module directories.
2497 # &lt;p&gt;See https://developer.android.com/guide/app-bundle/build for guidance on
2498 # building App Bundles.
2499 &quot;bundleLocation&quot;: { # A reference to a file, used for user inputs. # .aab file representing the app bundle under test.
2500 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2501 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2502 },
2503 },
2504 &quot;testTargets&quot;: [ # Each target must be fully qualified with the package name or class name,
2505 # in one of these formats:
2506 # - &quot;package package_name&quot;
2507 # - &quot;class package_name.class_name&quot;
2508 # - &quot;class package_name.class_name#method_name&quot;
2509 #
2510 # If empty, all targets in the module will be run.
2511 &quot;A String&quot;,
2512 ],
2513 &quot;testApk&quot;: { # A reference to a file, used for user inputs. # Required. The APK containing the test code to be executed.
2514 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2515 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2516 },
2517 &quot;testRunnerClass&quot;: &quot;A String&quot;, # The InstrumentationTestRunner class.
2518 # The default value is determined by examining the application&#x27;s manifest.
2519 &quot;shardingOption&quot;: { # Options for enabling sharding. # The option to run tests in multiple shards in parallel.
2520 &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
2521 # methods.
2522 # methods.
2523 #
2524 # With manual sharding enabled, specifying test targets via
2525 # environment_variables or in InstrumentationTest is invalid.
2526 &quot;testTargetsForShard&quot;: [ # Required. Group of packages, classes, and/or test methods to be run for
2527 # each shard. The number of shard_test_targets must be &gt;= 1 and &lt;= 50.
2528 { # Test targets for a shard.
2529 &quot;testTargets&quot;: [ # Group of packages, classes, and/or test methods to be run for each shard.
2530 # The targets need to be specified in AndroidJUnitRunner argument format. For
2531 # example, “package com.my.packages” “class com.my.package.MyClass”.
2532 #
2533 # The number of shard_test_targets must be greater than 0.
2534 &quot;A String&quot;,
2535 ],
2536 },
2537 ],
2538 },
2539 &quot;uniformSharding&quot;: { # Uniformly shards test cases given a total number of shards. # Uniformly shards test cases given a total number of shards.
2540 #
2541 # For Instrumentation test, it will be translated to “-e numShard” “-e
2542 # shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
2543 # specifying these sharding arguments via environment_variables is invalid.
2544 &quot;numShards&quot;: 42, # Required. Total number of shards. The number must be &gt;= 1 and &lt;= 50.
2545 },
2546 },
2547 &quot;testPackageId&quot;: &quot;A String&quot;, # The java package for the test to be executed.
2548 # The default value is determined by examining the application&#x27;s manifest.
2549 &quot;appPackageId&quot;: &quot;A String&quot;, # The java package for the application under test.
2550 # The default value is determined by examining the application&#x27;s manifest.
2551 &quot;appApk&quot;: { # A reference to a file, used for user inputs. # The APK for the application under test.
2552 &quot;gcsPath&quot;: &quot;A String&quot;, # A path to a file in Google Cloud Storage.
2553 # Example: gs://build-app-1414623860166/app-debug-unaligned.apk
2554 },
2555 },
2556 &quot;disablePerformanceMetrics&quot;: True or False, # Disables performance metrics recording. May reduce test latency.
2557 &quot;disableVideoRecording&quot;: True or False, # Disables video recording. May reduce test latency.
2558 },
2559 &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
2560 },
2561 ],
2562 &quot;environmentMatrix&quot;: { # The matrix of environments in which the test is to be executed. # Required. The devices the tests are being executed on.
2563 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002564 # devices.
Bu Sun Kim65020912020-05-20 12:08:20 -07002565 &quot;androidDevices&quot;: [ # Required. A list of Android devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002566 { # A single Android device.
Bu Sun Kim65020912020-05-20 12:08:20 -07002567 &quot;androidModelId&quot;: &quot;A String&quot;, # Required. The id of the Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002568 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002569 &quot;androidVersionId&quot;: &quot;A String&quot;, # Required. The id of the Android OS version to be used.
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;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002572 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002573 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002574 # Use the TestEnvironmentDiscoveryService to get supported options.
2575 },
2576 ],
2577 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002578 &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 -07002579 # the cross-product of the given axes. Internally, the given AndroidMatrix
2580 # will be expanded into a set of AndroidDevices.
2581 #
2582 # Only supported permutations will be instantiated. Invalid permutations
2583 # (e.g., incompatible models/versions) are ignored.
Bu Sun Kim65020912020-05-20 12:08:20 -07002584 &quot;androidModelIds&quot;: [ # Required. The ids of the set of Android device to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002585 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002586 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002587 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002588 &quot;orientations&quot;: [ # Required. The set of orientations to test with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002589 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002590 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002591 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002592 &quot;androidVersionIds&quot;: [ # Required. The ids of the set of Android OS version to be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002593 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002594 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002595 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002596 &quot;locales&quot;: [ # Required. The set of locales the test device will enable for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002597 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002598 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002599 ],
2600 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002601 &quot;iosDeviceList&quot;: { # A list of iOS device configurations in which the test is to be executed. # A list of iOS devices.
2602 &quot;iosDevices&quot;: [ # Required. A list of iOS devices.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002603 { # A single iOS device.
Bu Sun Kim65020912020-05-20 12:08:20 -07002604 &quot;orientation&quot;: &quot;A String&quot;, # Required. How the device is oriented during the test.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002605 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002606 &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 -07002607 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002608 &quot;locale&quot;: &quot;A String&quot;, # Required. The locale the test device used for testing.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002609 # Use the TestEnvironmentDiscoveryService to get supported options.
Bu Sun Kim65020912020-05-20 12:08:20 -07002610 &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 -07002611 # Use the TestEnvironmentDiscoveryService to get supported options.
2612 },
2613 ],
2614 },
2615 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002616 &quot;resultStorage&quot;: { # Locations where the results of running the test are stored. # Required. Where the results for the matrix are written.
2617 &quot;resultsUrl&quot;: &quot;A String&quot;, # Output only. URL to the results in the Firebase Web Console.
2618 &quot;toolResultsHistory&quot;: { # Represents a tool results history resource. # The tool results history that contains the tool results execution that
2619 # results are written to.
2620 #
2621 # If not provided, the service will choose an appropriate value.
2622 &quot;projectId&quot;: &quot;A String&quot;, # Required. The cloud project that owns the tool results history.
2623 &quot;historyId&quot;: &quot;A String&quot;, # Required. A tool results history ID.
2624 },
2625 &quot;googleCloudStorage&quot;: { # A storage location within Google cloud storage (GCS). # Required.
2626 &quot;gcsPath&quot;: &quot;A String&quot;, # Required. The path to a directory in GCS that will
2627 # eventually contain the results for this test.
2628 # The requesting user must have write access on the bucket in the supplied
2629 # path.
2630 },
2631 &quot;toolResultsExecution&quot;: { # Represents a tool results execution resource. # Output only. The tool results execution that results are written to.
2632 #
2633 # This has the results of a TestMatrix.
2634 &quot;projectId&quot;: &quot;A String&quot;, # Output only. The cloud project that owns the tool results execution.
2635 &quot;historyId&quot;: &quot;A String&quot;, # Output only. A tool results history ID.
2636 &quot;executionId&quot;: &quot;A String&quot;, # Output only. A tool results execution ID.
2637 },
2638 },
2639 &quot;testMatrixId&quot;: &quot;A String&quot;, # Output only. Unique id set by the service.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002640 }</pre>
2641</div>
2642
2643</body></html>