- Kaynak: Adım
- TestExecutionStep
- Araç Yürütme
- ToolExitCode
- TestSorunu
- Tümü
- Önem Düzeyi
- Tür
- Kategori
- Test Zamanlaması
- ToolExecutionStep
- Çoklu Adım
- PrimaryStep
- Bireysel Sonuç
- Yöntemler
Kaynak: Adım
Adım, Yürütme kapsamında gerçekleştirilen tek bir işlemi temsil eder. Adım, bir aracın yürütülmesini temsil etmek için kullanılabilir ( örneğin, 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).
Aşağıda bir örnek verilmiştir. Sürekli bir derlememizin her iterasyon için bir test çalıştırıcısı çalıştırdığını düşünelim. İş akışı şu şekilde görünür: - kullanıcı kimliği 1 olan bir Execution oluşturur - kullanıcı, Yürütme 1 için kimliği 100 olan bir TestExecutionStep oluşturur - ham XML günlüğü eklemek için 100 kimlikli TestExecutionStep'i güncellemesi + hizmet, xml günlüklerini ayrıştırır ve güncellenmiş TestResult(s) içeren bir TestExecutionStep döndürür. - kullanıcı, TestExecutionStep'in durumunu 100 kimliğiyle COMPLETE olarak güncelleme
Bir adım, durumu COMPLETE olarak ayarlanana kadar güncellenebilir. Bu noktada adım değiştirilemez.
JSON gösterimi |
---|
{ "stepId": string, "creationTime": { object ( |
Alanlar | |
---|---|
stepId |
Bu Adım için Yürütme içerisindeki benzersiz bir tanımlayıcı. Bu alan çağrı tarafından ayarlanır 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 tamamlanmaya ayarlandığı zaman. Bu değer, durum COMPLETE olarak değiştiğinde otomatik olarak ayarlanır.
|
name |
Kullanıcı arayüzünde gösterilecek, kullanıcıların okuyabileceği kısa bir ad. Maksimum 100 karakter. Örneğin: Temiz derleme Yeni bir adım oluşturulduğunda, adı ve boyutDeğeri mevcut bir adımla paylaşılıyorsa PRETERMS_FAILED hatası döndürülür. İki adım benzer bir işlemi temsil ediyorsa ancak farklı boyut değerlerine sahipse bu adımlar aynı ada sahip olmalıdır. Örneğin, aynı test grubu 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 clear package -D submitTests=true
|
state |
İlk durum: IN_PROGRESS. Yasal durum geçişleri yalnızca * IN_PROGRESS -> şeklindedir TAMAMLA Geçersiz bir geçiş istenirse PRETERMS_FAILED hatası döndürülür. Tamamlandı olarak ayarlanmış bir adım oluşturmak için geçerlidir. Durum yalnızca bir kez TAMAM olarak ayarlanabilir. Durum birden fazla kez COMPLETE olarak ayarlanırsa PRECondition_FAILED hatası döndürülür.
|
outcome |
Sonucun BAŞARI veya HATA olarak sınıflandırılması
|
hasImages |
Bu adımın çıktılarından herhangi birinin, küçük resimlerinin images.list ile getirilebilecek resimler olup olmadığı.
|
labels |
Adımla ilişkili, kullanıcı tarafından sağlanan rastgele anahtar/değer çiftleri. Anahtarların yanlışlıkla çakışmaması için anahtar ad alanını yönetmekten kullanıcılar sorumludur. Etiket sayısı 100'ü aşarsa veya anahtar ya da değerlerden herhangi birinin uzunluğu 100 karakteri geçerse GEÇERSİZ_BAĞLANTI döndürülür.
|
dimensionValue |
Bu adımı içeren yürütmede herhangi bir boyut_definition ayarlanmışsa bu alan, alt yayıncının boyutların değerlerini belirtmesine olanak tanır. Anahtarlar, yürütmenindimension_definition ile tam olarak eşleşmelidir. Örneğin, yürütmede Bir adım, matrisin bir boyutuna yer vermiyorsa o 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 hiçbir boyutuna katılmıyorsa boyutValue ayarlanmamış olarak kalabilir. Anahtarlardan herhangi biri, yürütmenin boyut_definition bölümünde mevcut değilse PRETERMS_FAILED hatası döndürülür. Bu yürütmedeki başka bir adım zaten aynı ada ve boyuta sahip olmasına rağmen diğer veri alanlarında farklıysa (ör. adım alanı farklıysa) PREKOŞUL_BAŞARI döndürülür. boyutValue ayarlanırsa ve yürütmede anahtarlardan biri olarak belirtilmemiş bir boyut_definition varsa bir PRETERMS_FAILED döndürülür.
|
runDuration |
Bu adımın ne kadar sürdüğü. Ayarlanmadan bırakılırsa adım COMPLETE (TAMAMLANMIŞ) durumuna ayarlandığında bu ayar, generateTime ve completeTime (Tamamlama) arasındaki farka ayarlanır. Bazı durumlarda, bu değerin ayrı olarak ayarlanması uygundur. Örneğin, bir adım oluşturulduysa ancak temsil ettiği işlem yürütülmeden önce birkaç dakika boyunca sıraya alındıysa, RunDuration'da sıraya harcanan süreyi dahil etmemek uygun olacaktır. Bir adım, bu alanın halihazırda ayarlanmış olduğu bir adımda çalıştırma süresi ayarlamaya çalışırsa PRETERMS_FAILED sonucu döndürülür.
|
deviceUsageDuration |
Testi yapmak için cihaz kaynağının ne kadar kullanıldığı. Bu, faturalandırma amacıyla kullanılan cihaz kullanımıdır ve RunDuration değerinden farklıdır. Örneğin, cihaz kullanımı için altyapı hatası ücretlendirilmez. Bir kullanıcı, bu alanın halihazırda ayarlanmış olduğu bir adımda device_usage'ı ayarlamaya çalışırsa PRETERMS_FAILED sonucu döndürülür.
|
multiStep |
Bir grupla aynı yapılandırmayla birden fazla adım çalıştırıldığında ilgili ayrıntılar. Bu ayrıntılar, bu adımın hangi grubun parçası olduğunu belirlemek için kullanılabilir. Ayrıca, grupların "birincil adım"ı da tanımlar Böylece tüm grup üyelerini dizine ekler.
|
Birleştirme alanı
|
|
testExecutionStep |
Test çalıştırıcısının çalıştırılması. |
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 çalıştırılmasını 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 silinemez.
Kullanıcılar test_result alanını kullanarak test sonuçlarını manuel olarak da ekleyebilir.
JSON gösterimi |
---|
{ "testSuiteOverviews": [ { object ( |
Alanlar | |
---|---|
testSuiteOverviews[] |
Test paketine genel bakış içeriklerinin listesi. Bu, sunucu tarafından xUnit XML günlüğünden 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ı 1.000'dir.
|
toolExecution |
Test çalıştırıcısının yürütülmesini gösterir. Bu aracın çıkış kodu, testin başarılı olup olmadığını belirlemek için kullanılır.
|
testIssues[] |
Test yürütülürken gözlemlenen sorunlar. Örneğin, test edilen mobil uygulama test sırasında çöktüyse hata mesajı ve yığın izleme içeriği, hata ayıklamaya yardımcı olması için buraya kaydedilebilir.
|
testTiming |
Test yürütmesinin zaman dökümü.
|
Araç Yürütme
Rastgele bir aracın çalıştırılması. Bu, bir test çalıştırıcısı veya yapıları kopyalayan ya da kod dağıtan bir araç olabilir.
JSON gösterimi |
---|
{ "commandLineArguments": [ string ], "toolLogs": [ { object ( |
Alanlar | |
---|---|
commandLineArguments[] |
Program adını içeren tam token atanmış komut satırı (C programındaki argv'ye eşdeğerdir).
|
toolLogs[] |
Düz metin günlüklerine yapılan referanslar, aracın yürütülmesini sağlar. Araç çalışırken günlüklerin canlı görünümüne erişebilmek için bu alan araç kapatılmadan önce ayarlanabilir. Adım başına izin verilen maksimum araç günlüğü sayısı 1000'dir.
|
exitCode |
Araç yürütme çıkış kodu. Bu alan, araçtan çıkıldıktan sonra ayarlanır.
|
toolOutputs[] |
Araç yürütme işlemi tarafından üretilen herhangi bir biçimdeki opak dosyalara referanslar. Adım başına izin verilen maksimum araç çıkışı sayısı 1.000'dir.
|
AraçÇıkışKodu
Araç yürütme kodundan çı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.
|
TestSorunu
Test yürütülürken bir sorun oluştuğu algılandı.
JSON gösterimi |
---|
{ "errorMessage": string, "stackTrace": { object ( |
Alanlar | |
---|---|
errorMessage |
Sorunun açıklandığı, kullanıcıların okuyabileceği kısa bir mesaj. Zorunlu. |
stackTrace |
Belirli uyarılardaki yığın izleme (stack trace) alanlarının kullanımı için desteği sonlandırıldı. |
warning |
Sorunla ilgili ek ayrıntıları içeren uyarı mesajı. Her zaman com.google.devtools.toolresults.v1.warnings tarafından gönderilen bir ileti olmalıdır. |
severity |
Sorunun önem derecesi. Zorunlu. |
type |
Sorunun türü. Zorunlu. |
category |
Sorun kategorisi. Zorunlu. |
Herhangi biri
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ığı, tüm değerleri yardımcı işlev işlevleri veya herhangi bir türde ek oluşturulmuş yöntemler biçiminde paketleme/açma desteği sağlar.
1. Örnek: C++'ta bir iletiyi paketleme ve paketinden çıkarma.
Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
...
}
2. Örnek: Java'da bir iletiyi paketleyin ve açın.
Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
foo = any.unpack(Foo.class);
}
3. Örnek: Python'da bir iletiyi paketleyip açın.
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
any.Unpack(foo)
...
4. Örnek: Go'da bir iletiyi 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 paket yöntemleri varsayılan olarak "type.googleapis.com/full.type.name" kullanır. gibi URL'lerde ve paket açma yöntemlerinde yalnızca son "/" işaretinden sonra tam nitelikli tür adı kullanılır. yazın. Örneğin, "foo.bar.com/x/y.z" "y.z" tür adını getirir.
JSON
Bir Any
değerinin JSON gösterimi, seri haline getirilmiş, yerleştirilmiş mesajın normal gösterimini ve URL türünü içeren ek bir @type
alanını 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>
}
Yerleştirilmiş mesaj türü iyi biliniyorsa ve özel bir JSON gösterimine sahipse bu gösterim, @type
alanına ek olarak özel JSON'u da içeren bir value
alanı ekleyerek yerleştirilir. Ö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 arabelleği mesajının türünü benzersiz şekilde tanımlayan bir URL/kaynak adı. Bu dize en az bir "/" içermelidir karakteriyle ayrılır. URL yolunun son segmenti, türün tam nitelikli adını ( Pratikte ekipler genellikle herhangi bir bağlamda kullanmasını bekledikleri tüm ikili program türleri için önceden derler. Ancak
Not: Bu işlev şu anda resmi protobuf sürümünde kullanılamamaktadır ve type.googleapis.com ile başlayan tür URL'leri için kullanılmaz. Uygulamaya özel anlamlarla |
value |
Yukarıda belirtilen türde geçerli bir serileştirilmiş protokol arabelleği olmalıdır. base64 kodlu bir dize. |
Önem Düzeyi
Sorunların önem dereceleri.
Sıralamalar | |
---|---|
unspecifiedSeverity |
Varsayılan olarak belirtilmemiş önem derecesi. Kullanmayın. Yalnızca sürüm belirleme için. |
info |
Kritik olmayan bir sorun. Kullanıcılara test çalıştırması hakkında bazı bilgiler verilir. |
suggestion |
Kritik olmayan bir sorun.Kullanıcılara test deneyimlerini iyileştirmek için bazı ipuçları (ör. Oyun Döngüleri'ni kullanmayı önermek) sağlanır. |
warning |
Kritik olabilecek sorun. |
severe |
Kritik sorun. |
Tür
Sorun türleri.
Sıralamalar | |
---|---|
unspecifiedType |
Varsayılan belirtilmedi tür. Kullanmayın. Yalnızca sürüm belirleme için. |
fatalException |
Sorun önemli bir istisna. |
nativeCrash |
Sorun, yerel bir kilitlenmeyle ilgili. |
anr |
Sorun, ANR kilitlenmesiyle ilgili. |
unusedRoboDirective |
Sorun, kullanılmayan bir robo yönergesi. |
compatibleWithOrchestrator |
Sorun, orkestratörü kullanma önerisi. |
launcherActivityNotFound |
Başlatıcı etkinliği bulmayla ilgili sorun |
startActivityNotFound |
Kullanıcı tarafından sağlanan etkinlik başlatma niyetinin çözülmesiyle ilgili sorun |
incompleteRoboScriptExecution |
Robo komut dosyası tam olarak yürütülmedi. |
completeRoboScriptExecution |
Robo komut dosyası tamamen ve başarıyla yürütüldü. |
failedToInstall |
APK yüklenemedi. |
availableDeepLinks |
Alttaki uygulama testi derin bağlantılar içeriyor 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 taraması sırasında Android kullanıcı arayüzü widget'ı olmayan öğeler içeren en az bir ekranla karşılaşıldı. |
encounteredLoginScreen |
Robo taraması sırasında en az bir olası giriş ekranıyla karşılaşıldı. |
performedGoogleLogin |
Robo, Google ile oturum açtı. |
iosException |
iOS uygulaması bir istisna dışında kilitlendi. |
iosCrash |
iOS uygulaması istisnasız olarak çöktü (ör. sonlandırıldı). |
performedMonkeyActions |
Robo taraması bazı maymun işlemleri yapmayı içeriyordu. |
usedRoboDirective |
Robo taraması bir Robo yönergesi kullandı. |
usedRoboIgnoreDirective |
Robo taraması, bir kullanıcı arayüzü öğesini yoksaymak için Robo yönergesi kullandı. |
insufficientCoverage |
Robo, uygulamanın önemli olabilecek bazı bölümlerini taramadı. |
inAppPurchases |
Robo taraması bazı uygulama içi satın alma işlemleri içeriyordu. |
crashDialogError |
Test yürütülürken 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 çakışan kullanıcı arayüzü öğeleri bulundu |
unityException |
Yakalanmamış bir Unity istisnası algılandı (bunlar uygulamaları kilitlenmez). |
deviceOutOfMemory |
Cihazda bellek olmadığı tespit edildi |
logcatCollectionError |
Logcat toplanırken sorunlar algılandı |
detectedAppSplashScreen |
Robo, Android OS başlangıç ekranı yerine uygulama tarafından sağlanan bir başlangıç ekranı algıladı. |
assetIssue |
Bu testteki öğelerle ilgili bir sorun oluştu. |
Kategori
Sorun kategorileri.
Sıralamalar | |
---|---|
unspecifiedCategory |
Varsayılan belirtilmemiş kategori. Kullanmayın. Yalnızca sürüm belirleme için. |
common |
Sorun belirli bir test türüne özel değil (ör. yerel kilitlenme). |
robo |
Sorun Robo çalıştırmasıyla ilgili. |
Test Zamanlaması
Test zamanlaması aşamalara ayrılır.
JSON gösterimi |
---|
{
"testProcessDuration": {
object ( |
Alanlar | |
---|---|
testProcessDuration |
Test sürecini yürütmenin ne kadar sürdüğü.
|
AraçYürütmeAdımı
Açıkça desteklemediğimiz ikili programlar için kullanılacak genel araç adımı. Örnek: yapıları bir konumdan diğerine kopyalamak için cp'yi çalıştırma.
JSON gösterimi |
---|
{
"toolExecution": {
object ( |
Alanlar | |
---|---|
toolExecution |
Araç yürütme.
|
Çok Adımlı
Bir grupla aynı yapılandırmayla birden fazla adım çalıştırıldığında ilgili ayrıntılar.
JSON gösterimi |
---|
{
"primaryStepId": string,
"multistepNumber": integer,
"primaryStep": {
object ( |
Alanlar | |
---|---|
primaryStepId |
Birincil (orijinal) adımın Adım Kimliği. Bu adım olabilir. |
multistepNumber |
Her adıma verilen benzersiz sayı. 0(dahil) ile toplam adım sayısı(hariç) arasında değişir. Birincil adım 0'dır. |
primaryStep |
Birincil (orijinal) adımsa sunulur. |
BirincilAdım
Grup ve her adımın sonucu olarak çalıştırılan birden fazla adımın mağaza birleştirme testi durumu.
JSON gösterimi |
---|
{ "rollUp": enum ( |
Alanlar | |
---|---|
rollUp |
Bir grupla aynı yapılandırmayla çalıştırılan birden fazla adımın birleştirme testi durumu. |
individualOutcome[] |
Her bir adımın Adım kimliği ve sonucu. |
Bireysel Sonuç
Aynı yapılandırmaya sahip diğer adımlarla grup olarak çalıştırılan her 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 sayı. 0(dahil) ile toplam adım sayısı(hariç) arasında değişir. Birincil adım 0'dır. |
runDuration |
Bu adımın 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'ı alır. |
|
Belirli bir Yürütme işlemine ilişkin Adımları listeler. |
|
Mevcut bir Adımı sağlanan kısmi varlıkla günceller. |
|
XML dosyalarını mevcut bir adıma yayınlayın. |