- Kaynak: Adım
- TestYürütmeAdım
- Araç Yürütme
- AraçÇıkış Kodu
- Test Sorunu
- Herhangi
- Şiddet
- Tip
- Kategori
- TestZamanlaması
- Araç Yürütme Adımı
- Çok Adımlı
- Birincil Adım
- BireyselSonuç
- Yöntemler
Kaynak: Adım
Adım, Yürütmenin bir parçası olarak gerçekleştirilen tek bir işlemi temsil eder. Bir aracın yürütülmesini temsil etmek için bir adım kullanılabilir (örneğin, bir test çalıştırıcısının yürütülmesi veya bir derleyicinin yürütülmesi).
Adımlar çakışabilir (örneğin, bazı işlemler paralel olarak yapılırsa iki adım aynı başlangıç zamanına sahip olabilir).
İşte bir örnek, her yineleme için bir test çalıştırıcısı çalıştıran sürekli bir yapıya sahip olduğumuzu düşünelim. İş akışı şu şekilde görünecektir: - kullanıcı kimliği 1 olan bir Yürütme oluşturur - kullanıcı Yürütme 1 için kimliği 100 olan bir TestExecutionStep oluşturur - kullanıcı ham xml günlüğü eklemek için kimliği 100 olan TestExecutionStep'i günceller + hizmet xml günlüklerini ayrıştırır ve ile bir TestExecutionStep döndürür güncellenen Test Sonuçları. - kullanıcı ID 100 ile TestExecutionStep'in durumunu COMPLETE olarak günceller
Bir Adım, durumu TAM olarak ayarlanana kadar güncellenebilir ve bu noktalarda değişmez hale gelir.
JSON gösterimi |
---|
{ "stepId": string, "creationTime": { object ( |
Alanlar | |
---|---|
stepId | Bu Adımın Yürütülmesindeki benzersiz tanımlayıcı. Bu alan arayan tarafından ayarlanırsa veya üzerine yazılırsa INVALID_ARGUMENT değerini döndürür.
|
creationTime | Adımın oluşturulduğu zaman.
|
completionTime | Adım durumunun tamamlanmak üzere ayarlandığı zaman. Durum TAMAM'a geçtiğinde bu değer otomatik olarak ayarlanacaktır.
|
name | Kullanıcı arayüzünde görüntülenecek, insanların okuyabileceği kısa bir ad. Maksimum 100 karakter. Örneğin: Temiz yapı Bir PRECONDITION_FAILED, adını ve boyutValue değerini mevcut bir adımla paylaşıyorsa, yeni bir adım oluşturulduktan sonra döndürülür. İki adım benzer bir eylemi temsil ediyor ancak farklı boyut değerlerine sahipse aynı adı paylaşmalıdırlar. Örneğin, aynı test seti iki farklı platformda çalıştırılıyorsa iki adımın adı aynı olmalıdır.
|
description | Bu aracın açıklaması Örneğin: mvn clean package -D skipTests=true
|
state | Başlangıç durumu IN_PROGRESS'tir. Tek yasal durum geçişleri şunlardır: * IN_PROGRESS -> COMPLETE Geçersiz bir geçiş istendiğinde PRECONDITION_FAILED döndürülür. Durumu COMPLETE olarak ayarlanmış şekilde Step oluşturmak geçerlidir. Durum yalnızca bir kez TAMAMLANDI olarak ayarlanabilir. Durum birden çok kez COMPLETE olarak ayarlanırsa PRECONDITION_FAILED döndürülür.
|
outcome | Sonucun sınıflandırılması, örneğin BAŞARI veya BAŞARISIZLIK olarak
|
hasImages | Bu adımın çıktılarından herhangi birinin küçük resimleri küçük resimler.listesi ile getirilebilen resimler olup olmadığı.
|
labels | Adımla ilişkili, kullanıcının sağladığı rastgele anahtar/değer çiftleri. Anahtar ad alanının, anahtarların yanlışlıkla çarpışmasını önleyecek şekilde yönetilmesinden kullanıcılar sorumludur. Etiket sayısı 100'ü aşarsa veya anahtarlardan veya değerlerden herhangi birinin uzunluğu 100 karakteri aşarsa INVALID_ARGUMENT döndürülür.
|
dimensionValue | Bu adımı içeren yürütmede herhangi bir boyut_ tanımı kümesi varsa, bu alan alt öğenin boyutların değerlerini belirtmesine olanak tanır. Anahtarlar, yürütmenin boyut_tanımıyla tam olarak eşleşmelidir. Örneğin, yürütmede Bir adım matrisin bir boyutuna katılmıyorsa bu boyutun değeri boş dize olmalıdır. Örneğin, testlerden biri yeniden denemeleri desteklemeyen bir koşucu tarafından yürütülürse adımda Adım matrisin herhangi bir boyutuna katılmıyorsa, DimensionValue ayarlanmadan bırakılabilir. Yürütmenin boyut_tanımı içinde anahtarlardan herhangi biri mevcut değilse, PRECONDITION_FAILED döndürülür. Bu yürütmedeki başka bir adım zaten aynı ada ve boyutValue'ya sahipse ancak diğer veri alanlarında farklılık gösteriyorsa (örneğin, adım alanı farklıdır), bir PRECONDITION_FAILED döndürülür. boyutValue ayarlandıysa ve yürütmede anahtarlardan biri olarak belirtilmeyen bir boyut_ tanımı varsa, bir PRECONDITION_FAILED döndürülür.
|
runDuration | Bu adımın gerçekleşmesi ne kadar sürdü? Ayarlanmadığı takdirde, adım COMPLETE durumuna ayarlandığında bu, createdTime vecompleteTime arasındaki farka ayarlanır. Bazı durumlarda bu değeri ayrı ayarlamak uygun olabilir: Örneğin, bir adım oluşturulduysa ancak temsil ettiği işlem yürütülmeden önce birkaç dakika kuyruğa alındıysa, kuyrukta harcanan süreyi adıma dahil etmemek uygun olacaktır. runSüresi. Bu alan zaten ayarlanmış olan bir adımda runDuration ayarlanmaya çalışılırsa PRECONDITION_FAILED döndürülür.
|
deviceUsageDuration | Testi gerçekleştirmek için cihaz kaynağının ne kadar kullanıldığı. Bu, runDuration'dan farklı olan, faturalandırma amacıyla kullanılan cihaz kullanımıdır; örneğin, cihaz kullanımı için altyapı arızası ücretlendirilmeyecektir. Bu alan zaten ayarlanmış olan bir adımda bir cihaz_kullanımı ayarlanmaya çalışılırsa PRECONDITION_FAILED döndürülür.
|
multiStep | Birden çok adımın bir grupla aynı yapılandırmayla çalıştırıldığına ilişkin ayrıntılar. Bu ayrıntılar, bu adımın hangi grubun parçası olduğunu belirlemek için kullanılabilir. Ayrıca tüm grup üyelerini indeksleyen grubun 'birincil adımını' da tanımlar.
|
Birlik alanı | |
testExecutionStep | Bir test çalıştırıcısının infazı. |
toolExecutionStep | Bir aracın çalıştırılması (açıkça desteklemediğimiz adımlar için kullanılır). |
TestYürütmeAdım
Testlerin yürütülmesini temsil eden bir adım.
Hizmet tarafından yapılandırılmış test sonuçlarına ayrıştırılacak ant-junit xml dosyalarını kabul eder. Xml dosya yolları, daha fazla dosya eklemek için güncellenir ancak bunlar silinemez.
Kullanıcılar ayrıca test_result alanını kullanarak test sonuçlarını manuel olarak da ekleyebilirler.
JSON gösterimi |
---|
{ "testSuiteOverviews": [ { object ( |
Alanlar | |
---|---|
testSuiteOverviews[] | Test paketine genel bakış içeriklerinin listesi. Bu, xUnit XML günlüğünden sunucuya göre ayrıştırılabilir veya doğrudan kullanıcı tarafından yüklenebilir. Bu referanslar yalnızca test paketleri tamamen ayrıştırıldığında veya yüklendiğinde çağrılmalıdır. Adım başına izin verilen maksimum test paketi genel bakış sayısı 1000'dir.
|
toolExecution | Test çalıştırıcısının yürütülmesini temsil eder. Bu aracın çıkış kodu, testin başarılı olup olmadığını belirlemek için kullanılacaktır.
|
testIssues[] | Testin yürütülmesi sırasında gözlemlenen sorunlar. Örneğin, test edilen mobil uygulamanın test sırasında çökmesi durumunda hata mesajı ve yığın izleme içeriği, hata ayıklamaya yardımcı olmak için buraya kaydedilebilir.
|
testTiming | Test yürütmesinin zamanlama dökümü.
|
Araç Yürütme
Rastgele bir aracın yürütülmesi. Bu, bir test çalıştırıcısı veya yapıtları kopyalayan veya kodu dağıtan bir araç olabilir.
JSON gösterimi |
---|
{ "commandLineArguments": [ string ], "toolLogs": [ { object ( |
Alanlar | |
---|---|
commandLineArguments[] | Program adını da içeren tam simgeleştirilmiş komut satırı (C programındaki argv'ye eşdeğerdir).
|
toolLogs[] | Herhangi bir düz metin günlüğüne yapılan referanslar, aracın yürütülmesinin çıktısını alır. Araç çalışırken günlüklerin canlı görünümüne erişebilmek için bu alan araçtan çıkmadan önce ayarlanabilir. Adım başına izin verilen maksimum takım günlüğü sayısı 1000'dir.
|
exitCode | Araç yürütme çıkış kodu. Bu alan araçtan çıkıldığında ayarlanacaktır.
|
toolOutputs[] | Aracın çalıştırılmasıyla çıktı olarak alınan herhangi bir formattaki opak dosyalara yapılan referanslar. Adım başına izin verilen maksimum takım çıkışı sayısı 1000'dir.
|
AraçÇıkış Kodu
Bir araç yürütmesinden koddan çıkın.
JSON gösterimi |
---|
{ "number": integer } |
Alanlar | |
---|---|
number | Araç yürütme çıkış kodu. 0 değeri yürütmenin başarılı olduğu anlamına gelir.
|
Test Sorunu
Test yürütme sırasında meydana gelen bir sorun algılandı.
JSON gösterimi |
---|
{ "errorMessage": string, "stackTrace": { object ( |
Alanlar | |
---|---|
errorMessage | Sorunu açıklayan, insanların okuyabileceği kısa bir mesaj. Gerekli. |
stackTrace | Belirli uyarıların içindeki yığın izleme alanları lehine kullanımdan kaldırıldı. |
warning | Sorunun ek ayrıntılarını içeren uyarı mesajı. Her zaman com.google.devtools.toolresults.v1.warnings'den bir mesaj olmalıdır |
severity | Sorunun ciddiyeti. Gerekli. |
type | Sorun türü. Gerekli. |
category | Sorunun kategorisi. Gerekli. |
Herhangi
Any
, serileştirilmiş mesajın türünü açıklayan bir URL ile birlikte rastgele bir serileştirilmiş protokol arabellek mesajı içerir.
Protobuf kitaplığı, yardımcı işlevler veya Herhangi bir türün ek oluşturulan yöntemleri biçimindeki Herhangi bir değeri paketlemek/paketten çıkarmak için destek sağlar.
Örnek 1: C++'da bir mesajı paketleme ve paketinden çıkarma.
Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
...
}
Örnek 2: Java'da bir mesajı paketleyin ve paketinden çıkarın.
Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
foo = any.unpack(Foo.class);
}
Örnek 3: Python'da bir mesajı paketleyin ve paketinden çıkarın.
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
any.Unpack(foo)
...
Örnek 4: Go'da bir mesajı paketleme ve paketinden çıkarma
foo := &pb.Foo{...}
any, err := ptypes.MarshalAny(foo)
...
foo := &pb.Foo{}
if err := ptypes.UnmarshalAny(any, foo); err != nil {
...
}
Protobuf kitaplığı tarafından sağlanan paketleme yöntemleri varsayılan olarak tür URL'si olarak 'type.googleapis.com/full.type.name' adresini kullanır ve paketten çıkarma yöntemleri yalnızca tür URL'sindeki son '/'den sonra tam nitelikli tür adını kullanır, örneğin "foo.bar.com/x/yz", "yz" tür adını verecektir.
JSON
Any
bir değerin JSON temsili, seri durumdan çıkarılmış, gömülü mesajın normal temsilini, tür URL'sini içeren ek bir @type
alanıyla birlikte kullanır. Örnek:
package google.profile;
message Person {
string first_name = 1;
string last_name = 2;
}
{
"@type": "type.googleapis.com/google.profile.Person",
"firstName": <string>,
"lastName": <string>
}
Gömülü mesaj türü iyi biliniyorsa ve özel bir JSON temsiline sahipse, bu temsil, @type
alanına ek olarak özel JSON'u içeren bir alan value
eklenerek gömülecektir. Örnek ( google.protobuf.Duration
mesajı için):
{
"@type": "type.googleapis.com/google.protobuf.Duration",
"value": "1.212s"
}
JSON gösterimi |
---|
{ "typeUrl": string, "value": string } |
Alanlar | |
---|---|
typeUrl | Serileştirilmiş protokol arabellek mesajının türünü benzersiz şekilde tanımlayan bir URL/kaynak adı. Bu dize en az bir "/" karakteri içermelidir. URL yolunun son bölümü, türün tam adını temsil etmelidir ( Uygulamada, ekipler genellikle herhangi biri bağlamında kullanmasını bekledikleri tüm türleri ikili dosyaya önceden derlerler. Bununla birlikte,
Not: Bu işlevsellik şu anda resmi protobuf sürümünde mevcut değildir ve type.googleapis.com ile başlayan URL türü için kullanılmaz. |
value | Yukarıda belirtilen türde geçerli bir serileştirilmiş protokol arabelleği olmalıdır. Base64 kodlu bir dize. |
Şiddet
Sorunların ciddiyeti.
Numaralandırmalar | |
---|---|
unspecifiedSeverity | Varsayılan belirtilmemiş önem derecesi. Kullanmayın. Yalnızca sürüm oluşturmak için. |
info | Kullanıcılara test çalıştırması hakkında bazı bilgiler sağlayan, kritik olmayan sorun. |
suggestion | Kullanıcılara test deneyimlerini iyileştirme konusunda bazı ipuçları sağlayan, örneğin Game Loops'u kullanmanın önerildiği, kritik olmayan sorun. |
warning | Potansiyel olarak kritik bir sorun. |
severe | Kritik sorun. |
Tip
Sorun türleri.
Numaralandırmalar | |
---|---|
unspecifiedType | Varsayılan belirtilmemiş tür. Kullanmayın. Yalnızca sürüm oluşturmak için. |
fatalException | Sorun ölümcül bir istisnadır. |
nativeCrash | Sorun yerel bir çökmedir. |
anr | Sorun bir ANR çökmesidir. |
unusedRoboDirective | Sorun kullanılmayan bir robo direktifidir. |
compatibleWithOrchestrator | Sorun, orkestratör kullanma önerisidir. |
launcherActivityNotFound | Başlatıcı etkinliği bulmayla ilgili sorun |
startActivityNotFound | Bir etkinliği başlatmak için kullanıcı tarafından sağlanan amacın çözümlenmesiyle ilgili sorun |
incompleteRoboScriptExecution | Bir Robo betiği tam olarak yürütülmedi. |
completeRoboScriptExecution | Bir Robo betiği tamamen ve başarıyla yürütüldü. |
failedToInstall | APK yüklenemedi. |
availableDeepLinks | Test edilen uygulamanın derin bağlantıları var ancak hiçbiri Robo'ya sağlanmadı. |
nonSdkApiUsageViolation | Uygulama, SDK olmayan bir API'ye erişti. |
nonSdkApiUsageReport | Uygulama, SDK olmayan bir API'ye erişti (yeni ayrıntılı rapor) |
encounteredNonAndroidUiWidgetScreen | Robo tarama, Android kullanıcı arayüzü widget'ları olmayan öğelerin bulunduğu en az bir ekranla karşılaştı. |
encounteredLoginScreen | Robo taramada en az bir olası giriş ekranıyla karşılaşıldı. |
performedGoogleLogin | Robo Google ile oturum açtı. |
iosException | iOS Uygulaması bir istisna dışında çöktü. |
iosCrash | iOS Uygulaması istisnasız çöktü (örn. öldürüldü). |
performedMonkeyActions | Robo tarama, bazı maymun eylemlerinin gerçekleştirilmesini içeriyordu. |
usedRoboDirective | Robo taraması bir Robo yönergesi kullandı. |
usedRoboIgnoreDirective | Robo tarama, bir kullanıcı arayüzü öğesini yok saymak için bir Robo yönergesi kullandı. |
insufficientCoverage | Robo, uygulamanın önemli olabilecek bazı kısımlarını taramadı. |
inAppPurchases | Robo taraması bazı uygulama içi satın alma işlemlerini içeriyordu. |
crashDialogError | Test yürütme sırasında kilitlenme iletişim kutusu algılandı |
uiElementsTooDeep | Kullanıcı arayüzü öğesi derinliği eşikten büyük |
blankScreen | Robo taramasında boş ekran bulundu |
overlappingUiElements | Robo taramasında örtüşen kullanıcı arayüzü öğeleri bulundu |
unityException | Yakalanmamış bir Unity istisnası tespit edildi (bunlar uygulamaları çökertmez). |
deviceOutOfMemory | Cihazın belleğinin yetersiz kaldığı algılandı |
logcatCollectionError | Logcat toplanırken tespit edilen sorunlar |
detectedAppSplashScreen | Robo, uygulama tarafından sağlanan bir açılış ekranı algıladı (Android işletim sistemi açılış ekranına kıyasla). |
Kategori
Sorun kategorileri.
Numaralandırmalar | |
---|---|
unspecifiedCategory | Varsayılan belirtilmemiş kategori. Kullanmayın. Yalnızca sürüm oluşturmak için. |
common | Sorun belirli bir test türüne (ör. yerel kilitlenme) özgü değildir. |
robo | Sorun Robo koşusuna özeldir. |
TestZamanlaması
Aşamaları bilmek için test zamanlaması dökümü.
JSON gösterimi |
---|
{
"testProcessDuration": {
object ( |
Alanlar | |
---|---|
testProcessDuration | Test sürecini yürütmek ne kadar sürdü?
|
Araç Yürütme Adımı
Açıkça desteklemediğimiz ikili dosyalar için kullanılacak genel araç adımı. Örneğin: yapıtları bir konumdan diğerine kopyalamak için cp'yi çalıştırmak.
JSON gösterimi |
---|
{
"toolExecution": {
object ( |
Alanlar | |
---|---|
toolExecution | A Aracın yürütülmesi.
|
Çok Adımlı
Birden çok adımın bir grupla aynı yapılandırmayla çalıştırıldığına ilişkin ayrıntılar.
JSON gösterimi |
---|
{
"primaryStepId": string,
"multistepNumber": integer,
"primaryStep": {
object ( |
Alanlar | |
---|---|
primaryStepId | Bu adım olabilecek birincil (orijinal) adımın Adım Kimliği. |
multistepNumber | Her adıma verilen benzersiz int. 0 (dahil) ile toplam adım sayısına (hariç) kadar değişir. Birincil adım 0'dır. |
primaryStep | Birincil (orijinal) bir adımsa sunun. |
Birincil Adım
Grup olarak çalıştırılan birden fazla adımın toplama test durumunu ve her bir adımın sonucunu saklar.
JSON gösterimi |
---|
{ "rollUp": enum ( |
Alanlar | |
---|---|
rollUp | Grup olarak aynı yapılandırmayla çalıştırılan birden fazla adımın toplama test durumu. |
individualOutcome[] | Adım Kimliği ve her bir adımın sonucu. |
BireyselSonuç
Aynı yapılandırmaya sahip diğer adımlarla birlikte grup olarak çalıştırılan her bir adımın Adım Kimliği ve sonucu.
JSON gösterimi |
---|
{ "stepId": string, "outcomeSummary": enum ( |
Alanlar | |
---|---|
stepId | |
outcomeSummary | |
multistepNumber | Her adıma verilen benzersiz int. 0 (dahil) ile toplam adım sayısına (hariç) kadar değişir. Birincil adım 0'dır. |
runDuration | Bu adımın gerçekleşmesi ne kadar sürdü? |
Yöntemler | |
---|---|
| Belirli bir Adım için erişilebilirlik kümelerini listeler Aşağıdaki standart hata kodlarından herhangi birini döndürebilir:
|
| Bir Adım Oluşturur. |
| Bir Adım Alır. |
| PerfMetricsSummary'yi alır. |
| Belirli bir Yürütme için Adımları listeler. |
| Sağlanan kısmi varlıkla mevcut bir Adımı günceller. |
| Xml dosyalarını mevcut bir Step'e yayınlayın. |