- リソース: TestMatrix
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ClientInfo
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ClientInfoDetail
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TestSpecification
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TestSetup
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- DeviceFile
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ObbFile
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ファイル参照
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- RegularFile
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- APK
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- アカウント
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- Google 自動車
- 環境変数
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- SystraceSetup
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosTestSetup
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosDeviceFile
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- AndroidInstrumentationTest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- AppBundle
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- OrchestratorOption
- ShardingOption
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- UniformSharding
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- 手動シャーディング
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TestTargetsForShard
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- スマートシャーディング
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- AndroidRoboTest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- RoboDirective
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- RoboActionType
- RoboMode
- RoboStartingIntent
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- LauncherActivityIntent
- StartActivityIntent
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- NoActivityIntent
- AndroidTestLoop
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosXcTest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosTestLoop
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosRoboTest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- EnvironmentMatrix
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- AndroidMatrix
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- AndroidDeviceList
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosDeviceList
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IosDevice
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TestExecution
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- シャード
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- 環境
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TestState
- ToolResultsStep
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TestDetails
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ResultStorage
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- GoogleCloudStorage
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ToolResultsHistory
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ToolResultsExecution
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- InvalidMatrixDetails
- MatrixErrorDetail
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- 結果の概要
- メソッド
リソース: TestMatrix
TestMatrix はテストに関するすべての詳細情報をキャプチャします。これには、環境構成、テスト仕様、テスト実行、全体的な状態と結果が含まれます。
JSON 表現 |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
フィールド | |
---|---|
testMatrixId |
出力専用。サービスによって設定された一意の ID。 |
projectId |
テスト マトリックスを所有する Cloud プロジェクト。 |
clientInfo |
テストを呼び出したクライアントに関する情報。 |
testSpecification |
必須。テストの実行方法。 |
environmentMatrix |
必須。テストが実行されているデバイス。 |
testExecutions[] |
出力専用。このマトリックスに対してサービスが作成するテスト実行のリスト。 |
resultStorage |
必須。マトリックスの結果が書き込まれる場所。 |
state |
出力専用。テスト マトリックスの現在の進捗状況を示します。 |
timestamp |
出力専用。このテスト マトリックスが最初に作成された時刻。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
invalidMatrixDetails |
出力専用。マトリックスが無効と見なされる理由を説明します。INVALID 状態のマトリックスに対してのみ有効です。 |
extendedInvalidMatrixDetails[] |
出力専用。マトリックスが無効とみなされた理由の詳細。複数のチェックを安全に実行できる場合は報告されますが、このリストの長さについては何らの仮定もしないでください。 |
flakyTestAttempts |
なんらかの理由で 1 つ以上のテストケースが失敗した場合に、TestExecution を再試行する回数。許可される再実行の最大数は 10 です。 デフォルトは 0 で、これは再実行がないことを意味します。 |
outcomeSummary |
出力専用。テストの全体的な結果。テスト マトリックスのステータスが FINISHED の場合にのみ設定されます。 |
failFast |
true の場合、マトリックス内の各実行/シャードの実行が最大 1 回試行されます。不安定なテストの試行には影響しません。 通常、潜在的なインフラストラクチャの問題が検出された場合は、2 回以上の試行が行われます。 この機能は、レイテンシの影響を受けやすいワークロード向けです。フェイル ファスト マトリックスでは実行エラーの発生率が著しく大きくなる可能性があり、その期待によりサポートは限定的です。 |
ClientInfo
テストを呼び出したクライアントに関する情報。
JSON 表現 |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
フィールド | |
---|---|
name |
必須。クライアント名(gcloud など)。 |
clientInfoDetails[] |
クライアントに関する詳細情報のリスト。 |
ClientInfoDetail
テストを呼び出したクライアントに関する詳細情報の Key-Value ペア。たとえば {'Version', '1.0'}、{'Release Track', 'BETA'} です。
JSON 表現 |
---|
{ "key": string, "value": string } |
フィールド | |
---|---|
key |
必須。詳細なクライアント情報のキー。 |
value |
必須。詳細なクライアント情報の値。 |
TestSpecification
テストの実行方法の説明。
JSON 表現 |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
フィールド | |
---|---|
testTimeout |
テスト実行が自動的にキャンセルされる前に実行できる最大時間。デフォルト値は 5 分です。
|
disableVideoRecording |
録画を無効にします。テストのレイテンシが短くなる場合があります。 |
disablePerformanceMetrics |
パフォーマンス指標の記録を無効にします。テストのレイテンシが短くなる場合があります。 |
共用体フィールド setup 。テストのセットアップ要件setup は次のいずれかになります。 |
|
testSetup |
Android のテストセットアップ要件インストールするファイル、ブートストラップ スクリプト。 |
iosTestSetup |
iOS のテスト設定要件 |
共用体フィールド test 。必須。実行するテストのタイプ。test は次のいずれかになります。 |
|
androidInstrumentationTest |
Android インストルメンテーション テスト。 |
androidRoboTest |
Android の robo テスト。 |
androidTestLoop |
テストループを備えた Android アプリ。 |
iosXcTest |
iOS XCTest(.xctestrun ファイル経由)。 |
iosTestLoop |
テストループを備えた iOS アプリ。 |
iosRoboTest |
iOS Robo テスト。 |
TestSetup
テストを実行する前に Android デバイスを設定する方法の説明。
JSON 表現 |
---|
{ "filesToPush": [ { object ( |
フィールド | |
---|---|
filesToPush[] |
テストを開始する前にデバイスにプッシュするファイルのリスト。 |
directoriesToPull[] |
テスト終了時に GCS にアップロードするデバイス上のディレクトリのリスト/sdcard、/storage、/data/local/tmp の下の絶対パスにする必要があります。パス名に使用できる文字は a ~ z、A ~ Z、0 ~ 9 _ - です。+ および / 注: パス /sdcard および /data は、暗黙のパス置換として使用可能になり、処理されます。たとえば、特定のデバイスの /sdcard が外部ストレージにマッピングされていない場合、システムはこのパスをそのデバイスの外部ストレージパスの接頭辞に置き換えます。 |
initialSetupApks[] |
省略可。テスト対象のアプリをインストールする前にインストールする初期設定の APK。現在の上限は 100 個です。 |
additionalApks[] |
直接テストされている APK に加えて、インストールする APK。これらはテスト対象のアプリの後にインストールされます。現在の上限は 100 個です。 |
account |
テスト中、デバイスはこのアカウントでログインします。 |
networkProfile |
テストの実行に使用されるネットワーク トラフィック プロファイル。TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog を呼び出すときに、NETWORK_CONFIGURATION 環境タイプを使用して使用可能なネットワーク プロファイルをクエリできます。 |
environmentVariables[] |
テストに設定する環境変数(インストルメンテーション テストにのみ適用されます)。 |
systrace |
実行の Systrace 構成。非推奨: Systrace は 2020 年 1 月 1 日に廃止された Python 2 を使用しました。Systrace は Cloud Testing API でサポートされなくなったため、結果に Systrace ファイルは提供されません。 |
dontAutograntPermissions |
アプリのインストール時にすべての実行時の権限を付与できないようにするかどうか |
DeviceFile
単一のデバイス ファイルの説明。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド device_file 。必須。device_file は次のいずれかになります。 |
|
obbFile |
不透明なバイナリ blob ファイルへの参照。 |
regularFile |
通常のファイルへの参照。 |
ObbFile
テストが開始される前にデバイスにインストールする不透明なバイナリ blob ファイル。
JSON 表現 |
---|
{
"obbFileName": string,
"obb": {
object ( |
フィールド | |
---|---|
obbFileName |
必須。Android で指定された形式に準拠する必要がある OBB ファイル名([main|patch].0300110.com.example.android.obb など)は、デバイスの <shared-storage>/Android/obb/<package-name>/ 上にインストールされます。 |
obb |
必須。デバイスにインストールする Opaque Binary Blob(OBB)ファイル。 |
FileReference
ユーザー入力に使用されるファイルへの参照。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド file 。必須。ファイル参照。file は次のいずれかになります。 |
|
gcsPath |
Google Cloud Storage 内のファイルのパス。例: gs://build-app-1414623860166/app%40debug-unaligned.apk これらのパスは URL エンコード(パーセント エンコーディング)である必要があります。 |
RegularFile
テストが開始される前にデバイスにインストールするファイルまたはディレクトリ。
JSON 表現 |
---|
{
"content": {
object ( |
フィールド | |
---|---|
content |
必須。ソースファイル。 |
devicePath |
必須。デバイス上のコンテンツの配置場所。許可リストに登録されている絶対パスを指定する必要があります。ファイルが存在する場合、ファイルが置き換えられます。次のデバイス側のディレクトリとそのサブディレクトリが許可リストに登録されています。 ${EXTERNAL_STORAGE}、/sdcard、または /storage ${ANDROID_DATA}/local/tmp、または /data/local/tmp これらのディレクトリ ツリーの外部にあるパスを指定することは無効です。 パス /sdcard と /data が利用可能になり、暗黙的なパス置換として扱われます。たとえば、特定のデバイスの /sdcard が外部ストレージにマッピングされていない場合、システムはこのパスをそのデバイスの外部ストレージパスの接頭辞に置き換え、そこにファイルをコピーします。 デバイス上のファイルにポータブルな方法でアクセスするには、アプリおよびテストのコードで Environment API を使用することを強くおすすめします。 |
APK
インストールする Android パッケージ ファイル。
JSON 表現 |
---|
{
"location": {
object ( |
フィールド | |
---|---|
location |
テスト開始前にデバイスにインストールされる APK のパス。 |
packageName |
インストールする APK の Java パッケージ。値は、アプリケーションのマニフェストを調べることで決定されます。 |
アカウント
アカウントおよびアカウントへのログイン方法を指定します。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド account_type 。必須。アカウントの種類。目的(Google など)とログイン メカニズム(ユーザー名とパスワードなど)に基づいています。account_type は次のいずれかになります。 |
|
googleAuto |
Google の自動ログイン アカウント。 |
GoogleAuto
この型にはフィールドがありません。
Google アカウントの自動ログインを有効にします。設定すると、テストを実行する前に Google のテスト アカウントが自動的に生成され、デバイスに追加されます。テスト アカウントは再利用される場合があるので注意してください。アカウントがデバイスに存在するとき、多くのアプリケーションはその完全な機能セットを示します。これらの生成されたアカウントでデバイスにログインすると、より多くの機能をテストできます。
EnvironmentVariable
環境変数としてテストに渡される Key-Value ペア。
JSON 表現 |
---|
{ "key": string, "value": string } |
フィールド | |
---|---|
key |
環境変数のキー。 |
value |
環境変数の値。 |
Systrace 設定
JSON 表現 |
---|
{ "durationSeconds": integer } |
フィールド | |
---|---|
durationSeconds |
Systrace の実行時間(秒単位)。1 ~ 30 秒の範囲で指定してください。0 は systrace を無効にします。 |
IosTestSetup
テストを実行する前に iOS デバイスを設定する方法の説明。
JSON 表現 |
---|
{ "networkProfile": string, "additionalIpas": [ { object ( |
フィールド | |
---|---|
networkProfile |
テストの実行に使用されるネットワーク トラフィック プロファイル。TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog を呼び出すときに、NETWORK_CONFIGURATION 環境タイプを使用して使用可能なネットワーク プロファイルをクエリできます。 |
additionalIpas[] |
直接テストされているものに加えて、インストールする iOS アプリがあります。 |
pushFiles[] |
テストを開始する前にデバイスにプッシュするファイルのリスト。 |
pullDirectories[] |
テスト終了時に Cloud Storage にアップロードするデバイス上のディレクトリのリスト。 ディレクトリは、共有ディレクトリ(/private/var/mobile/Media など)か、アプリのファイル システム内のアクセス可能なディレクトリ(/Documents など)にバンドル ID を指定して作成します。 |
iOSDeviceFile
テストが開始される前にデバイスにインストールするファイルまたはディレクトリ。
JSON 表現 |
---|
{
"content": {
object ( |
フィールド | |
---|---|
content |
ソースファイル |
bundleId |
このファイルが存在するアプリのバンドル ID。 iOS アプリは独自のファイル システムをサンドボックス化しているため、アプリファイルではデバイスにインストールするアプリを指定する必要があります。 |
devicePath |
デバイス上のファイルの場所(アプリのサンドボックス化されたファイルシステム内) |
AndroidInstrumentationTest
通常のライフサイクルとは無関係に Android コンポーネントを制御できる Android アプリケーションのテスト。Android インストゥルメンテーション テストは、仮想的または物理的な AndroidDevice 上の同じプロセス内でアプリケーション APK とテスト APK を実行します。また、com.google.GoogleTestRunner などのテストランナー クラスも指定します。これは選択したインストルメンテーション フレームワークによって異なる場合があります。
Android テストの種類について詳しくは、https://developer.android.com/training/testing/fundamentals をご覧ください。
JSON 表現 |
---|
{ "testApk": { object ( |
フィールド | |
---|---|
testApk |
必須。実行されるテストコードを含む APK。 |
appPackageId |
テスト対象のアプリケーションの Java パッケージ。デフォルト値は、アプリケーションのマニフェストを調べることで決まります。 |
testPackageId |
実行されるテストの Java パッケージ。デフォルト値は、アプリケーションのマニフェストを調べることで決まります。 |
testRunnerClass |
InstrumentationTestRunner クラス。デフォルト値は、アプリケーションのマニフェストを調べることで決まります。 |
testTargets[] |
各ターゲットは、次のいずれかの形式でパッケージ名またはクラス名で完全修飾する必要があります。
空の場合、モジュール内のすべてのターゲットが実行されます。 |
orchestratorOption |
Android Test Orchestrator で、各テストを独自のインストゥルメンテーションの呼び出し内で実行するかどうかのオプション。** Orchestrator は AndroidJUnitRunner バージョン 1.1 以降とのみ互換性があります。** オーケストレーターには次の利点があります。
Android Test Orchestrator の詳細については、https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator をご覧ください。 設定しない場合、テストは Orchestrator なしで実行されます。 |
shardingOption |
複数のシャードでテストを並行して実行するオプション。 |
共用体フィールド app_under_test 。必須。app_under_test は次のいずれかになります。 |
|
appApk |
テスト対象アプリの APK。 |
appBundle |
テスト対象アプリ用のマルチ APK App Bundle。 |
AppBundle
BundleConfig.pb ファイル、ベース モジュール ディレクトリ、0 個以上の動的機能モジュール ディレクトリを含む Android App Bundle ファイル フォーマット。
App Bundle の構築のガイダンスについては、https://developer.android.com/guide/app-bundle/build をご覧ください。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド bundle 。必須。バンドルの場所に関する情報。bundle は次のいずれかになります。 |
|
bundleLocation |
テスト対象の App Bundle を表す .aab ファイル。 |
OrchestratorOption
テストの実行方法を指定します。
列挙型 | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED |
デフォルト値: サーバーはモードを選択します。現在は、テストがオーケストレーターなしで実行されることを示します。将来的には、すべてのインストゥルメンテーション テストはオーケストレーターで実行される予定です。オーケストレーターには多くの有用な機能があるため、その使用を強くおすすめします。 |
USE_ORCHESTRATOR |
オーケストレーターを使用してテストを実行します。** AndroidJUnitRunner バージョン 1.1 以降にのみ互換性があります。** 推奨。 |
DO_NOT_USE_ORCHESTRATOR |
オーケストレーターを使用せずにテストを実行します。 |
ShardingOption
シャーディングを有効にするオプション。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド
|
|
uniformSharding |
シャードの合計数に基づいてテストケースを均一にシャーディングします。 |
manualSharding |
テストケースを、指定されたパッケージ、クラス、メソッドのグループに分割します。 |
smartSharding |
以前のテストケースのタイミング レコードに基づいてテストをシャーディングします。 |
UniformSharding
シャードの合計数に基づいてテストケースを均一にシャーディングします。
インストルメンテーション テストの場合は、「-e numShard」に変換されます。および「-e shardIndex」AndroidJUnitRunner 引数。ユニフォーム シャーディングを有効にすると、これらのシャーディング引数のいずれかを environmentVariables
で指定することはできません。
AndroidJUnitRunner が使用するシャーディング メカニズムに基づくと、テストケースがすべてのシャードに均等に分散されるという保証はありません。
JSON 表現 |
---|
{ "numShards": integer } |
フィールド | |
---|---|
numShards |
必須。作成するシャードの合計数。この値は必ず、テストケースの合計数以下の正の数にする必要があります。1 つ以上の物理デバイスを選択する場合、シャードの数は 50 以下にする必要があります。1 つ以上の ARM 仮想デバイスを選択する場合は、200 以下であることが必要です。x86 仮想デバイスのみを選択する場合は、500 以下にする必要があります。 |
手動シャーディング
テストケースを、指定されたパッケージ、クラス、メソッドのグループに分割します。
手動シャーディングを有効にすると、環境変数または InstrumentationTest でテスト ターゲットを指定することはできません。
JSON 表現 |
---|
{
"testTargetsForShard": [
{
object ( |
フィールド | |
---|---|
testTargetsForShard[] |
必須。手動で作成したシャードごとに実行されるパッケージ、クラス、テストメソッドのグループ。このフィールドが存在する場合は、少なくとも 1 つのシャードを指定する必要があります。1 つ以上の物理デバイスを選択する場合、反復する testTargetsForShard の数は 50 以下にする必要があります。1 つ以上の ARM 仮想デバイスを選択する場合は、200 以下であることが必要です。x86 仮想デバイスのみを選択する場合は、500 以下にする必要があります。 |
TestTargetsForShard
シャードのテスト ターゲット。
JSON 表現 |
---|
{ "testTargets": [ string ] } |
フィールド | |
---|---|
testTargets[] |
シャードごとに実行されるパッケージ、クラス、テストメソッドのグループ。ターゲットは AndroidJUnitRunner 引数形式で指定する必要があります。例: package com.my.packages「class com.my.package.MyClass」とします。 testTargets の数には 0 より大きい値を指定してください。 |
スマートシャーディング
以前のテストケースのタイミング レコードに基づいてテストをシャーディングします。
JSON 表現 |
---|
{ "targetedShardDuration": string } |
フィールド | |
---|---|
targetedShardDuration |
シャード内のテストにかかる時間。 デフォルト: 300 秒(5 分)。指定できる最小値: 120 秒(2 分)。 シャードの最大数は、シャードの最大上限(後述)まで時間に基づいて動的に設定されます。シャードごとに少なくとも 1 つのテストケースを保証するには、シャードの数がテストケースの数を超えないようにする必要があります。次の場合、シャードの期間を超過します。
スマート シャーディングではテストケースの履歴とデフォルトの継続時間が使用されるため、シャードの所要時間が正確でない可能性があります。テストケースのタイミング レコードを検索するためのルールは次のとおりです。
実際のシャードの所要時間はターゲットのシャード時間を超える可能性があるため、テストの最大許容タイムアウト(物理デバイスでは 45 分、仮想デバイスでは 60 分)より少なくとも 5 分短く設定するか、設定したカスタムテストのタイムアウト値を使用することをおすすめします。この方法により、すべてのテストが完了する前にシャードをキャンセルする必要がなくなります。 シャードの最大数には上限があります。1 つ以上の物理デバイスを選択する場合、シャードの数は 50 以下にする必要があります。1 つ以上の ARM 仮想デバイスを選択する場合は、200 以下である必要があります。x86 仮想デバイスのみを選択する場合は、500 以下にする必要があります。シャードごとに少なくとも 1 つのテストケースを保証するには、シャードの数がテストケースの数を超えないようにする必要があります。作成された各シャードは、1 日あたりのテスト割り当てにカウントされます。
|
AndroidRoboTest
仮想的または物理的な Android デバイス上でアプリケーションを検査し、実行時のクラッシュとその原因を検出するための Android アプリケーションのテスト。
JSON 表現 |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
フィールド | |
---|---|
appPackageId |
テスト対象のアプリケーションの Java パッケージ。デフォルト値は、アプリケーションのマニフェストを調べることで決まります。 |
appInitialActivity |
アプリを起動するために使用する初期アクティビティ。 |
maxDepth |
Robo が探索できる走査スタックの最大深度。Robo が最初のアクティビティを超えてアプリを探索できるようにするには、少なくとも 2 にする必要があります。デフォルトは 50 です。 |
maxSteps |
Robo が実行できる最大ステップ数。デフォルトは無制限です。 |
roboDirectives[] |
Robo がクロール中に適用する一連のディレクティブ。これにより、ユーザーはクロールをカスタマイズできます。たとえば、テスト アカウントのユーザー名とパスワードを入力できます。 |
roboMode |
Robo を実行するモード。ほとんどのクライアントは、サーバーがこのフィールドを自動的に入力できるようにする必要があります。 |
roboScript |
Robo がクロールのプロローグとして実行する一連のアクションを記述した JSON ファイル。 |
startingIntents[] |
クロール用のアプリを起動するために使用されたインテント。何も指定していない場合、メインのランチャー アクティビティが起動されます。指定したものがある場合、それだけが起動されます(メインのランチャー アクティビティは明示的に指定する必要があります)。 |
共用体フィールド app_under_test 。必須。app_under_test は次のいずれかになります。 |
|
appApk |
テスト対象アプリの APK。 |
appBundle |
テスト対象アプリ用のマルチ APK App Bundle。 |
RoboDirective
クロール中に特定の UI 要素が検出された場合、Robo に特定の UI 要素と対話するよう指示します。現在、Robo はテキスト入力または要素のクリックを実行できます。
JSON 表現 |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
フィールド | |
---|---|
resourceName |
必須。対象となる UI 要素の Android リソース名。たとえば、Java の場合は R.string.foo、xml の場合は @string/foo で、"foo" 部分のみが必要です。参考資料: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText |
Robo に設定するテキスト。空のままの場合、このディレクティブは resourceName と一致する要素のクリックとして扱われます。 |
actionType |
必須。指定された要素に対して Robo が実行する操作の種類。 |
RoboActionType
Robo が UI 要素に対して実行できるアクション。
列挙型 | |
---|---|
ACTION_TYPE_UNSPECIFIED |
使用しないでください。proto バージョニング専用です。 |
SINGLE_CLICK |
指定された要素をクリックするよう Robo に指示します。指定された要素がクリック可能でない場合、処理は実行されません。 |
ENTER_TEXT |
指定した要素にテキストを入力するよう Robo に指示します。指定された要素が有効になっていないかテキスト入力が可能でない場合、処理は実行されません。 |
IGNORE |
特定の要素とのインタラクションを無視するよう Robo に指示します。 |
RoboMode
Robo を実行するモード。
列挙型 | |
---|---|
ROBO_MODE_UNSPECIFIED |
つまり、サーバーがモードを選択する必要があります。(推奨)。 |
ROBO_VERSION_1 |
アプリの再署名なしで UIAutomator 専用モードで Robo を実行 |
ROBO_VERSION_2 |
UIAutomator フォールバックを使用して標準 Espresso で Robo を実行 |
RoboStartingIntent
クロールする開始アクティビティを指定するメッセージ。
JSON 表現 |
---|
{ "timeout": string, // Union field |
フィールド | |
---|---|
timeout |
各インテントのタイムアウト(秒)。
|
共用体フィールド starting_intent 。必須。アクティビティを開始するためのインテントの詳細。starting_intent は次のいずれかになります。 |
|
launcherActivity |
メインのランチャー アクティビティを開始するインテント。 |
startActivity |
特定の詳細情報とともにアクティビティを開始するインテント。 |
noActivity |
開始アクティビティをスキップします |
LauncherActivityIntent
この型にはフィールドがありません。
メインのランチャー アクティビティを開始するインテントを指定します。
StartActivityIntent
アクション、uri、カテゴリで指定された開始インテント。
JSON 表現 |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
フィールド | |
---|---|
action |
アクション名。START_ACTIVITY に必要です。 |
uri |
アクションの URI。 |
categories[] |
インテントに設定するインテントのカテゴリ。 |
NoActivityIntent
この型にはフィールドがありません。
開始アクティビティをスキップします
AndroidTestLoop
テストループを備えた Android アプリケーション テスト。インテント <intent-name> が暗黙的に追加されます。これは、この API の唯一のユーザーは当面のところ Games であるためです。
JSON 表現 |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
フィールド | |
---|---|
appPackageId |
テスト対象のアプリケーションの Java パッケージ。デフォルトは、アプリケーションのマニフェストを調べることで判断されます。 |
scenarios[] |
テスト中に実行する必要があるシナリオのリスト。デフォルトは、アプリのマニフェストから派生したすべてのテストループです。 |
scenarioLabels[] |
テスト中に実行する必要があるシナリオラベルのリスト。シナリオのラベルは、アプリのマニフェストで定義されたラベルにマッピングする必要があります。たとえば、player_experience と com.google.test.loops.player_experience も com.google.test.loops.player_experience という名前でマニフェスト内でラベル付けされているすべてのループを実行コードに追加するコードです。シナリオはシナリオ フィールドで指定することもできます。 |
共用体フィールド app_under_test 。必須。テストする Android パッケージ。app_under_test は次のいずれかになります。 |
|
appApk |
テスト対象アプリの APK。 |
appBundle |
テスト対象アプリ用のマルチ APK App Bundle。 |
IosXcTest
XCTest フレームワークを使用する iOS アプリケーションのテスト。Xcode は、テスト仕様(引数、テストメソッドなど)を含む .xctestrun ファイルを生成する「テスト用のビルド」オプションをサポートしています。このテストタイプは、.xctestrun ファイルと、Build/Products ディレクトリの対応する内容(テストを実行するために必要なすべてのバイナリを含む)からなる zip ファイルを受け入れます。
JSON 表現 |
---|
{ "testsZip": { object ( |
フィールド | |
---|---|
testsZip |
必須。.xctestrun ファイルと、DerivedData/Build/Products ディレクトリの内容からなる .zip ファイル。xctestrun フィールドが指定されている場合、この zip の .xctestrun ファイルは無視されます。 |
xctestrun |
テスト zip 内の .xctestrun ファイルをオーバーライドする .xctestrun ファイル。.xctestrun ファイルには、環境変数や実行または無視するテストメソッドが含まれており、シャーディング テストに役立ちます。デフォルトはテスト zip から取得されます。 |
xcodeVersion |
テストに使用する Xcode のバージョン。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。Firebase Test Lab がサポートする最新の Xcode バージョンにデフォルト設定されます。 |
appBundleId |
出力専用。テスト対象のアプリケーションのバンドル ID。 |
testSpecialEntitlements |
特別なアプリの利用資格をテストするオプション。これを設定すると、明示的なアプリケーション ID を使用して特別な利用資格を持つアプリに再署名します。現在、aps-environment 利用資格のテストをサポートしています。 |
IosTestLoop
1 つ以上のゲームループ シナリオを実装する iOS アプリのテスト。このテストタイプでは、アーカイブされたアプリ(.ipa ファイル)と、アプリで順次実行される整数シナリオのリストを使用できます。
JSON 表現 |
---|
{
"appIpa": {
object ( |
フィールド | |
---|---|
appIpa |
必須。テストするアプリケーションの .ipa。 |
scenarios[] |
テスト中に実行する必要があるシナリオのリスト。指定しない場合のデフォルトは、単一のシナリオ 0 です。 |
appBundleId |
出力専用。テスト対象のアプリケーションのバンドル ID。 |
IosRoboTest
iOS デバイスで iOS アプリを調べるテスト。
JSON 表現 |
---|
{ "appIpa": { object ( |
フィールド | |
---|---|
appIpa |
必須。このファイルに保存されている IPA を使用してテストを実行する必要があります。 |
appBundleId |
テスト対象のアプリのバンドル ID。これを確認するには、アプリケーションの「Info.plist」を表示されます。 |
roboScript |
クロールをカスタマイズするための Roboscript(省略可)。Roboscript の詳細については、https://firebase.google.com/docs/test-lab/android/robo-scripts-reference をご覧ください。 |
EnvironmentMatrix
テストが実行される環境のマトリックス。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド environment_matrix 。必須。環境マトリックス。environment_matrix は次のいずれかになります。 |
|
androidMatrix |
Android デバイスのマトリックス。 |
androidDeviceList |
Android デバイスのリストテストは指定したデバイスでのみ実行されます。 |
iosDeviceList |
iOS デバイスのリスト。 |
AndroidMatrix
Android デバイス構成の順列セットは、指定された軸のクロス積によって定義されます。内部的には、所定の AndroidMatrix は AndroidDevices のセットに展開されます。
サポートされている順列のみがインスタンス化されます。無効な順列(たとえば、互換性のないモデル / バージョン)は無視されます。
JSON 表現 |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
フィールド | |
---|---|
androidModelIds[] |
必須。使用する Android デバイスのセットの ID。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
androidVersionIds[] |
必須。使用する Android OS バージョンのセットの ID。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
locales[] |
必須。テストデバイスがテスト用に有効にするロケールのセット。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
orientations[] |
必須。テストする画面の向きのセット。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
AndroidDeviceList
テストが実行される Android デバイス構成のリスト。
JSON 表現 |
---|
{
"androidDevices": [
{
object ( |
フィールド | |
---|---|
androidDevices[] |
必須。Android デバイスのリスト。 |
IosDeviceList
テストが実行される iOS デバイス構成のリスト。
JSON 表現 |
---|
{
"iosDevices": [
{
object ( |
フィールド | |
---|---|
iosDevices[] |
必須。iOS デバイスのリスト。 |
IosDevice
1 つの iOS デバイス。
JSON 表現 |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
フィールド | |
---|---|
iosModelId |
必須。使用する iOS デバイスの ID。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
iosVersionId |
必須。使用する iOS メジャー ソフトウェア バージョンの ID。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
locale |
必須。テストデバイスでテストに使用されたロケール。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
orientation |
必須。テスト中のデバイスの向き。サポートされているオプションを取得するには、TestEnvironmentDiscoveryService を使用します。 |
TestExecution
1 つの環境で実行される 1 つのテスト。
JSON 表現 |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
フィールド | |
---|---|
id |
出力専用。サービスによって設定された一意の ID。 |
matrixId |
出力専用。格納先の TestMatrix の ID。 |
projectId |
出力専用。テスト実行を所有する Cloud プロジェクト。 |
testSpecification |
出力専用。テストの実行方法。 |
shard |
出力専用。シャードの詳細。 |
environment |
出力専用。ホストマシンの構成方法。 |
state |
出力専用。テスト実行の現在の進行状況を示します(FINISHED)。 |
toolResultsStep |
出力専用。この実行の結果が書き込まれる場所。 |
timestamp |
出力専用。このテスト実行が最初に作成された時刻。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
testDetails |
出力専用。実行中のテストに関する追加の詳細。 |
シャード
出力専用。シャードの詳細。
JSON 表現 |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
フィールド | |
---|---|
shardIndex |
出力専用。すべてのシャード内のシャードのインデックス。 |
numShards |
出力専用。シャードの合計数。 |
testTargetsForShard |
出力専用。各シャードのテスト ターゲット。手動シャーディングの場合にのみ設定されます。 |
estimatedShardDuration |
出力専用。以前のテストケースのタイミング レコードに基づくシャードの推定所要時間(利用可能な場合)。
|
環境
テストが実行される環境。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド environment 。必須。環境。environment は次のいずれかになります。 |
|
androidDevice |
Android テストで使用する必要がある Android デバイス。 |
iosDevice |
iOS テストで使用する必要がある iOS デバイス。 |
TestState
テスト実行またはマトリックスの状態(すなわち、進行状況)。
列挙型 | |
---|---|
TEST_STATE_UNSPECIFIED |
使用しないでください。proto バージョニング専用です。 |
VALIDATING |
実行またはマトリックスを検証中です。 |
PENDING |
実行またはマトリックスは、リソースが使用可能になるのを待っています。 |
RUNNING |
実行は現在処理中です。 実行時にのみ設定できます。 |
FINISHED |
実行またはマトリックスが正常に終了しました。 マトリックス上では、これはマトリックス レベルの処理が正常に完了したことを意味しますが、個々の実行は ERROR 状態になっている可能性があります。 |
ERROR |
インフラストラクチャ障害が発生したため、実行またはマトリックスが停止しました。 |
UNSUPPORTED_ENVIRONMENT |
サポートされていない環境にあたるため、実行は行われませんでした。 実行時にのみ設定できます。 |
INCOMPATIBLE_ENVIRONMENT |
要求された環境と互換性のないデータが入力されたため、実行は行われませんでした。 例: 要求された AndroidVersion が APK の minSdkVersion より低い 実行時にのみ設定できます。 |
INCOMPATIBLE_ARCHITECTURE |
要求されたアーキテクチャと互換性のないデータが入力されたため、実行は行われませんでした。 例: 要求されたデバイスが、提供された APK におけるネイティブ コードの実行をサポートしていない 実行時にのみ設定できます。 |
CANCELLED |
ユーザーが実行をキャンセルしました。 実行時にのみ設定できます。 |
INVALID |
無効なデータが入力されたため、実行またはマトリックスの実装が行われませんでした。 例: 入力ファイルが予想されたタイプではないか、不正な形式であるか破損している、あるいはマルウェアとしてフラグが立てられている |
ToolResultsStep
ツール結果ステップのリソースを表します。
これには TestExecution の結果が含められます。
JSON 表現 |
---|
{ "projectId": string, "historyId": string, "executionId": string, "stepId": string } |
フィールド | |
---|---|
projectId |
出力専用。ツール結果のステップを所有する Cloud プロジェクト。 |
historyId |
出力専用。ツール結果履歴 ID。 |
executionId |
出力専用。ツール結果実行 ID。 |
stepId |
出力専用。ツール結果のステップ ID。 |
TestDetails
実行中のテストの進行状況に関する追加の詳細。
JSON 表現 |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
フィールド | |
---|---|
progressMessages[] |
出力のみ。人間が読める形式で記載された、テストの進行状況に関する詳細説明。たとえば、"Provisioning a device"、"Starting Test" などと記述します。 実行の過程で、新しいデータが progressMessages の最後に追加されることがあります。 |
errorMessage |
出力専用。TestState が ERROR の場合、この文字列には人間が判読可能なエラーの詳細が含まれます。 |
ResultStorage
テストの実行結果が格納される場所。
JSON 表現 |
---|
{ "googleCloudStorage": { object ( |
フィールド | |
---|---|
googleCloudStorage |
必須。 |
toolResultsHistory |
結果が書き込まれるツール結果実行が含まれるツール結果履歴。 指定されていない場合、サービスは適切な値を選択します。 |
toolResultsExecution |
出力専用。結果が書き込まれるツール結果実行。 |
resultsUrl |
出力専用。Firebase ウェブ コンソールの結果への URL。 |
GoogleCloudStorage
Google Cloud Storage(GCS)内の保存場所。
JSON 表現 |
---|
{ "gcsPath": string } |
フィールド | |
---|---|
gcsPath |
必須。このテストの結果が最終的に格納される GCS のディレクトリへのパス。リクエスト元のユーザーには、指定されたパスのバケットに対する書き込みアクセス権が必要です。 |
ToolResultsHistory
ツール結果履歴リソースを表します。
JSON 表現 |
---|
{ "projectId": string, "historyId": string } |
フィールド | |
---|---|
projectId |
必須。ツール結果履歴を所有するクラウド プロジェクト。 |
historyId |
必須。ツール結果履歴 ID。 |
ToolResultsExecution
ツール結果実行のリソースを表します。
これには TestMatrix の結果が含められます。
JSON 表現 |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
フィールド | |
---|---|
projectId |
出力専用。ツール結果実行を所有するクラウド プロジェクト。 |
historyId |
出力専用。ツール結果履歴 ID。 |
executionId |
出力専用。ツール結果実行 ID。 |
InvalidMatrixDetails
マトリックスが INVALID と見なされた詳細な理由。
列挙型 | |
---|---|
INVALID_MATRIX_DETAILS_UNSPECIFIED |
使用しないでください。proto バージョニング専用です。 |
DETAILS_UNAVAILABLE |
マトリックスは INVALID ですが、それ以上の詳細情報はありません。 |
MALFORMED_APK |
入力アプリ APK を解析できませんでした。 |
MALFORMED_TEST_APK |
入力テスト APK を解析できませんでした。 |
NO_MANIFEST |
AndroidManifest.xml が見つかりませんでした。 |
NO_PACKAGE_NAME |
APK マニフェストはパッケージ名を宣言しません。 |
INVALID_PACKAGE_NAME |
APK アプリ ID(パッケージ名)が無効です。https://developer.android.com/studio/build/application-id もご覧ください。 |
TEST_SAME_AS_APP |
テスト パッケージとアプリ パッケージは同じです。 |
NO_INSTRUMENTATION |
テスト APK はインストゥルメンテーションを宣言しません。 |
NO_SIGNATURE |
入力アプリ APK には署名がありません。 |
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE |
ユーザーまたはテスト APK のマニフェスト ファイルが指定するテスト実行クラスは、Android Test Orchestrator と互換性がありません。Orchestrator は、AndroidJUnitRunner バージョン 1.1 以降にのみ互換性があります。DO_NOT_USE_ORCHESTRATOR OrchestratorOption を使用して Orchestrator を無効にできます。 |
NO_TEST_RUNNER_CLASS |
テスト APK に、ユーザーまたはマニフェスト ファイルで指定されたテストランナー クラスが含まれていません。考えられる理由は次のとおりです。
|
NO_LAUNCHER_ACTIVITY |
メイン ランチャー アクティビティが見つかりませんでした。 |
FORBIDDEN_PERMISSIONS |
アプリが 1 つ以上の許可されていない権限を宣言しています。 |
INVALID_ROBO_DIRECTIVES |
指定された roboDirectives に競合があります。 |
INVALID_RESOURCE_NAME |
指定された robo ディレクティブに無効なリソース名が 1 つ以上あります |
INVALID_DIRECTIVE_ACTION |
ロボット ディレクティブのアクションの定義が無効である(例: クリック アクションまたは無視アクションに入力テキスト フィールドが含まれている) |
TEST_LOOP_INTENT_FILTER_NOT_FOUND |
テストループのインテント フィルタがないか、指定されたフィルタの形式が正しくありません。 |
SCENARIO_LABEL_NOT_DECLARED |
マニフェストで宣言されていないシナリオラベルがリクエストに含まれています。 |
SCENARIO_LABEL_MALFORMED |
ラベルの値を解析する際にエラーが発生しました。 |
SCENARIO_NOT_DECLARED |
マニフェストで宣言されていないシナリオ番号がリクエストに含まれています。 |
DEVICE_ADMIN_RECEIVER |
デバイス管理者アプリケーションは許可されません。 |
MALFORMED_XC_TEST_ZIP |
圧縮された XCTest の形式が正しくありませんでした。1 つの .xctestrun ファイルと DerivedData/Build/Products ディレクトリの内容が zip に含まれていませんでした。 |
BUILT_FOR_IOS_SIMULATOR |
圧縮された XCTest は、実際のデバイスではなく iOS シミュレータ用に作成されたものです。 |
NO_TESTS_IN_XC_TEST_ZIP |
.xctestrun ファイルでテスト ターゲットが指定されていません。 |
USE_DESTINATION_ARTIFACTS |
.xctestrun ファイルで定義されている 1 つ以上のテスト ターゲットで、許可されていない「UseDestinationArtifacts」が指定されています。 |
TEST_NOT_APP_HOSTED |
物理デバイス上で動作する XC テストでは、xctestrun ファイルに "IsAppHostedTestBundle" == "true" が設定されている必要があります。 |
PLIST_CANNOT_BE_PARSED |
XCTest zip 内の Info.plist ファイルを解析できませんでした。 |
TEST_ONLY_APK |
APK は "testOnly" とマークされています。非推奨のため、現在は使用されていません。 |
MALFORMED_IPA |
入力 IPA を解析できませんでした。 |
MISSING_URL_SCHEME |
アプリにゲームループ URL スキームが登録されていない。 |
MALFORMED_APP_BUNDLE |
iOS アプリケーション バンドル(.app)を処理できませんでした。 |
NO_CODE_APK |
APK にはコードは含まれていません。https://developer.android.com/guide/topics/manifest/application-element.html#code もご覧ください |
INVALID_INPUT_APK |
指定された入力 APK パスの形式が正しくないか、APK ファイルが存在しないか、ユーザーに APK ファイルへのアクセス権がありません。 |
INVALID_APK_PREVIEW_SDK |
APK は、サポートされていないプレビュー SDK 用に作成されています。 |
MATRIX_TOO_LARGE |
マトリックスが展開され、実行の数が多すぎます。 |
TEST_QUOTA_EXCEEDED |
このマトリックスの実行を実行するための十分なテスト割り当てがありません。 |
SERVICE_NOT_ACTIVATED |
必要なクラウド サービス API が有効になっていません。https://firebase.google.com/docs/test-lab/android/continuous#requirements をご覧ください。 |
UNKNOWN_PERMISSION_ERROR |
このテストの実行中に、権限に関する不明な問題が発生しました。 |
MatrixErrorDetail
マトリックスに関する単一のエラーまたは問題を表します。
JSON 表現 |
---|
{ "reason": string, "message": string } |
フィールド | |
---|---|
reason |
出力専用。エラーの理由。これは、エラーの原因を識別する UPPER_SNAKE_CASE の定数値です。 |
message |
出力専用。TestMatrix のエラーに関する、人が読める形式のメッセージ。 |
結果の概要
完了したテスト マトリックスの結果の概要。
列挙型 | |
---|---|
OUTCOME_SUMMARY_UNSPECIFIED |
使用しないでください。proto バージョニング専用です。 |
SUCCESS |
テスト マトリックスの実行が成功しました。次に例を示します。
|
FAILURE |
実行が失敗しました。例:
|
INCONCLUSIVE |
予期しないエラーが発生しました。それでも実行は失敗とみなされますが、これは一時的な問題である可能性が高く、テストの再実行は成功する可能性があります。 |
SKIPPED |
すべてのテストがスキップされました。次に例を示します。
|
メソッド |
|
---|---|
|
テスト マトリックス内の未完了のテスト実行をキャンセルします。 |
|
指定された仕様に従ってテストのマトリックスを作成して実行します。 |
|
テスト マトリックスのステータスと作成済みの実行を確認します。 |