REST Resource: projects.testMatrices

Kaynak: TestMatrix

TestMatrix bir testle ilgili tüm ayrıntıları yakalar. Ortam yapılandırmasını, test özelliklerini, test yürütmelerini ve genel durumu ve sonucu içerir.

JSON gösterimi
{
  "testMatrixId": string,
  "projectId": string,
  "clientInfo": {
    object (ClientInfo)
  },
  "testSpecification": {
    object (TestSpecification)
  },
  "environmentMatrix": {
    object (EnvironmentMatrix)
  },
  "testExecutions": [
    {
      object (TestExecution)
    }
  ],
  "resultStorage": {
    object (ResultStorage)
  },
  "state": enum (TestState),
  "timestamp": string,
  "invalidMatrixDetails": enum (InvalidMatrixDetails),
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
Alanlar
testMatrixId

string

Yalnızca çıktı. Hizmet tarafından belirlenen benzersiz kimlik.

projectId

string

Test matrisinin sahibi olan bulut projesi.

clientInfo

object ( ClientInfo )

Testi başlatan istemci hakkında bilgi.

testSpecification

object ( TestSpecification )

Gerekli. Test nasıl çalıştırılır.

environmentMatrix

object ( EnvironmentMatrix )

Gerekli. Testlerin yürütüldüğü cihazlar.

testExecutions[]

object ( TestExecution )

Yalnızca çıktı. Hizmetin bu matris için oluşturduğu test yürütmelerinin listesi.

resultStorage

object ( ResultStorage )

Gerekli. Matris sonuçlarının yazıldığı yer.

state

enum ( TestState )

Yalnızca çıktı. Test matrisinin mevcut ilerlemesini gösterir.

timestamp

string ( Timestamp format)

Yalnızca çıktı. Bu test matrisinin ilk oluşturulduğu zaman.

RFC3339 UTC "Zulu" biçiminde, nanosaniye çözünürlüğe ve en fazla dokuz kesirli basamağa sahip bir zaman damgası. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Yalnızca çıktı. Matrisin neden geçersiz kabul edildiğini açıklar. Yalnızca GEÇERSİZ durumundaki matrisler için kullanışlıdır.

flakyTestAttempts

integer

Bir veya daha fazla test senaryosunun herhangi bir nedenden dolayı başarısız olması durumunda TestExecution'ın yeniden denenmesi gereken sefer sayısı. İzin verilen maksimum tekrar sayısı 10'dur.

Varsayılan 0'dır; bu, yeniden çalıştırmanın olmadığı anlamına gelir.

outcomeSummary

enum ( OutcomeSummary )

Yalnızca Çıkış. Testin genel sonucu. Yalnızca test matrisi durumu BİTTİ olduğunda ayarlayın.

failFast

boolean

Doğruysa, matristeki her yürütmeyi/parçayı çalıştırmak için en fazla yalnızca tek bir girişimde bulunulacaktır. Kesintili test denemeleri etkilenmez.

Normalde potansiyel bir altyapı sorunu tespit edilirse 2 veya daha fazla deneme yapılır.

Bu özellik gecikmeye duyarlı iş yükleri içindir. Başarısız matrisler için yürütme başarısızlıklarının görülme sıklığı önemli ölçüde daha yüksek olabilir ve bu beklenti nedeniyle destek daha sınırlıdır.

Müşteri Bilgileri

Testi başlatan istemci hakkında bilgi.

JSON gösterimi
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Alanlar
name

string

Gerekli. gcloud gibi istemci adı.

clientInfoDetails[]

object ( ClientInfoDetail )

Müşteri hakkında ayrıntılı bilgilerin listesi.

MüşteriBilgisiDetay

Testi başlatan istemciyle ilgili ayrıntılı bilgilerin anahtar/değer çifti. Örnekler: {'Sürüm', '1.0'}, {'Sürüm Parçası', 'BETA'}.

JSON gösterimi
{
  "key": string,
  "value": string
}
Alanlar
key

string

Gerekli. Ayrıntılı müşteri bilgilerinin anahtarı.

value

string

Gerekli. Ayrıntılı müşteri bilgilerinin değeri.

Test Şartnamesi

Testin nasıl çalıştırılacağına dair bir açıklama.

JSON gösterimi
{
  "testTimeout": string,
  "disableVideoRecording": boolean,
  "disablePerformanceMetrics": boolean,

  // Union field setup can be only one of the following:
  "testSetup": {
    object (TestSetup)
  },
  "iosTestSetup": {
    object (IosTestSetup)
  }
  // End of list of possible types for union field setup.

  // Union field test can be only one of the following:
  "androidInstrumentationTest": {
    object (AndroidInstrumentationTest)
  },
  "androidRoboTest": {
    object (AndroidRoboTest)
  },
  "androidTestLoop": {
    object (AndroidTestLoop)
  },
  "iosXcTest": {
    object (IosXcTest)
  },
  "iosTestLoop": {
    object (IosTestLoop)
  }
  // End of list of possible types for union field test.
}
Alanlar
testTimeout

string ( Duration format)

Otomatik olarak iptal edilmeden önce bir test yürütmesinin çalıştırılmasına izin verilen maksimum süre. Varsayılan değer 5 dakikadır.

' s ' ile biten, en fazla dokuz kesirli basamaktan oluşan, saniye cinsinden süre. Örnek: "3.5s" .

disableVideoRecording

boolean

Video kaydını devre dışı bırakır. Test gecikmesini azaltabilir.

disablePerformanceMetrics

boolean

Performans ölçümleri kaydını devre dışı bırakır. Test gecikmesini azaltabilir.

Birlik alanı setup . Test kurulumu gereksinimleri. setup aşağıdakilerden yalnızca biri olabilir:
testSetup

object ( TestSetup )

Android için kurulum gereksinimlerini test edin; örneğin yüklenecek dosyalar, önyükleme komut dosyaları.

iosTestSetup

object ( IosTestSetup )

iOS için kurulum gereksinimlerini test edin.

Birlik saha test . Gerekli. Çalıştırılacak test türü. test aşağıdakilerden yalnızca biri olabilir:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Bir Android enstrümantasyon testi.

androidRoboTest

object ( AndroidRoboTest )

Bir Android robot testi.

androidTestLoop

object ( AndroidTestLoop )

Test Döngüsü olan bir Android Uygulaması.

iosXcTest

object ( IosXcTest )

Bir .xctestrun dosyası aracılığıyla bir iOS XCTest.

iosTestLoop

object ( IosTestLoop )

Test döngüsüne sahip bir iOS uygulaması.

Test kurulumu

Testi çalıştırmadan önce Android cihazının nasıl kurulacağına ilişkin açıklama.

JSON gösterimi
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Alanlar
filesToPush[]

object ( DeviceFile )

Teste başlamadan önce cihaza gönderilecek dosyaların listesi.

directoriesToPull[]

string

Test sonunda GCS'ye yüklenecek cihazdaki dizinlerin listesi; /sdcard, /storage veya /data/local/tmp altında mutlak yollar olmalıdırlar. Yol adları az AZ 0-9 _ - karakterleriyle sınırlıdır. + ve /

Not: /sdcard ve /data yolları kullanıma sunulacak ve örtülü yol ikameleri olarak değerlendirilecektir. Örneğin, belirli bir cihazdaki /sdcard harici depolamayla eşleşmiyorsa sistem, onu o cihazın harici depolama yolu önekiyle değiştirecektir.

additionalApks[]

object ( Apk )

Doğrudan test edilenlere ek olarak yüklenecek APK'lar. Şu anda 100 ile sınırlı.

account

object ( Account )

Cihaz, test süresince bu hesapta oturum açacaktır.

networkProfile

string

Testi çalıştırmak için kullanılan ağ trafiği profili. Kullanılabilir ağ profilleri, TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog çağrılırken NETWORK_CONFIGURATION ortam türü kullanılarak sorgulanabilir.

environmentVariables[]

object ( EnvironmentVariable )

Test için ayarlanacak ortam değişkenleri (yalnızca enstrümantasyon testleri için geçerlidir).

systrace
(deprecated)

object ( SystraceSetup )

Çalıştırma için Systrace yapılandırması. Kullanımdan kaldırıldı: Systrace, 01.01.2020 tarihinde kullanımdan kaldırılan Python 2'yi kullandı. Systrace artık Cloud Testing API'de desteklenmiyor ve sonuçlarda herhangi bir Systrace dosyası sağlanmayacak.

dontAutograntPermissions

boolean

Uygulama yüklenirken tüm çalışma zamanı izinlerinin verilmesinin engellenip engellenmeyeceği

CihazDosyası

Tek bir cihaz dosyası açıklaması.

JSON gösterimi
{

  // Union field device_file can be only one of the following:
  "obbFile": {
    object (ObbFile)
  },
  "regularFile": {
    object (RegularFile)
  }
  // End of list of possible types for union field device_file.
}
Alanlar
Birleşim alanı device_file . Gerekli. device_file aşağıdakilerden yalnızca biri olabilir:
obbFile

object ( ObbFile )

Opak bir ikili blob dosyasına başvuru.

regularFile

object ( RegularFile )

Normal bir dosyaya referans.

Obb Dosyası

Test başlamadan önce cihaza yüklenecek opak bir ikili blob dosyası.

JSON gösterimi
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Alanlar
obbFileName

string

Gerekli. Android tarafından belirtilen formata uyması gereken OBB dosya adı; örneğin [main|patch].0300110.com.example.android.obb, <shared-storage>/Android/obb/<package-name>/ içine yüklenecek. cihazda.

obb

object ( FileReference )

Gerekli. Cihaza kurulacak Opak İkili Blob (OBB) dosyası/dosyaları.

Dosya referansı

Kullanıcı girişleri için kullanılan bir dosyaya referans.

JSON gösterimi
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Alanlar
Birlik alan file . Gerekli. Dosya referansı. file aşağıdakilerden yalnızca biri olabilir:
gcsPath

string

Google Bulut Depolama'daki bir dosyanın yolu. Örnek: gs://build-app-1414623860166/app%40debug-unaligned.apk Bu yolların url kodlu olması bekleniyor (yüzde kodlama)

NormalDosya

Test başlamadan önce cihaza yüklenecek bir dosya veya dizin.

JSON gösterimi
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Alanlar
content

object ( FileReference )

Gerekli. Kaynak dosya.

devicePath

string

Gerekli. İçeriğin cihazda nereye yerleştirileceği. Mutlak, izin verilenler listesine eklenen bir yol olmalıdır. Dosya mevcutsa değiştirilecektir. Aşağıdaki cihaz tarafı dizinleri ve bunların alt dizinlerinden herhangi biri izin verilenler listesine eklenmiştir:

${EXTERNAL_STORAGE}, /sdcard veya /storage

${ANDROID_DATA}/local/tmp veya /data/local/tmp

Bu dizin ağaçlarının dışında bir yol belirtmek geçersizdir.

/sdcard ve /data yolları kullanıma sunulacak ve örtülü yol değişiklikleri olarak değerlendirilecektir. Örneğin, belirli bir cihazdaki /sdcard harici depolama birimiyle eşleşmiyorsa, sistem bunu o cihazın harici depolama yolu önekiyle değiştirecek ve dosyayı oraya kopyalayacaktır.

Cihazdaki dosyalara taşınabilir bir şekilde erişmek için uygulamada ve test kodunda Ortam API'sinin kullanılması önemle tavsiye edilir.

apk

Yüklenecek bir Android paket dosyası.

JSON gösterimi
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Alanlar
location

object ( FileReference )

Test başlamadan önce cihaza yüklenecek APK'nın yolu.

packageName

string

Yüklenecek APK için Java paketi. Değer, uygulamanın bildirimi incelenerek belirlenir.

Hesap

Bir hesabı ve hesaba nasıl giriş yapılacağını tanımlar.

JSON gösterimi
{

  // Union field account_type can be only one of the following:
  "googleAuto": {
    object (GoogleAuto)
  }
  // End of list of possible types for union field account_type.
}
Alanlar
Birleşim alanı account_type . Gerekli. Ne işe yaradığına (ör. Google) ve oturum açma mekanizmasına (ör. kullanıcı adı ve şifre) bağlı olarak hesap türü. account_type aşağıdakilerden yalnızca biri olabilir:
googleAuto

object ( GoogleAuto )

Otomatik bir Google giriş hesabı.

GoogleOtomatik

Otomatik Google hesabı girişini etkinleştirir. Ayarlanırsa hizmet, testi yürütmeden önce otomatik olarak bir Google test hesabı oluşturur ve bunu cihaza ekler. Test hesaplarının yeniden kullanılabileceğini unutmayın. Birçok uygulama, cihazda bir hesap mevcut olduğunda tüm işlevlerini gösterir. Oluşturulan bu hesaplarla cihazda oturum açmak, daha fazla işlevin test edilmesine olanak tanır.

Çevre değişkeni

Teste ortam değişkeni olarak geçirilen bir anahtar/değer çifti.

JSON gösterimi
{
  "key": string,
  "value": string
}
Alanlar
key

string

Ortam değişkeninin anahtarı.

value

string

Ortam değişkeninin değeri.

Systrace Kurulumu

JSON gösterimi
{
  "durationSeconds": integer
}
Alanlar
durationSeconds
(deprecated)

integer

Saniye cinsinden sistem süresi. 1 ila 30 saniye arasında olmalıdır. 0 systrace'i devre dışı bırakır.

IosTestSetup

Testi çalıştırmadan önce bir iOS cihazının nasıl kurulacağına ilişkin açıklama.

JSON gösterimi
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Alanlar
networkProfile

string

Testi çalıştırmak için kullanılan ağ trafiği profili. Kullanılabilir ağ profilleri, TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog çağrılırken NETWORK_CONFIGURATION ortam türü kullanılarak sorgulanabilir.

additionalIpas[]

object ( FileReference )

Doğrudan test edilenlere ek olarak yüklenecek iOS uygulamaları.

pushFiles[]

object ( IosDeviceFile )

Teste başlamadan önce cihaza gönderilecek dosyaların listesi.

pullDirectories[]

object ( IosDeviceFile )

Testin sonunda Cloud Storage'a yüklenecek cihazdaki dizinlerin listesi.

Dizinler ya paylaşılan bir dizinde (/private/var/mobile/Media gibi) ya da paket kimliği belirtilerek uygulamanın dosya sistemi içindeki erişilebilir bir dizinde (/Documents gibi) olmalıdır.

IosCihazDosyası

Test başlamadan önce cihaza yüklenecek bir dosya veya dizin.

JSON gösterimi
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Alanlar
content

object ( FileReference )

Kaynak dosyası

bundleId

string

Bu dosyanın bulunduğu uygulamanın paket kimliği.

iOS uygulamaları kendi dosya sistemlerini korumalı hale getirir, bu nedenle uygulama dosyalarının cihazda hangi uygulamanın yüklü olduğunu belirtmesi gerekir.

devicePath

string

Dosyanın cihazdaki, uygulamanın korumalı alan dosya sistemi içindeki konumu

AndroidEnstrümantasyonTest

Bir Android bileşenini normal yaşam döngüsünden bağımsız olarak kontrol edebilen bir Android uygulamasının testi. Android enstrümantasyon testleri, bir uygulama APK'sını çalıştırır ve APK'yı aynı süreçte sanal veya fiziksel bir AndroidCihazda test eder. Ayrıca, com.google.GoogleTestRunner gibi, seçilen spesifik enstrümantasyon çerçevesine göre değişiklik gösterebilecek bir test çalıştırıcısı sınıfını da belirtirler.

Android testi türleri hakkında daha fazla bilgi için https://developer.android.com/training/testing/fundamentals adresine bakın.

JSON gösterimi
{
  "testApk": {
    object (FileReference)
  },
  "appPackageId": string,
  "testPackageId": string,
  "testRunnerClass": string,
  "testTargets": [
    string
  ],
  "orchestratorOption": enum (OrchestratorOption),
  "shardingOption": {
    object (ShardingOption)
  },

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Alanlar
testApk

object ( FileReference )

Gerekli. Yürütülecek test kodunu içeren APK.

appPackageId

string

Test edilen uygulama için Java paketi. Varsayılan değer, uygulamanın bildirimi incelenerek belirlenir.

testPackageId

string

Testin yürütülmesi için Java paketi. Varsayılan değer, uygulamanın bildirimi incelenerek belirlenir.

testRunnerClass

string

InstrumentationTestRunner sınıfı. Varsayılan değer, uygulamanın bildirimi incelenerek belirlenir.

testTargets[]

string

Her hedefin, aşağıdaki formatlardan birinde paket adı veya sınıf adı ile tam olarak nitelenmesi gerekir:

  • "paket paketAdı"
  • "sınıf paketiAdı.sınıf_adı"
  • "sınıf paketiAdı.sınıf_adı#yöntem_adı"

Boşsa modüldeki tüm hedefler çalıştırılacaktır.

orchestratorOption

enum ( OrchestratorOption )

Her testin Android Test Orchestrator ile kendi enstrümantasyon çağrısı dahilinde çalıştırılıp çalıştırılmaması seçeneği. ** Orchestrator yalnızca AndroidJUnitRunner sürüm 1.1 veya üzeri ile uyumludur! ** Orchestrator aşağıdaki avantajları sunar:

  • Paylaşılan durum yok
  • Kazalar izole edildi
  • Günlüklerin kapsamı test başına belirlenir

Android Test Orchestrator hakkında daha fazla bilgi için https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator adresine bakın.

Ayarlanmazsa test orkestratör olmadan yürütülür.

shardingOption

object ( ShardingOption )

Testleri birden çok parçada paralel olarak çalıştırma seçeneği.

Birleşim alanı app_under_test . Gerekli. app_under_test aşağıdakilerden yalnızca biri olabilir:
appApk

object ( FileReference )

Test edilen uygulamanın APK'sı.

appBundle

object ( AppBundle )

Test edilen uygulama için çoklu apk uygulama paketi.

Uygulama Paketi

Bir BundleConfig.pb dosyası, bir temel modül dizini, sıfır veya daha fazla dinamik özellik modülü dizini içeren bir Android App Bundle dosya biçimi.

Uygulama Paketleri oluşturmaya ilişkin rehberlik için https://developer.android.com/guide/app-bundle/build adresine bakın.

JSON gösterimi
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Alanlar
Birlik alan bundle . Gerekli. Konum bilgilerini paketleyin. bundle aşağıdakilerden yalnızca biri olabilir:
bundleLocation

object ( FileReference )

Test edilen uygulama paketini temsil eden .aab dosyası.

Orkestratör Seçeneği

Testin nasıl yürütüleceğini belirtir.

Numaralandırmalar
ORCHESTRATOR_OPTION_UNSPECIFIED Varsayılan değer: sunucu modu seçecektir. Şu anda testin orkestratör olmadan çalışacağı anlamına gelir. Gelecekte tüm enstrümantasyon testleri orkestratörle birlikte yürütülecek. Orchestrator'ın kullanılması, sunduğu tüm faydalardan dolayı oldukça tavsiye edilir.
USE_ORCHESTRATOR Orchestrator'ı kullanarak testi çalıştırın. ** Yalnızca AndroidJUnitRunner sürüm 1.1 veya üzeri ile uyumludur! ** Tavsiye edilen.
DO_NOT_USE_ORCHESTRATOR Testi orkestratör kullanmadan çalıştırın.

Parçalama Seçeneği

Parçalamayı etkinleştirme seçenekleri.

JSON gösterimi
{

  // Union field option can be only one of the following:
  "uniformSharding": {
    object (UniformSharding)
  },
  "manualSharding": {
    object (ManualSharding)
  },
  "smartSharding": {
    object (SmartSharding)
  }
  // End of list of possible types for union field option.
}
Alanlar

Birleşim alanı option .

option aşağıdakilerden yalnızca biri olabilir:

uniformSharding

object ( UniformSharding )

Toplam parça sayısı verilen test senaryoları eşit şekilde parçalanır.

manualSharding

object ( ManualSharding )

Test senaryolarını belirtilen paket, sınıf ve/veya yöntem gruplarına ayırır.

smartSharding

object ( SmartSharding )

Parça testi, önceki test senaryosu zamanlama kayıtlarına dayanmaktadır.

ÜniformaParlatma

Toplam parça sayısı verilen test senaryoları eşit şekilde parçalanır.

Enstrümantasyon testleri için "-e numShard" ve "-e shardIndex" AndroidJUnitRunner argümanlarına çevrilecektir. Tekdüzen parçalama etkinleştirildiğinde, bu parçalama bağımsız değişkenlerinden herhangi birinin environmentVariables aracılığıyla belirtilmesi geçersizdir.

AndroidJUnitRunner'ın kullandığı parçalama mekanizmasına bağlı olarak, test senaryolarının tüm parçalar arasında eşit şekilde dağıtılacağına dair bir garanti yoktur.

JSON gösterimi
{
  "numShards": integer
}
Alanlar
numShards

integer

Gerekli. Oluşturulacak toplam parça sayısı. Bu her zaman toplam test senaryosu sayısından fazla olmayan pozitif bir sayı olmalıdır. Bir veya daha fazla fiziksel cihaz seçtiğinizde shard sayısı <= 50 olmalıdır. Bir veya daha fazla ARM sanal cihaz seçtiğinizde <= 200 olmalıdır. Yalnızca x86 sanal cihaz seçtiğinizde <= 500 olmalıdır. .

Manuel Parçalama

Test senaryolarını belirtilen paket, sınıf ve/veya yöntem gruplarına ayırır.

Manuel parçalama etkinken, test hedeflerinin EnvironmentVariables veya InstrumentationTest aracılığıyla belirtilmesi geçersizdir.

JSON gösterimi
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Alanlar
testTargetsForShard[]

object ( TestTargetsForShard )

Gerekli. Manuel olarak oluşturulan her parça için çalıştırılacak paketler, sınıflar ve/veya test yöntemleri grubu. Bu alan mevcutsa en az bir parça belirtmelisiniz. Bir veya daha fazla fiziksel cihaz seçtiğinizde tekrarlanan testTargetsForShard sayısı <= 50 olmalıdır. Bir veya daha fazla ARM sanal cihazı seçtiğinizde <= 200 olmalıdır. Yalnızca x86 sanal cihaz seçtiğinizde <= olmalıdır. 500.

Parça İçin Test Hedefleri

Bir parça için hedefleri test edin.

JSON gösterimi
{
  "testTargets": [
    string
  ]
}
Alanlar
testTargets[]

string

Her parça için çalıştırılacak paket, sınıf ve/veya test yöntemleri grubu. Hedeflerin AndroidJUnitRunner bağımsız değişken biçiminde belirtilmesi gerekir. Örneğin, "paket com.my.packages" "class com.my.package.MyClass".

TestTarget'ların sayısı 0'dan büyük olmalıdır.

SmartSharding

Parça testi, önceki test senaryosu zamanlama kayıtlarına dayanmaktadır.

JSON gösterimi
{
  "targetedShardDuration": string
}
Alanlar
targetedShardDuration

string ( Duration format)

Bir parça içindeki testlerin alması gereken süre.

Varsayılan: 300 saniye (5 dakika). İzin verilen minimum süre: 120 saniye (2 dakika).

Parça sayısı, maksimum parça sınırına kadar (aşağıda açıklanmıştır) zamana bağlı olarak dinamik olarak ayarlanır. Her parça için en az bir test senaryosunu garanti etmek amacıyla parça sayısı, test senaryolarının sayısını geçmeyecektir. Aşağıdaki durumlarda parça süresi aşılacaktır:

  • Maksimum parça sınırına ulaşıldı ve parçalara dağıtmak için daha fazla hesaplanmış test süresi kaldı.
  • Herhangi bir testin hedeflenen parça süresinden daha uzun olacağı tahmin edilmektedir.

Akıllı parçalama test senaryosu geçmişini ve doğru olmayabilecek varsayılan süreleri kullandığından parça süresi garanti edilmez. Test senaryosu zamanlama kayıtlarını bulma kuralları şunlardır:

  • Hizmet son 30 gün içinde bir test senaryosunu işlediyse en son başarılı test senaryosunun kaydı kullanılacaktır.
  • Yeni test senaryoları için bilinen diğer test senaryolarının ortalama süresi kullanılacaktır.
  • Daha önceki test senaryosu zamanlama kayıtları yoksa varsayılan test senaryosu süresi 15 saniyedir.

Gerçek parça süresi hedeflenen parça süresini aşabileceğinden, hedeflenen değeri izin verilen maksimum test zaman aşımından en az 5 dakika daha azına (fiziksel cihazlar için 45 dakika ve sanal cihazlar için 60 dakika) ayarlamanızı veya özel Ayarladığınız test zaman aşımı değerini kullanın. Bu yaklaşım, tüm testler bitmeden parçanın iptal edilmesini önler.

Maksimum parça sayısı için bir sınır olduğunu unutmayın. Bir veya daha fazla fiziksel cihaz seçtiğinizde shard sayısı <= 50 olmalıdır. Bir veya daha fazla ARM sanal cihaz seçtiğinizde <= 200 olmalıdır. Yalnızca x86 sanal cihaz seçtiğinizde <= 500 olmalıdır. Parça başına en az bir test senaryosunu garanti etmek için parça sayısı, test senaryolarının sayısını aşmayacaktır. Oluşturulan her parça günlük test kotasına dahil edilir.

' s ' ile biten, en fazla dokuz kesirli basamaktan oluşan, saniye cinsinden süre. Örnek: "3.5s" .

AndroidRoboTest

Uygulamayı sanal veya fiziksel bir Android Cihazda araştıran, suçluları ve çökmeleri bulan bir android uygulaması testi.

JSON gösterimi
{
  "appPackageId": string,
  "appInitialActivity": string,
  "maxDepth": integer,
  "maxSteps": integer,
  "roboDirectives": [
    {
      object (RoboDirective)
    }
  ],
  "roboMode": enum (RoboMode),
  "roboScript": {
    object (FileReference)
  },
  "startingIntents": [
    {
      object (RoboStartingIntent)
    }
  ],

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Alanlar
appPackageId

string

Test edilen uygulama için Java paketi. Varsayılan değer, uygulamanın bildirimi incelenerek belirlenir.

appInitialActivity

string

Uygulamayı başlatmak için kullanılması gereken ilk etkinlik.

maxDepth
(deprecated)

integer

Robo'nun keşfedebileceği çapraz yığının maksimum derinliği. Robo'nun uygulamayı ilk aktivitenin ötesinde keşfetmesini sağlamak için en az 2 olması gerekiyor. Varsayılan 50'dir.

maxSteps
(deprecated)

integer

Robo'nun yürütebileceği maksimum adım sayısı. Varsayılan sınır değildir.

roboDirectives[]

object ( RoboDirective )

Tarama sırasında Robo'nun uygulaması gereken bir dizi yönerge. Bu, kullanıcıların taramayı özelleştirmesine olanak tanır. Örneğin bir test hesabının kullanıcı adı ve şifresi sağlanabilir.

roboMode

enum ( RoboMode )

Robo'nun çalışması gereken mod. Çoğu istemci, sunucunun bu alanı otomatik olarak doldurmasına izin vermelidir.

roboScript

object ( FileReference )

Robo'nun tarama için bir önsöz olarak gerçekleştirmesi gereken bir dizi eylemi içeren bir JSON dosyası.

startingIntents[]

object ( RoboStartingIntent )

Uygulamayı tarama için başlatmak için kullanılan amaçlar. Hiçbiri sağlanmazsa ana başlatıcı etkinliği başlatılır. Bazıları sağlanırsa yalnızca sağlananlar başlatılır (ana başlatıcı etkinliği açıkça sağlanmalıdır).

Birleşim alanı app_under_test . Gerekli. app_under_test aşağıdakilerden yalnızca biri olabilir:
appApk

object ( FileReference )

Test edilen uygulamanın APK'sı.

appBundle

object ( AppBundle )

Test edilen uygulama için çoklu apk uygulama paketi.

Robo Direktifi

Tarama sırasında karşılaşılması durumunda Robo'yu belirli bir kullanıcı arayüzü öğesiyle etkileşime girmeye yönlendirir. Şu anda Robo, metin girişi veya öğe tıklaması gerçekleştirebiliyor.

JSON gösterimi
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Alanlar
resourceName

string

Gerekli. Hedef kullanıcı arayüzü öğesinin Android kaynak adı. Örneğin, Java'da: R.string.foo xml'de: @string/foo Yalnızca "foo" kısmı gereklidir. Referans belgesi: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Robo'nun ayarlamaya yönlendirildiği metin. Boş bırakılırsa yönerge, kaynakAdı ile eşleşen öğeye yapılan bir CLICK olarak değerlendirilecektir.

actionType

enum ( RoboActionType )

Gerekli. Robo'nun belirtilen öğe üzerinde gerçekleştirmesi gereken eylem türü.

RoboActionType

Robo'nun kullanıcı arayüzü öğelerinde gerçekleştirebileceği eylemler.

Numaralandırmalar
ACTION_TYPE_UNSPECIFIED KULLANMAYIN. Yalnızca proto sürüm oluşturma için.
SINGLE_CLICK Belirtilen öğeye tıklamak için Robo'yu yönlendirin. Belirtilen öğe tıklanabilir değilse işlem yapılmaz.
ENTER_TEXT Belirtilen öğeye metin girmek için Robo'yu yönlendirin. Belirtilen öğe etkin değilse veya metin girişine izin vermiyorsa işlem yapılmaz.
IGNORE Robo'yu belirli bir öğeyle olan etkileşimleri yok saymaya yönlendirin.

Robo Modu

Robo'nun çalışması gereken mod.

Numaralandırmalar
ROBO_MODE_UNSPECIFIED Bu, sunucunun modu seçmesi gerektiği anlamına gelir. Tavsiye edilen.
ROBO_VERSION_1 Robo'yu uygulamadan ayrılmadan yalnızca UIAutomator modunda çalıştırır
ROBO_VERSION_2 Robo'yu standart Espresso'da UIAutomator geri dönüşüyle ​​çalıştırır

RoboStartingIntent

Taranacak başlangıç ​​etkinliklerini belirtmeye yönelik mesaj.

JSON gösterimi
{
  "timeout": string,

  // Union field starting_intent can be only one of the following:
  "launcherActivity": {
    object (LauncherActivityIntent)
  },
  "startActivity": {
    object (StartActivityIntent)
  }
  // End of list of possible types for union field starting_intent.
}
Alanlar
timeout

string ( Duration format)

Her amaç için saniye cinsinden zaman aşımı.

' s ' ile biten, en fazla dokuz kesirli basamaktan oluşan, saniye cinsinden süre. Örnek: "3.5s" .

Birleşim alanı starting_intent . Gerekli. Bir aktiviteyi başlatmak için niyet ayrıntıları. starting_intent aşağıdakilerden yalnızca biri olabilir:
launcherActivity

object ( LauncherActivityIntent )

Ana başlatıcı etkinliğini başlatan bir amaç.

startActivity

object ( StartActivityIntent )

Bir etkinliği belirli ayrıntılarla başlatan niyet.

BaşlatıcıActivityIntent

Ana başlatıcı etkinliğini başlatan amacı belirtir.

StartActivityIntent

Bir eylem, uri ve kategorilerle belirtilen başlangıç ​​amacı.

JSON gösterimi
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Alanlar
action

string

Eylem adı. START_ACTIVITY için gerekli.

uri

string

Eylemin URI'si.

categories[]

string

Niyet üzerinde ayarlanacak niyet kategorileri.

AndroidTestLoop

Bir Android Uygulamasının Test Döngüsüyle testi. Oyunlar, şimdilik bu API'nin tek kullanıcısı olduğundan, <intent-name> amacı dolaylı olarak eklenecektir.

JSON gösterimi
{
  "appPackageId": string,
  "scenarios": [
    integer
  ],
  "scenarioLabels": [
    string
  ],

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Alanlar
appPackageId

string

Test edilen uygulama için Java paketi. Varsayılan, uygulamanın bildirimi incelenerek belirlenir.

scenarios[]

integer

Test sırasında çalıştırılması gereken senaryoların listesi. Varsayılan, uygulamanın bildiriminden türetilen tüm test döngüleridir.

scenarioLabels[]

string

Test sırasında çalıştırılması gereken senaryo etiketlerinin listesi. Senaryo etiketleri, uygulamanın bildiriminde tanımlanan etiketlerle eşleşmelidir. Örneğin, player_experience ve com.google.test.loops.player_experience, manifestte com.google.test.loops.player_experience adıyla etiketlenen tüm döngüleri yürütmeye ekler. Senaryolar alanında senaryolar da belirtilebilir.

Birleşim alanı app_under_test . Gerekli. Test edilecek Android paketi. app_under_test aşağıdakilerden yalnızca biri olabilir:
appApk

object ( FileReference )

Test edilen uygulamanın APK'sı.

appBundle

object ( AppBundle )

Test edilen uygulama için çoklu apk uygulama paketi.

IosXcTest

XCTest çerçevesini kullanan bir iOS uygulamasının testi. Xcode, bir test belirtimi (argümanlar, test yöntemleri vb.) içeren bir .xctestrun dosyası oluşturan "test için derleme" seçeneğini destekler. Bu test türü, .xctestrun dosyasını ve testleri çalıştırmak için gereken tüm ikili dosyaları içeren Build/Products dizininin ilgili içeriğini içeren bir zip dosyasını kabul eder.

JSON gösterimi
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Alanlar
testsZip

object ( FileReference )

Gerekli. .xctestrun dosyasını ve DerivedData/Build/Products dizininin içeriğini içeren .zip. Xctestrun alanı belirtilirse bu zip'teki .xctestrun dosyası yoksayılır.

xctestrun

object ( FileReference )

Test zip dosyasındaki .xctestrun dosyasını geçersiz kılacak bir .xctestrun dosyası. .xctestrun dosyası, çalıştırılacak ve/veya yoksayılacak test yöntemlerinin yanı sıra ortam değişkenlerini de içerdiğinden, testlerin parçalanması için bu yararlı olabilir. Varsayılan testler zip dosyasından alınır.

xcodeVersion

string

Test için kullanılması gereken Xcode sürümü. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın. Varsayılan olarak Firebase Test Lab'ın desteklediği en son Xcode sürümü kullanılır.

appBundleId

string

Yalnızca çıktı. Test edilen uygulamanın paket kimliği.

testSpecialEntitlements

boolean

Özel uygulama yetkilerini test etme seçeneği. Bunun ayarlanması, özel yetkilere sahip uygulamanın açık bir uygulama tanımlayıcıyla yeniden imzalanmasına neden olur. Şu anda aps ortamı yetkisinin test edilmesini desteklemektedir.

IosTestLoop

Bir veya daha fazla oyun döngüsü senaryosunu uygulayan bir iOS uygulamasının testi. Bu test türü, arşivlenmiş bir uygulamayı (.ipa dosyası) ve uygulamada sırayla yürütülecek tamsayı senaryolarının bir listesini kabul eder.

JSON gösterimi
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Alanlar
appIpa

object ( FileReference )

Gerekli. Test edilecek uygulamanın .ipa'sı.

scenarios[]

integer

Test sırasında çalıştırılması gereken senaryoların listesi. Belirtilmemişse varsayılan olarak tek senaryo 0'dır.

appBundleId

string

Yalnızca çıktı. Test edilen uygulamanın paket kimliği.

Çevre Matrisi

Testin yürütüleceği ortamların matrisi.

JSON gösterimi
{

  // Union field environment_matrix can be only one of the following:
  "androidMatrix": {
    object (AndroidMatrix)
  },
  "androidDeviceList": {
    object (AndroidDeviceList)
  },
  "iosDeviceList": {
    object (IosDeviceList)
  }
  // End of list of possible types for union field environment_matrix.
}
Alanlar
Birleşim alanı environment_matrix . Gerekli. Çevre matrisi. environment_matrix aşağıdakilerden yalnızca biri olabilir:
androidMatrix

object ( AndroidMatrix )

Android cihazların bir matrisi.

androidDeviceList

object ( AndroidDeviceList )

Android cihazların listesi; test yalnızca belirtilen cihazlarda çalıştırılacaktır.

iosDeviceList

object ( IosDeviceList )

iOS cihazlarının listesi.

AndroidMatrix

Bir dizi Android cihaz yapılandırma permütasyonu, verilen eksenlerin çapraz çarpımı ile tanımlanır. Dahili olarak, verilen AndroidMatrix bir dizi AndroidDevices'a genişletilecektir.

Yalnızca desteklenen permütasyonlar başlatılacaktır. Geçersiz permütasyonlar (örn. uyumsuz modeller/versiyonlar) dikkate alınmaz.

JSON gösterimi
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Alanlar
androidModelIds[]

string

Gerekli. Kullanılacak Android cihaz grubunun kimlikleri. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

androidVersionIds[]

string

Gerekli. Kullanılacak Android işletim sistemi sürümünün kimlikleri. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

locales[]

string

Gerekli. Test cihazının test için etkinleştireceği yerel ayarlar kümesi. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

orientations[]

string

Gerekli. Test edilecek yönelimler kümesi. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

AndroidCihaz Listesi

Testin yürütüleceği Android cihaz yapılandırmalarının listesi.

JSON gösterimi
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Alanlar
androidDevices[]

object ( AndroidDevice )

Gerekli. Android cihazların listesi.

AndroidCihaz

Tek bir Android cihaz.

JSON gösterimi
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Alanlar
androidModelId

string

Gerekli. Kullanılacak Android cihazının kimliği. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

androidVersionId

string

Gerekli. Kullanılacak Android işletim sistemi sürümünün kimliği. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

locale

string

Gerekli. Test cihazının test için kullandığı yerel ayar. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

orientation

string

Gerekli. Test sırasında cihazın nasıl yönlendirildiği. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

IosCihaz Listesi

Testin yürütüleceği iOS cihaz yapılandırmalarının listesi.

JSON gösterimi
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Alanlar
iosDevices[]

object ( IosDevice )

Gerekli. iOS cihazlarının listesi.

IosCihaz

Tek bir iOS cihazı.

JSON gösterimi
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Alanlar
iosModelId

string

Gerekli. Kullanılacak iOS cihazının kimliği. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

iosVersionId

string

Gerekli. Kullanılacak iOS ana yazılım sürümünün kimliği. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

locale

string

Gerekli. Test cihazının test için kullandığı yerel ayar. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

orientation

string

Gerekli. Test sırasında cihazın nasıl yönlendirildiği. Desteklenen seçeneklere ulaşmak için TestEnvironmentDiscoveryService'i kullanın.

Test uygulaması

Tek bir ortamda yürütülen tek bir test.

JSON gösterimi
{
  "id": string,
  "matrixId": string,
  "projectId": string,
  "testSpecification": {
    object (TestSpecification)
  },
  "shard": {
    object (Shard)
  },
  "environment": {
    object (Environment)
  },
  "state": enum (TestState),
  "toolResultsStep": {
    object (ToolResultsStep)
  },
  "timestamp": string,
  "testDetails": {
    object (TestDetails)
  }
}
Alanlar
id

string

Yalnızca çıktı. Hizmet tarafından belirlenen benzersiz kimlik.

matrixId

string

Yalnızca çıktı. İçeren TestMatrix'in kimliği.

projectId

string

Yalnızca çıktı. Test yürütmesinin sahibi olan bulut projesi.

testSpecification

object ( TestSpecification )

Yalnızca çıktı. Test nasıl çalıştırılır.

shard

object ( Shard )

Yalnızca çıktı. Parçayla ilgili ayrıntılar.

environment

object ( Environment )

Yalnızca çıktı. Ana makine(ler)in nasıl yapılandırıldığı.

state

enum ( TestState )

Yalnızca çıktı. Test yürütmesinin mevcut ilerlemesini gösterir (örneğin, BİTİRİLDİ).

toolResultsStep

object ( ToolResultsStep )

Yalnızca çıktı. Bu yürütmenin sonuçlarının yazıldığı yer.

timestamp

string ( Timestamp format)

Yalnızca çıktı. Bu test yürütmesinin başlangıçta oluşturulduğu zaman.

RFC3339 UTC "Zulu" biçiminde, nanosaniye çözünürlüğe ve en fazla dokuz kesirli basamağa sahip bir zaman damgası. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Yalnızca çıktı. Çalışan testle ilgili ek ayrıntılar.

Parça

Yalnızca çıktı. Parçayla ilgili ayrıntılar.

JSON gösterimi
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Alanlar
shardIndex

integer

Yalnızca çıktı. Tüm parçalar arasındaki parçanın dizini.

numShards

integer

Yalnızca çıktı. Toplam parça sayısı.

testTargetsForShard

object ( TestTargetsForShard )

Yalnızca çıktı. Her parça için hedefleri test edin. Yalnızca manuel parçalama için ayarlanmıştır.

estimatedShardDuration

string ( Duration format)

Yalnızca çıktı. Varsa önceki test senaryosu zamanlama kayıtlarına dayalı tahmini parça süresi.

' s ' ile biten, en fazla dokuz kesirli basamaktan oluşan, saniye cinsinden süre. Örnek: "3.5s" .

Çevre

Testin yürütüldüğü ortam.

JSON gösterimi
{

  // Union field environment can be only one of the following:
  "androidDevice": {
    object (AndroidDevice)
  },
  "iosDevice": {
    object (IosDevice)
  }
  // End of list of possible types for union field environment.
}
Alanlar
Birlik alanı environment . Gerekli. Çevre. environment aşağıdakilerden yalnızca biri olabilir:
androidDevice

object ( AndroidDevice )

Android testiyle kullanılması gereken bir Android cihazı.

iosDevice

object ( IosDevice )

Bir iOS testiyle kullanılması gereken bir iOS cihazı.

Test Durumu

Bir test yürütmesinin veya matrisinin durumu (yani ilerlemesi).

Numaralandırmalar
TEST_STATE_UNSPECIFIED Kullanmayın. Yalnızca proto sürüm oluşturma için.
VALIDATING Yürütme veya matris doğrulanıyor.
PENDING Yürütme veya matris, kaynakların kullanılabilir olmasını bekliyor.
RUNNING

İnfaz şu anda işleniyor.

Yalnızca bir yürütmeye ayarlanabilir.

FINISHED

Yürütme veya matris normal şekilde sonlandırıldı.

Bir matriste bu, matris düzeyindeki işlemenin normal şekilde tamamlandığı ancak bireysel yürütmelerin HATA durumunda olabileceği anlamına gelir.

ERROR Yürütme veya matris, bir altyapı arızasıyla karşılaştığı için durduruldu.
UNSUPPORTED_ENVIRONMENT

Desteklenmeyen bir ortama karşılık geldiğinden yürütme çalıştırılmadı.

Yalnızca bir yürütmeye ayarlanabilir.

INCOMPATIBLE_ENVIRONMENT

Sağlanan girişler istenen ortamla uyumsuz olduğundan yürütme çalıştırılamadı.

Örnek: istenen AndroidVersion, APK'nın minSdkVersion sürümünden daha düşük

Yalnızca bir yürütmeye ayarlanabilir.

INCOMPATIBLE_ARCHITECTURE

Sağlanan girişler istenen mimariyle uyumsuz olduğundan yürütme çalıştırılamadı.

Örnek: istenen cihaz, sağlanan APK'da yerel kodun çalıştırılmasını desteklemiyor

Yalnızca bir yürütmeye ayarlanabilir.

CANCELLED

Kullanıcı yürütmeyi iptal etti.

Yalnızca bir yürütmeye ayarlanabilir.

INVALID

Sağlanan girişler geçerli olmadığından yürütme veya matris çalıştırılamadı.

Örnekler: giriş dosyası beklenen türde değil, hatalı biçimlendirilmiş/bozuk veya kötü amaçlı yazılım olarak işaretlenmiş

AraçSonuçlarıAdım

Bir araç sonuçları adım kaynağını temsil eder.

Bu bir TestExecution'ın sonuçlarına sahiptir.

JSON gösterimi
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Alanlar
projectId

string

Yalnızca çıktı. Araç sonuçları adımının sahibi olan bulut projesi.

historyId

string

Yalnızca çıktı. Bir araç sonuçları geçmişi kimliği.

executionId

string

Yalnızca çıktı. Bir araç sonuçları yürütme kimliği.

stepId

string

Yalnızca çıktı. Bir araç sonuçları adım kimliği.

TestDetayları

Çalışan testin ilerleyişi hakkında ek ayrıntılar.

JSON gösterimi
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Alanlar
progressMessages[]

string

Yalnızca çıktı. Testin ilerleyişinin insanlar tarafından okunabilen, ayrıntılı açıklamaları. Örneğin: "Cihazın temel hazırlığının yapılması", "Test Başlatılıyor".

Yürütme sırasında, ProgressMessages'ın sonuna yeni veriler eklenebilir.

errorMessage

string

Yalnızca çıktı. TestState ERROR ise bu dize, hatayla ilgili insanlar tarafından okunabilen ayrıntıları içerecektir.

Sonuç Depolama

Test çalıştırma sonuçlarının saklandığı yerler.

JSON gösterimi
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Alanlar
googleCloudStorage

object ( GoogleCloudStorage )

Gerekli.

toolResultsHistory

object ( ToolResultsHistory )

Sonuçların yazıldığı araç sonuçlarının yürütülmesini içeren araç sonuçları geçmişi.

Sağlanmazsa hizmet uygun bir değer seçecektir.

toolResultsExecution

object ( ToolResultsExecution )

Yalnızca çıktı. Sonuçların yazıldığı araç sonuçlarının yürütülmesi.

resultsUrl

string

Yalnızca çıktı. Firebase Web Konsolu'ndaki sonuçların URL'si.

GoogleCloudDepolama

Google bulut depolama alanı (GCS) içindeki bir depolama konumu.

JSON gösterimi
{
  "gcsPath": string
}
Alanlar
gcsPath

string

Gerekli. Sonunda bu testin sonuçlarını içerecek olan GCS'deki dizinin yolu. İstekte bulunan kullanıcının, sağlanan yoldaki pakete yazma erişimi olması gerekir.

AraçSonuçlarıGeçmişi

Bir araç sonuçları geçmişi kaynağını temsil eder.

JSON gösterimi
{
  "projectId": string,
  "historyId": string
}
Alanlar
projectId

string

Gerekli. Aracın sonuç geçmişine sahip olan bulut projesi.

historyId

string

Gerekli. Bir araç sonuçları geçmişi kimliği.

AraçSonuçlarıYürütme

Bir araç sonuçları yürütme kaynağını temsil eder.

Bu bir TestMatrix'in sonuçlarına sahiptir.

JSON gösterimi
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Alanlar
projectId

string

Yalnızca çıktı. Aracın sahibi olan bulut projesi, sonuçların yürütülmesini sağlar.

historyId

string

Yalnızca çıktı. Bir araç sonuçları geçmişi kimliği.

executionId

string

Yalnızca çıktı. Bir araç sonuçları yürütme kimliği.

Geçersiz Matris Ayrıntıları

Bir Matrix'in GEÇERSİZ kabul edilmesinin ayrıntılı nedeni.

Numaralandırmalar
INVALID_MATRIX_DETAILS_UNSPECIFIED Kullanmayın. Yalnızca proto sürüm oluşturma için.
DETAILS_UNAVAILABLE Matris GEÇERSİZ, ancak daha fazla ayrıntı mevcut değil.
MALFORMED_APK Giriş uygulaması APK'sı ayrıştırılamadı.
MALFORMED_TEST_APK Giriş testi APK'sı ayrıştırılamadı.
NO_MANIFEST AndroidManifest.xml bulunamadı.
NO_PACKAGE_NAME APK bildirimi bir paket adı bildirmiyor.
INVALID_PACKAGE_NAME APK uygulama kimliği (diğer adıyla paket adı) geçersiz. Ayrıca bkz. https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Test paketi ve uygulama paketi aynıdır.
NO_INSTRUMENTATION Test apk'sı bir enstrümantasyon bildirmiyor.
NO_SIGNATURE Giriş uygulaması apk'sinin imzası yok.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE Kullanıcı tarafından veya test APK'sının bildirim dosyasında belirtilen test çalıştırıcısı sınıfı, Android Test Orchestrator ile uyumlu değil. Orchestrator yalnızca AndroidJUnitRunner sürüm 1.1 veya üzeri ile uyumludur. Orkestratör, DO_NOT_USE_ORCHESTRATOR OrchestratorOption kullanılarak devre dışı bırakılabilir.
NO_TEST_RUNNER_CLASS

Test APK'sı, kullanıcı tarafından veya manifest dosyasında belirtilen test çalıştırıcısı sınıfını içermiyor. Bu, aşağıdaki nedenlerden birinden kaynaklanabilir:

  • kullanıcı yanlış bir koşucu sınıfı adı sağladı veya
  • test çalıştırıcısı test APK'sında yerleşik değildir (bunun yerine uygulama APK'sında olabilir).
NO_LAUNCHER_ACTIVITY Ana başlatıcı etkinliği bulunamadı.
FORBIDDEN_PERMISSIONS Uygulama, izin verilmeyen bir veya daha fazla izin bildiriyor.
INVALID_ROBO_DIRECTIVES Sağlanan roboDirektiflerde bir çelişki var.
INVALID_RESOURCE_NAME Sağlanan robo yönergelerinde en az bir geçersiz kaynak adı var
INVALID_DIRECTIVE_ACTION Robo yönergelerinde geçersiz eylem tanımı (örneğin, tıklama veya yoksayma eylemi bir giriş metni alanı içeriyor)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Test döngüsü amaç filtresi yok veya verilen filtre doğru biçimlendirilmemiş.
SCENARIO_LABEL_NOT_DECLARED İstek, bildirimde belirtilmeyen bir senaryo etiketi içeriyor.
SCENARIO_LABEL_MALFORMED Bir etiketin değeri ayrıştırılırken bir hata oluştu.
SCENARIO_NOT_DECLARED İstek, bildirimde belirtilmeyen bir senaryo numarası içeriyor.
DEVICE_ADMIN_RECEIVER Cihaz yöneticisi uygulamalarına izin verilmez.
MALFORMED_XC_TEST_ZIP Sıkıştırılmış XCTest hatalı biçimlendirilmişti. Zip, tek bir .xctestrun dosyası ve DerivedData/Build/Products dizininin içeriğini içermiyordu.
BUILT_FOR_IOS_SIMULATOR Sıkıştırılmış XCTest, fiziksel bir cihaz yerine iOS simülatörü için oluşturuldu.
NO_TESTS_IN_XC_TEST_ZIP .xctestrun dosyası herhangi bir test hedefi belirtmedi.
USE_DESTINATION_ARTIFACTS .xctestrun dosyasında tanımlanan bir veya daha fazla test hedefi, izin verilmeyen "UseDestinationArtifacts" öğesini belirtiyor.
TEST_NOT_APP_HOSTED Fiziksel cihazlarda çalışan XC testlerinin xctestrun dosyasında "IsAppHostedTestBundle" == "true" olması gerekir.
PLIST_CANNOT_BE_PARSED XCTest zip dosyasındaki Info.plist dosyası ayrıştırılamadı.
TEST_ONLY_APK

APK "testOnly" olarak işaretlendi. Kullanımdan kaldırıldı ve şu anda kullanılmıyor.

MALFORMED_IPA Giriş IPA'sı ayrıştırılamadı.
MISSING_URL_SCHEME Uygulama, oyun döngüsü URL şemasını kaydetmiyor.
MALFORMED_APP_BUNDLE iOS uygulama paketi (.app) işlenemedi.
NO_CODE_APK APK kod içermiyor. Ayrıca bkz. https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Sağlanan giriş APK yolu hatalı biçimlendirilmiş, APK dosyası mevcut değil veya kullanıcının APK dosyasına erişim izni yok.
INVALID_APK_PREVIEW_SDK APK, desteklenmeyen bir önizleme SDK'sı için oluşturulmuştur
MATRIX_TOO_LARGE Matris çok fazla yürütme içerecek şekilde genişledi.
TEST_QUOTA_EXCEEDED Bu matristeki yürütmeleri çalıştırmak için yeterli test kotası yok.
SERVICE_NOT_ACTIVATED Gerekli bir bulut hizmeti API'si etkinleştirilmedi. Bakınız: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Bu testi çalıştırırken bilinmeyen bir izin sorunu oluştu.

Sonuç Özeti

Bitmiş bir test matrisinin sonuç özeti.

Numaralandırmalar
OUTCOME_SUMMARY_UNSPECIFIED Kullanmayın. Yalnızca proto sürüm oluşturma için.
SUCCESS

Test matrisi çalıştırması başarılı oldu, örneğin:

  • Tüm test vakaları geçti.
  • Robo, test edilen uygulamada bir çökme tespit etmedi.
FAILURE

Örneğin bir çalıştırma başarısız oldu:

  • Bir veya daha fazla test senaryosu başarısız oldu.
  • Bir test zaman aşımına uğradı.
  • Test edilen uygulama çöktü.
INCONCLUSIVE Beklenmedik bir şey oldu. Çalıştırmanın yine de başarısız olduğu düşünülmelidir ancak bu muhtemelen geçici bir sorundur ve testin yeniden çalıştırılması başarılı olabilir.
SKIPPED

Örneğin tüm testler atlandı:

  • Tüm cihaz yapılandırmaları uyumsuzdu.

Yöntemler

cancel

Bir test matrisindeki tamamlanmamış test yürütmelerini iptal eder.

create

Verilen spesifikasyonlara göre bir test matrisi oluşturur ve çalıştırır.

get

Bir test matrisinin durumunu ve oluşturulduktan sonra yapılan uygulamaları kontrol eder.