REST Resource: projects.testMatrices

Kaynak: TestMatrix

TestMatrix, bir testle ilgili tüm ayrıntıları yakalar. Bu dizin ortam yapılandırması, test spesifikasyonu, test yürütmeleri, genel durum ve sonuçları 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),
  "extendedInvalidMatrixDetails": [
    {
      object (MatrixErrorDetail)
    }
  ],
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
Alanlar
testMatrixId

string

Yalnızca çıkış. Hizmet tarafından ayarlanan benzersiz kimlik.

projectId

string

Test matrisinin sahibi olan bulut projesi.

clientInfo

object (ClientInfo)

Testi çağıran istemci hakkında bilgi.

testSpecification

object (TestSpecification)

Zorunlu. Test nasıl çalıştırılır?

environmentMatrix

object (EnvironmentMatrix)

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

testExecutions[]

object (TestExecution)

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

resultStorage

object (ResultStorage)

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

state

enum (TestState)

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

timestamp

string (Timestamp format)

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

RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

invalidMatrixDetails

enum (InvalidMatrixDetails)

Yalnızca çıkış. Matrisin neden geçersiz olarak kabul edildiğini açıklar. Yalnızca GEÇERSİZ durumdaki matrisler için yararlıdır.

extendedInvalidMatrixDetails[]

object (MatrixErrorDetail)

Yalnızca çıkış. Bir matrisin neden geçersiz sayıldığına dair ayrıntılar. Birden fazla kontrol güvenli bir şekilde gerçekleştirilirse bunlar raporlanır ancak bu listenin uzunluğu hakkında herhangi bir varsayımda bulunulmamalıdır.

flakyTestAttempts

integer

Test durumlarından biri veya birkaçı herhangi bir nedenle başarısız olursa TestExecution'ın yeniden denenmesi gereken sayı. İzin verilen maksimum tekrar sayısı 10'dur.

Varsayılan değer 0'dır. Bu değer, tekrar çalıştırma olmadığı anlamına gelir.

outcomeSummary

enum (OutcomeSummary)

Yalnızca çıkış. Testin genel sonucu. Yalnızca test matrisi durumu FINISHED olduğunda ayarlanır.

failFast

boolean

Doğru değerine ayarlanırsa matristeki her yürütme/kırıkı çalıştırmak için en fazla tek bir deneme yapılır. Güvenilir olmayan test denemeleri etkilenmez.

Normalde, olası bir altyapı sorunu tespit edildiğinde 2 veya daha fazla deneme yapılır.

Bu özellik, gecikmeye duyarlı iş yükleri içindir. Hata önleme matrisleri için yürütmede başarısızlık durumları çok daha fazla olabilir ve bu beklenti nedeniyle destek daha sınırlıdır.

ClientInfo

Testi çağıran istemci hakkında bilgi.

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

string

Zorunlu. İstemci adı (ör. gcloud).

clientInfoDetails[]

object (ClientInfoDetail)

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

İstemci Bilgisi Ayrıntısı

Testi çağıran istemci hakkında 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

Zorunlu. Müşteriyle ilgili ayrıntılı bilgilerin anahtarı.

value

string

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

TestSpecification

Testin nasıl yürütüleceğine 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)
  },
  "iosRoboTest": {
    object (IosRoboTest)
  }
  // End of list of possible types for union field test.
}
Alanlar
testTimeout

string (Duration format)

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

En fazla dokuz kesir basamağı olan ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

disableVideoRecording

boolean

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

disablePerformanceMetrics

boolean

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

Birleştirme alanı setup. Kurulum koşullarını test edin. setup şunlardan yalnızca biri olabilir:
testSetup

object (TestSetup)

Android için test kurulumu gereksinimleri, ör. komut dosyaları, önyükleme komut dosyaları.

iosTestSetup

object (IosTestSetup)

iOS için kurulum gereksinimlerini test edin.

Birleştirme alanı test. Zorunlu. Çalıştırılacak testin türü. test şunlardan yalnızca biri olabilir:
androidInstrumentationTest

object (AndroidInstrumentationTest)

Bir Android araç testi.

androidRoboTest

object (AndroidRoboTest)

Android otomatik testi.

androidTestLoop

object (AndroidTestLoop)

Test Döngüsü içeren bir Android uygulaması.

iosXcTest

object (IosXcTest)

.xctestrun dosyası üzerinden bir iOS XCTest.

iosTestLoop

object (IosTestLoop)

Test döngüsü olan bir iOS uygulaması.

iosRoboTest

object (IosRoboTest)

iOS Robo testi.

Test Kurulumu

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

JSON gösterimi
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "initialSetupApks": [
    {
      object (Apk)
    }
  ],
  "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 aktarılacak dosyaların listesi.

directoriesToPull[]

string

Testin sonunda GCS'ye yüklenecek cihazdaki dizinlerin listesi; bunlar /sdcard, /storage veya /data/local/tmp altındaki mutlak yollar olmalıdır. Yol adları a-z A-Z 0-9 _ - karakterleriyle sınırlıdır. + ve /

Not: Yollar /sdcard ve /data kullanılabilir hale getirilir ve örtülü yol değişiklikleri olarak değerlendirilir. Ör. Belirli bir cihazdaki /sdcard harici depolama alanıyla eşleşmezse sistem, bunu söz konusu cihazın harici depolama yolu önekiyle değiştirir.

initialSetupApks[]

object (Apk)

İsteğe bağlı. Test edilen uygulama yüklenmeden önce yüklenecek ilk kurulum APK'ları. Şu anda 100 adetle sınırlı.

additionalApks[]

object (Apk)

Doğrudan test edilenlere ek olarak yüklenecek APK'lar. Bu uygulamalar, test edilen uygulama tamamlandıktan sonra yüklenecek. Şu anda 100 adetle sınırlı.

account

object (Account)

Test süresince cihazın bu hesaba giriş yapması gerekir.

networkProfile

string

Testi çalıştırmak için kullanılan ağ trafiği profili. Kullanılabilir ağ profilleri, TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog yöntemi ç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 araç testleri için geçerlidir).

systrace
(deprecated)

object (SystraceSetup)

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

dontAutograntPermissions

boolean

Uygulama yükleme sırasında tüm çalışma zamanı izinlerinin verilip verilmeyeceğini belirler

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ştirme alanı device_file. Zorunlu. device_file şunlardan yalnızca biri olabilir:
obbFile

object (ObbFile)

Opak ikili blob dosyasına başvuru.

regularFile

object (RegularFile)

Normal bir dosyaya referans.

ObbDosya

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

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

string

Zorunlu. Android tarafından belirtilen biçime uygun olması gereken OBB dosya adı (ör. [main|patch].0300110.com.example.android.obb, cihazdaki <shared-storage>/Android/obb/<paket-adı>/ klasörüne yüklenecek.

obb

object (FileReference)

Zorunlu. Cihaza yüklenecek Opaque Binary Blob (OBB) dosyaları.

DosyaReferansı

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
Birleştirme alanı file. Zorunlu. Dosya referansı. file şunlardan yalnızca biri olabilir:
gcsPath

string

Google Cloud Storage'daki bir dosyanın yolu. Örnek: gs://build-app-1414623860166/app%40debug-unaligned.apk Bu yolların URL olarak kodlanması beklenir (yüzde kodlaması)

NormalDosya

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

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

object (FileReference)

Zorunlu. Kaynak dosya.

devicePath

string

Zorunlu. İçeriğin cihazda nereye yerleştirileceği. Mutlak, izin verilenler listesine eklenmiş bir yol olmalıdır. Dosya mevcutsa değiştirilir. Aşağıdaki cihaz tarafı dizinler ve bunların tüm alt dizinleri 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çersiz.

Yollar /sdcard ve /data kullanılabilir hale getirilir ve örtülü yol değişiklikleri olarak değerlendirilir. Ör. Belirli bir cihazdaki /sdcard harici depolama alanıyla eşleşmezse sistem, bunu söz konusu cihazın harici depolama yolu önekiyle değiştirir ve dosyayı oraya kopyalar.

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

APK

Yüklenecek Android paketi dosyası.

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

object (FileReference)

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

packageName

string

Yüklenecek APK'nın Java paketi. Değer, uygulamanın manifest dosyası 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ştirme alanı account_type. Zorunlu. Ne için olduğuna (ör. Google) ve giriş mekanizmasına (ör. kullanıcı adı ve şifre) bağlı olarak hesap türü. account_type şunlardan yalnızca biri olabilir:
googleAuto

object (GoogleAuto)

Otomatik Google giriş hesabı.

GoogleAuto

Bu türde alan yok.

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

OrtamDeğişkeni

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

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

string

Ortam değişkeni anahtarı.

value

string

Ortam değişkeninin değeri.

Sistem Kurulumu

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

integer

Saniye cinsinden Systrace süresi. 1 ile 30 saniye arasında olmalıdır. 0, sistem izlemeyi devre dışı bırakır.

iOSTestKurulumu

Testi çalıştırmadan önce iOS cihazın nasıl kurulacağıyla ilgili 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 yöntemi ç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 aktarılacak dosyaların listesi.

pullDirectories[]

object (IosDeviceFile)

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

Dizinler, paylaşılan bir dizinde (/private/var/mobile/Media gibi) veya 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 dosya

bundleId

string

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

iOS uygulamaları kendi dosya sistemlerini korumalı alana alır. Bu nedenle, uygulama dosyaları cihazda hangi uygulamanın yüklü olduğunu belirtmelidir.

devicePath

string

Cihazdaki dosyanın, uygulamanın korumalı alana alınmış dosya sistemi içindeki konumu

Android Enstrümantasyon Testi

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

Android testi türleri hakkında daha fazla bilgi edinmek için https://developer.android.com/training/testing/fundamentals sayfasına 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)

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

appPackageId

string

Test edilen uygulamanın Java paketi. Varsayılan değer, uygulamanın manifest dosyası incelenerek belirlenir.

testPackageId

string

Testin yürütüleceği Java paketi. Varsayılan değer, uygulamanın manifest dosyası incelenerek belirlenir.

testRunnerClass

string

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

testTargets[]

string

Her hedef, aşağıdaki biçimlerden birinde paket adı veya sınıf adıyla tam olarak nitelenmiş olmalıdır:

  • "paket paketiAdı"
  • "class packageName.class_name"
  • "class packageName.class_name#methodName"

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

orchestratorOption

enum (OrchestratorOption)

Her testin kendi araç çağrısı içinde Android Test Orkestratörü ile çalıştırılıp çalıştırılmayacağı seçeneği. ** Orkestratör, yalnızca AndroidJUnitRunner sürüm 1.1 veya daha yeni sürümlerle uyumludur. ** Orkestratör aşağıdaki avantajları sunar:

  • Paylaşılan durum yok
  • Kilitlenmeler birbirinden bağımsız
  • Günlükler her test için kapsama dahil edilir

Android Test Orchestrator hakkında daha fazla bilgi için https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator sayfasına göz atın.

Politika ayarlanmazsa test, düzenleyici olmadan çalıştırılır.

shardingOption

object (ShardingOption)

Birden fazla parçada testleri paralel olarak çalıştırma seçeneği.

Birleştirme alanı app_under_test. Zorunlu. app_under_test şunlardan yalnızca biri olabilir:
appApk

object (FileReference)

Test edilen uygulamanın APK'sı.

appBundle

object (AppBundle)

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

AppBundle

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

App Bundle oluşturma konusunda yardım için https://developer.android.com/guide/app-bundle/build adresini ziyaret edin.

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
Birleştirme alanı bundle. Zorunlu. Paket konumu bilgileri. bundle şunlardan 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.

Sıralamalar
ORCHESTRATOR_OPTION_UNSPECIFIED Varsayılan değer: Modu sunucu seçer. Şu anda testin düzenleyici olmadan çalışacağı anlamına gelir. Gelecekte tüm araç testleri, orkestratör ile çalıştırılacaktır. Orkestratörü kullanmak, sunduğu tüm avantajlardan dolayı önemle tavsiye edilir.
USE_ORCHESTRATOR Orkestratörü kullanarak test çalıştırın. ** Yalnızca AndroidJUnitRunner sürüm 1.1 veya daha yeni sürümlerle uyumludur! ** Önerilir.
DO_NOT_USE_ORCHESTRATOR Orkestratörü kullanmadan testi ç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ştirme alanı option.

option şunlardan yalnızca biri olabilir:

uniformSharding

object (UniformSharding)

Toplam parça sayısına göre test durumlarını eşit şekilde parçalar.

manualSharding

object (ManualSharding)

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

smartSharding

object (SmartSharding)

Parçalar, önceki test durumu zamanlama kayıtlarına göre test edilir.

Tekdüzen Parçalama

Toplam parça sayısına göre test durumlarını eşit şekilde parçalar.

Araç testleri için bu değer "-e numShard" olarak çevrilir ve "-e shardIndex" AndroidJUnitRunner bağımsız değişkenleri. Tek tip parçalama etkinleştirildiğinde, bu parçalama bağımsız değişkenlerinden birinin environmentVariables aracılığıyla belirtilmesi geçersiz olur.

AndroidJUnitRunner'ın kullandığı parçalama mekanizmasına dayalı olarak, test senaryolarının tüm parçalara eşit olarak dağıtılacağı garanti edilmez.

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

integer

Zorunlu. Oluşturulacak toplam kırık sayısı. Bu değer, her zaman test vakalarının toplam sayısından büyük olmayan bir pozitif sayı olmalıdır. Bir veya daha fazla fiziksel cihaz seçtiğinizde kırık sayısı <= 50 olmalıdır. Bir veya daha fazla ARM sanal cihazı seçtiğinizde bu değer en az 200 olmalıdır. Yalnızca x86 sanal cihazları seçtiğinizde bu sayı en fazla 500 olmalıdır.

Manuel Parçalama

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

Manuel parçalama etkinken, ortamDeğişkenleri veya InstrumentationTest aracılığıyla test hedeflerinin belirtilmesi geçersizdir.

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

object (TestTargetsForShard)

Zorunlu. Manuel olarak oluşturulan her kırık için çalıştırılacak paket, sınıf ve/veya test yöntemi grubu. Bu alan mevcutsa en az bir kırık 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 bu değer en az 200 olmalıdır. Yalnızca x86 sanal cihazları seçtiğinizde bu sayı en fazla 500 olmalıdır.

Dark Hedefli Test

Bir kırık için hedefleri test edin.

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

string

Her kırık için çalıştırılacak paket, sınıf ve/veya test yöntemi 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 sayısı 0'dan büyük olmalıdır.

Akıllı Parçalama

Parçalar, önceki test durumu zamanlama kayıtlarına göre test edilir.

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

string (Duration format)

Bir parça içinde yapılması gereken testlerin süresi.

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 göre dinamik olarak ayarlanır. Her kırık için en az bir test durumu garanti edilmesi amacıyla, kırık sayısı test durumu sayısını aşmayacaktır. Parça süresi şu durumlarda aşılır:

  • Maksimum parça sınırına ulaşıldı ve parçalara ayırmak için daha fazla hesaplanmış test süresi kaldı.
  • Tüm bağımsız testlerin hedeflenen parça süresinden daha uzun olduğu tahmin edilir.

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

  • Hizmet son 30 gün içinde bir test durumu işleme aldıysa en son başarılı test durumunun kaydı kullanılır.
  • Yeni test durumları için bilinen diğer test durumlarının ortalama süresi kullanılır.
  • Önceden herhangi bir test durumu zamanlama kaydı yoksa varsayılan test durumu süresi 15 saniyedir.

Gerçek kırık 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 (fiziksel cihazlar için 45 dakika ve sanal cihazlar için 60 dakika) daha az olarak ayarlamanızı veya belirlediğiniz özel test zaman aşımı değerini kullanmanızı öneririz. Bu yaklaşım, tüm testler tamamlanmadan önce kırığın iptal edilmesini önler.

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

En fazla dokuz kesir basamağı olan ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

AndroidRoboTest

Bir Android uygulamasını sanal veya fiziksel Android cihazda keşfeden, uygulamanın nedenlerini ve kilitlenmeleri bulmaya çalışan 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 uygulamanın Java paketi. Varsayılan değer, uygulamanın manifest dosyası incelenerek belirlenir.

appInitialActivity

string

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

maxDepth
(deprecated)

integer

Robo'nun keşfedebileceği geçiş yığınının maksimum derinliği. Robo'nun ilk etkinlikten sonra uygulamayı keşfetmesi için en az 2 yaşında olması gerekir. Varsayılan değer 50'dir.

maxSteps
(deprecated)

integer

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

roboDirectives[]

object (RoboDirective)

Robo'nun tarama sırasında 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 verir.

roboScript

object (FileReference)

Robo'nun tarama için giriş olarak gerçekleştirmesi gereken bir dizi işlem içeren bir JSON dosyası.

startingIntents[]

object (RoboStartingIntent)

Tarama için uygulamayı başlatmak için kullanılan amaçlar. Herhangi bir etkinlik sağlanmazsa ana başlatıcı etkinliği başlatılır. Bunlardan bazıları sağlanırsa yalnızca sağlananlar başlatılır (ana başlatıcı etkinliği açık bir şekilde sağlanmalıdır).

Birleştirme alanı app_under_test. Zorunlu. app_under_test şunlardan yalnızca biri olabilir:
appApk

object (FileReference)

Test edilen uygulamanın APK'sı.

appBundle

object (AppBundle)

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

RoboDirective

Tarama sırasında karşılaşılması durumunda Robo'yu belirli bir kullanıcı arayüzü öğesiyle etkileşimde bulunmaya yönlendirir. Robo şu anda metin girişi veya öğe tıklaması yapabilmektedir.

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

string

Zorunlu. Hedef kullanıcı arayüzü öğesinin Android kaynak adı. Örneğin, Java'da: xml'deki R.string.foo: @string/foo Yalnızca "foo" bir gerekliliktir. Referans belge: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Robo'nun ayarlayacağı metin. Boş bırakılırsa yönerge, resourceName ile eşleşen öğede bir TIKLAMA olarak değerlendirilir.

actionType

enum (RoboActionType)

Zorunlu. Robo'nun belirtilen öğe üzerinde gerçekleştirmesi gereken işlem türü.

RoboActionType

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

Sıralamalar
ACTION_TYPE_UNSPECIFIED KULLANMAYIN. Sadece proto sürümü oluşturma için.
SINGLE_CLICK Robo'nun belirtilen öğeyi tıklamasını doğrudan sağlayın. Belirtilen öğe tıklanabilir değilse işlem yok.
ENTER_TEXT Robo'nun belirtilen öğede metin girmesini doğrudan. Belirtilen öğe etkin değilse veya metin girişine izin vermiyorsa işlem yok.
IGNORE Robo'nun belirli bir öğeyle etkileşimleri yoksaymasına izin verin.

RoboMode

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

Sıralamalar
ROBO_MODE_UNSPECIFIED Bu, sunucunun modu seçmesi gerektiği anlamına gelir. Önerilir.
ROBO_VERSION_1 Robo'yu uygulamayı yeniden imzalamadan UIAutomator'a özel modda çalıştırır
ROBO_VERSION_2 Robo'yu standart Espresso'da UIAutomator yedeğiyle çalıştırır

RoboStartIntent

Taranacak başlangıç etkinliklerini belirtmek için kullanılan mesaj.

JSON gösterimi
{
  "timeout": string,

  // Union field starting_intent can be only one of the following:
  "launcherActivity": {
    object (LauncherActivityIntent)
  },
  "startActivity": {
    object (StartActivityIntent)
  },
  "noActivity": {
    object (NoActivityIntent)
  }
  // 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ı.

En fazla dokuz kesir basamağı olan ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

Birleştirme alanı starting_intent. Zorunlu. Aktivite başlatmak için amaç ayrıntıları. starting_intent şunlardan yalnızca biri olabilir:
launcherActivity

object (LauncherActivityIntent)

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

startActivity

object (StartActivityIntent)

Belirli ayrıntılarla etkinlik başlatan intent.

noActivity

object (NoActivityIntent)

Başlangıç etkinliğini atlar

LauncherActivityIntent

Bu türde alan yok.

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

StartActivityIntent

İşlem, URI ve kategorilerle belirtilen başlangıç amacı.

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

string

İşlem adı. START_ACTIVITY için gereklidir.

uri

string

İşlemin URI'si.

categories[]

string

Niyete göre belirlenecek amaç kategorileri.

Etkinlik Amacı Yok

Bu türde alan yok.

Başlangıç etkinliğini atlar

AndroidTestDöngüsü

Test Döngüsü içeren bir Android uygulaması testi. <intent-name> amacı Oyunlar, şimdilik bu API'nin tek kullanıcısı olduğundan örtülü 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 uygulamanın Java paketi. Varsayılan değer, uygulamanın manifest dosyası incelenerek belirlenir.

scenarios[]

integer

Test sırasında çalıştırılması gereken senaryoların listesi. Varsayılan değer, uygulamanın manifest dosyasından 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 manifest dosyasında tanımlanan etiketlerle eşleşmelidir. Örneğin, Player_experience ve com.google.test.loops.player_experience, manifest dosyasında com.google.test.loops.player_experience adıyla etiketlenen tüm döngüleri yürütmeye ekler. Senaryolar, senaryolar alanında da belirtilebilir.

Birleştirme alanı app_under_test. Zorunlu. Test edilecek Android paketi. app_under_test şunlardan yalnızca biri olabilir:
appApk

object (FileReference)

Test edilen uygulamanın APK'sı.

appBundle

object (AppBundle)

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

IosXcTesti

XCTest çerçevesini kullanan bir iOS uygulaması testi. Xcode, test spesifikasyonu (bağımsız değişkenler, test yöntemleri vb.) içeren bir .xctestrun dosyası oluşturan "test için derle" seçeneğini destekler. Bu test türü, .xctestrun dosyasını ve testleri çalıştırmak için gerekli tüm ikili programları 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)

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

xctestrun

object (FileReference)

Testler zip dosyasındaki .xctestrun dosyasını geçersiz kılacak .xctestrun dosyası. .xctestrun dosyası çalıştırılacak ve/veya yoksayılacak test yöntemlerinin yanı sıra ortam değişkenleri de içerdiğinden, bu yöntem parçalama testleri için yararlı olabilir. Varsayılan değer, test ZIP dosyasından alınır.

xcodeVersion

string

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

appBundleId

string

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

testSpecialEntitlements

boolean

Özel uygulama yararlanma haklarını test etme seçeneği. Bunun ayarlanması, uygulamayı açık bir uygulama tanımlayıcısıyla özel yararlanma haklarına sahip olarak yeniden imzalar. Şu anda aps ortamından yararlanma hakkının test edilmesini desteklemektedir.

iOSTestDöngüsü

Bir veya daha fazla oyun döngüsü senaryosunu uygulayan iOS uygulaması testi. Bu test türü, arşivlenmiş bir uygulamayı (.ipa dosyası) ve uygulamada sırayla yürütülecek tam sayı senaryolardan oluşan bir listeyi kabul eder.

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

object (FileReference)

Zorunlu. Test edilecek uygulamanın .ipa numarası.

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 çıkış. Test edilen uygulamanın paket kimliği.

IosRoboTest

iOS cihazdaki bir iOS uygulamasını inceleyen test.

JSON gösterimi
{
  "appIpa": {
    object (FileReference)
  },
  "appBundleId": string,
  "roboScript": {
    object (FileReference)
  }
}
Alanlar
appIpa

object (FileReference)

Zorunlu. Bu dosyada depolanan ipa, testi çalıştırmak için kullanılmalıdır.

appBundleId

string

Test altında uygulama için paket kimliği. Bu, uygulamanın "Info.plist" dosyası incelenerek belirlenir dosyası olarak kaydedebilirsiniz.

roboScript

object (FileReference)

Taramayı özelleştirmek için kullanılan isteğe bağlı bir Roboscript. Robo komut dosyaları hakkında daha fazla bilgi için https://firebase.google.com/docs/test-lab/android/robo-scripts-reference adresine göz atın.

Ortam 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ştirme alanı environment_matrix. Zorunlu. Ortam matrisi. environment_matrix şunlardan yalnızca biri olabilir:
androidMatrix

object (AndroidMatrix)

Android cihazların matrisi.

androidDeviceList

object (AndroidDeviceList)

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

iosDeviceList

object (IosDeviceList)

iOS cihazların listesi.

AndroidMatrisi

Android cihaz yapılandırması permütasyonları kümesi, belirtilen eksenlerin çapraz çarpımı ile tanımlanır. Belirtilen AndroidMatrix, dahili olarak bir dizi AndroidDevices olarak genişletilecektir.

Yalnızca desteklenen permütasyonlar örneklendirilir. Geçersiz permütasyonlar (ör. uyumsuz modeller/sürümler) yoksayılır.

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

string

Zorunlu. Kullanılacak Android cihaz grubunun kimlikleri. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

androidVersionIds[]

string

Zorunlu. Kullanılacak Android OS sürümü grubunun kimlikleri. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

locales[]

string

Zorunlu. Test cihazının test için etkinleştireceği yerel ayarlar grubu. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

orientations[]

string

Zorunlu. Test edilecek yön grubu. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

AndroidCihazListesi

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

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

object (AndroidDevice)

Zorunlu. Android cihazların listesi.

iOSCihaz Listesi

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

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

object (IosDevice)

Zorunlu. iOS cihazların listesi.

iOSCihazı

Tek bir iOS cihazı.

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

string

Zorunlu. Kullanılacak iOS cihazın kimliği. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

iosVersionId

string

Zorunlu. Kullanılacak iOS ana yazılım sürümünün kimliği. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

locale

string

Zorunlu. Test için kullanılan test cihazının yerel ayarı. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

orientation

string

Zorunlu. Test sırasında cihazın yönü. Desteklenen seçenekleri almak için TestEnvironmentDiscoveryService hizmetini kullanın.

Test Yürütme

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 çıkış. Hizmet tarafından ayarlanan benzersiz kimlik.

matrixId

string

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

projectId

string

Yalnızca çıkış. Test yürütmenin sahibi olan bulut projesi.

testSpecification

object (TestSpecification)

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

shard

object (Shard)

Yalnızca çıkış. Kırıkla ilgili ayrıntılar.

environment

object (Environment)

Yalnızca çıkış. Ana makinelerin nasıl yapılandırıldığı.

state

enum (TestState)

Yalnızca çıkış. Test işleminin mevcut ilerlemesini (ör. TAMAMLANDI).

toolResultsStep

object (ToolResultsStep)

Yalnızca çıkış. Bu yürütmenin sonuçlarının yazıldığı yerdir.

timestamp

string (Timestamp format)

Yalnızca çıkış. Bu test yürütmesinin ilk oluşturulduğu zaman.

RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

testDetails

object (TestDetails)

Yalnızca çıkış. Çalışan testle ilgili ek bilgiler.

Kırık

Yalnızca çıkış. Kırıkla ilgili ayrıntılar.

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

integer

Yalnızca çıkış. Tüm kırıklar arasındaki kırığın dizini.

numShards

integer

Yalnızca çıkış. Toplam kırık sayısı.

testTargetsForShard

object (TestTargetsForShard)

Yalnızca çıkış. Her kırık için hedefleri test edin. Yalnızca manuel parçalama için ayarlanır.

estimatedShardDuration

string (Duration format)

Yalnızca çıkış. Varsa önceki test durumu zamanlama kayıtlarına göre tahmini parça süresi.

En fazla dokuz kesir basamağı olan ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

Ortam

Testin çalıştırı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
Birleştirme alanı environment. Zorunlu. Ortam. environment şunlardan yalnızca biri olabilir:
androidDevice

object (AndroidDevice)

Android testiyle kullanılması gereken bir Android cihaz

iosDevice

object (IosDevice)

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

Test Durumu

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

Sıralamalar
TEST_STATE_UNSPECIFIED Kullanmayın. Sadece 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 hale gelmesini beklemektedir.
RUNNING

Yürütme şu anda işleniyor.

Yalnızca yürütmede ayarlanabilir.

FINISHED

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

Bir matriste bu, matris düzeyinde işlemenin normal bir şekilde tamamlandığı ancak bağımsız yürütmelerin HATA durumunda olabileceği anlamına gelir.

ERROR Bir altyapı hatasıyla karşılaştığı için yürütme veya matris durduruldu.
UNSUPPORTED_ENVIRONMENT

Yürütme, desteklenmeyen bir ortama karşılık geldiği için çalıştırılmadı.

Yalnızca yürütmede ayarlanabilir.

INCOMPATIBLE_ENVIRONMENT

Sağlanan girişler, istenen ortamla uyumlu olmadığı için yürütme çalıştırılamadı.

Örnek: istenen AndroidVersion, APK'nın minSdkVersion değerinden daha düşük

Yalnızca yürütmede ayarlanabilir.

INCOMPATIBLE_ARCHITECTURE

Sağlanan girişler, istenen mimariyle uyumlu olmadığı için yürütme çalıştırılamadı.

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

Yalnızca yürütmede ayarlanabilir.

CANCELLED

Kullanıcı, yürütme işlemini iptal etti.

Yalnızca yürütmede ayarlanabilir.

INVALID

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

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

AraçSonuçlarıAdımı

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

Bu işlem, TestExecution sonuçlarını içerir.

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

string

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

historyId

string

Yalnızca çıkış. Araç sonuç geçmişi kimliği.

executionId

string

Yalnızca çıkış. Araç sonuçları yürütme kimliği.

stepId

string

Yalnızca çıkış. Araç sonuçları adım kimliği.

Test Ayrıntıları

Çalışan testin ilerleme durumuyla ilgili ek ayrıntılar.

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

string

Yalnızca çıkış. Testteki ilerlemenin kullanıcılar tarafından okunabilen, ayrıntılı açıklamaları. Örneğin: "Cihazın temel hazırlığı yapılıyor", "Test Başlatılıyor".

Yürütme işlemi sırasında, progressMessages'ın sonuna yeni veriler eklenebilir.

errorMessage

string

Yalnızca çıkış. TestState ERROR ise bu dizede hatayla ilgili kullanıcılar tarafından okunabilir ayrıntılar bulunur.

SonuçDepolama

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

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

object (GoogleCloudStorage)

Zorunlu.

toolResultsHistory

object (ToolResultsHistory)

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

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

toolResultsExecution

object (ToolResultsExecution)

Yalnızca çıkış. Araç, sonuçların yazıldığı şekilde yürütmeyi tamamlar.

resultsUrl

string

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

GoogleBulutDepolama

Google Cloud Storage (GCS) içindeki depolama konumu.

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

string

Zorunlu. GCS'de, bu testin sonuçlarını içerecek olan dizinin yolu. İstekte bulunan kullanıcının, sağlanan yoldaki pakete yazma erişimi olmalıdır.

AraçSonuçlarıGeçmişi

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

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

string

Zorunlu. Araç sonuç geçmişinin sahibi olan bulut projesi.

historyId

string

Zorunlu. Araç sonuç geçmişi kimliği.

ToolResultsYürütme

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

Bu, TestMatrix'in sonuçlarını içerir.

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

string

Yalnızca çıkış. Araç sonuçlarının yürütülmesine sahip olan bulut projesi.

historyId

string

Yalnızca çıkış. Araç sonuç geçmişi kimliği.

executionId

string

Yalnızca çıkış. Araç sonuçları yürütme kimliği.

InvalidMatrixDetails (Geçersiz Matris ayrıntıları)

Bir Matrisin GEÇERSİZ olarak kabul edilmesinin ayrıntılı nedeni.

Sıralamalar
INVALID_MATRIX_DETAILS_UNSPECIFIED Kullanmayın. Sadece proto sürümü oluşturma için.
DETAILS_UNAVAILABLE Matris GEÇERSİZ, ancak başka ayrıntı yok.
MALFORMED_APK Girilen uygulama 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 manifest'inde paket adı belirtilmemiş.
INVALID_PACKAGE_NAME APK uygulama kimliği (paket adı olarak da bilinir) geçersiz. https://developer.android.com/studio/build/application-id adresine de bakın
TEST_SAME_AS_APP Test paketi ve uygulama paketi aynıdır.
NO_INSTRUMENTATION Test apk bir araç bildirmiyor.
NO_SIGNATURE Giriş uygulaması apk'sinin imzası yok.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE Kullanıcı tarafından veya test APK'sının manifest dosyasında belirtilen test çalıştırıcı sınıfı, Android Test Orchestrator ile uyumlu değil. Orkestratör, yalnızca AndroidJUnitRunner sürüm 1.1 veya daha yeni sürümlerle 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ınıfını içermiyor. Bunun nedeni aşağıdakilerden biri olabilir:

  • Kullanıcı hatalı bir koşucu sınıf adı sağladı veya
  • test çalıştırıcı, 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 izni beyan ediyor.
INVALID_ROBO_DIRECTIVES Sağlanan roboDirectives'te bir çakışma 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ı (ör. tıklama veya yoksayma işleminde bir giriş metin alanı bulunuyor)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Test döngüsü amaç filtresi yok veya sağlanan filtre doğru biçimlendirilmemiş.
SCENARIO_LABEL_NOT_DECLARED İstek, manifest dosyasında bildirilmemiş bir senaryo etiketi içeriyor.
SCENARIO_LABEL_MALFORMED Etiketin değeri ayrıştırılırken hata oluştu.
SCENARIO_NOT_DECLARED İstek, manifest dosyasında beyan edilmeyen bir senaryo numarası içeriyor.
DEVICE_ADMIN_RECEIVER Cihaz yöneticisi uygulamalarına izin verilmiyor.
MALFORMED_XC_TEST_ZIP Sıkıştırılmış XCTest hatalı biçimlendirilmiş. ZIP dosyasında tek bir .xctestrun dosyası ve DerivedData/Build/Products dizininin içeriği bulunmuyordu.
BUILT_FOR_IOS_SIMULATOR Sıkıştırılmış XCTest, fiziksel bir cihaz için değil, iOS simülatörü için oluşturulmuştur.
NO_TESTS_IN_XC_TEST_ZIP .xctestrun dosyası herhangi bir test hedefi belirtmedi.
USE_DESTINATION_ARTIFACTS .xctestrun dosyasında tanımlanan test hedeflerinden biri veya daha fazlası, izin verilmeyen "UseDestinationArtifacts" öğesini belirtiyor.
TEST_NOT_APP_HOSTED Fiziksel cihazlarda çalıştırılan XC testlerinde "IsAppHostedTestBundle" olmalıdır. == "doğru" xctestrun dosyası oluşturun.
PLIST_CANNOT_BE_PARSED XCTest zip dosyasındaki Info.plist dosyası ayrıştırılamadı.
TEST_ONLY_APK

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

MALFORMED_IPA IPA girişi 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'sının 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ş
MATRIX_TOO_LARGE Matris çok fazla yürütme işlemi içerecek şekilde genişletildi.
TEST_QUOTA_EXCEEDED Bu matristeki yürütme işlemlerini çalıştırmak için yeterli test kotası yok.
SERVICE_NOT_ACTIVATED Gerekli bir bulut hizmeti API'si etkinleştirilmedi. Şu sayfaya göz atın: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Bu test çalıştırılırken bilinmeyen bir izin sorunu oluştu.

Matris Hata Ayrıntıları

Bir matrisle ilgili tek bir hatayı veya sorunu açıklar.

JSON gösterimi
{
  "reason": string,
  "message": string
}
Alanlar
reason

string

Yalnızca çıkış. Hatanın nedeni. Bu, UPPER_SNAKE_CASE içinde hatanın nedenini tanımlayan sabit bir değerdir.

message

string

Yalnızca çıkış. TestMatrix'teki hatanın nasıl olduğuyla ilgili, kullanıcılar tarafından okunabilen bir mesaj. Ek ayrıntılar ve sorunu düzeltmek için olası seçeneklerle reason alanında genişler.

SonuçÖzeti

Tamamlanmış bir test matrisinin sonuç özeti.

Sıralamalar
OUTCOME_SUMMARY_UNSPECIFIED Kullanmayın. Sadece proto sürümü oluşturma için.
SUCCESS

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

  • Tüm test durumları başarılı oldu.
  • Robo, test edilen uygulamanın kilitlenmesini tespit etmedi.
FAILURE

Çalıştırma başarısız oldu. Örneğin:

  • Bir veya daha fazla test durumu başarısız oldu.
  • Bir test zaman aşımına uğradı.
  • Test edilen uygulama kilitlendi.
INCONCLUSIVE Beklenmeyen bir hata oluştu. Çalışma yine de başarısız kabul edilmelidir ancak bu geçici bir sorundur ve testin yeniden çalıştırılması başarılı olabilir.
SKIPPED

Tüm testler atlandı. Örneğin:

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

Yöntemler

cancel

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

create

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

get

Oluşturulduktan sonra bir test matrisinin durumunu ve yürütmeleri kontrol eder.