REST Resource: projects.histories.executions.steps

منبع: گام

یک Step یک عملیات واحد را نشان می دهد که به عنوان بخشی از Execution انجام می شود. می توان از یک مرحله برای نمایش اجرای یک ابزار استفاده کرد (به عنوان مثال اجرای اجرای آزمایشی یا اجرای یک کامپایلر).

مراحل ممکن است همپوشانی داشته باشند (مثلاً اگر برخی از عملیات ها به صورت موازی انجام شوند، ممکن است دو مرحله زمان شروع یکسانی داشته باشند).

در اینجا یک مثال است، بیایید در نظر بگیریم که ما یک ساخت پیوسته داریم که در حال اجرای یک تست اجرا برای هر تکرار است. گردش کار به این صورت است: - کاربر یک Execution با شناسه 1 ایجاد می کند - کاربر یک TestExecutionStep با شناسه 100 برای Execution 1 ایجاد می کند - کاربر TestExecutionStep را با شناسه 100 به روز می کند تا یک گزارش xml خام اضافه کند + سرویس گزارش های xml را تجزیه می کند و یک TestExecutionSte برمی گرداند. Test Result(های) به روز شد. - کاربر وضعیت TestExecutionStep را با شناسه 100 به COMPLETE به روز می کند

یک Step را می توان تا زمانی که حالت آن روی COMPLETE تنظیم شود، به روز کرد که در آن نقاط تغییر ناپذیر می شود.

نمایندگی JSON
{
  "stepId": string,
  "creationTime": {
    object (Timestamp)
  },
  "completionTime": {
    object (Timestamp)
  },
  "name": string,
  "description": string,
  "state": enum (State),
  "outcome": {
    object (Outcome)
  },
  "hasImages": boolean,
  "labels": {
    string: string,
    ...
  },
  "dimensionValue": {
    string: string,
    ...
  },
  "runDuration": {
    object (Duration)
  },
  "deviceUsageDuration": {
    object (Duration)
  },
  "multiStep": {
    object (MultiStep)
  },

  // Union field step can be only one of the following:
  "testExecutionStep": {
    object (TestExecutionStep)
  },
  "toolExecutionStep": {
    object (ToolExecutionStep)
  }
  // End of list of possible types for union field step.
}
زمینه های
stepId

string

یک شناسه منحصر به فرد در یک Execution برای این مرحله.

اگر این فیلد توسط تماس‌گیرنده تنظیم یا بازنویسی شود، INVALID_ARGUMENT را برمی‌گرداند.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد/به‌روزرسانی: هرگز تنظیم نشود
creationTime

object ( Timestamp )

زمانی که مرحله ایجاد شد.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد/به‌روزرسانی: هرگز تنظیم نشود
completionTime

object ( Timestamp )

زمانی که وضعیت مرحله برای تکمیل تنظیم شد.

هنگامی که حالت به COMPLETE تغییر می کند، این مقدار به طور خودکار تنظیم می شود.

  • در پاسخ: اگر حالت اجرا کامل باشد تنظیم کنید.
  • در درخواست ایجاد/به‌روزرسانی: هرگز تنظیم نشود
name

string

یک نام کوتاه قابل خواندن برای انسان برای نمایش در UI. حداکثر 100 کاراکتر به عنوان مثال: ساخت تمیز

یک PRECONDITION_FAILED پس از ایجاد یک مرحله جدید، اگر نام و dimensionValue خود را با یک مرحله موجود به اشتراک بگذارد، برگردانده می‌شود. اگر دو مرحله نشان دهنده یک عمل مشابه هستند، اما مقادیر ابعاد متفاوتی دارند، باید نام یکسانی داشته باشند. به عنوان مثال، اگر مجموعه آزمایش های یکسانی روی دو پلتفرم مختلف اجرا شود، دو مرحله باید یک نام داشته باشند.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد: همیشه تنظیم شود
  • در درخواست به روز رسانی: هرگز تنظیم نشده است
description

string

توضیحاتی در مورد این ابزار برای مثال: mvn clean package -D skipTests=true

  • در پاسخ: اگر با درخواست ایجاد/به‌روزرسانی تنظیم شده باشد، ارائه شود
  • در درخواست ایجاد/به‌روزرسانی: اختیاری
state

enum ( State )

حالت اولیه IN_PROGRESS است. تنها انتقال حالت قانونی * IN_PROGRESS -> COMPLETE است

در صورت درخواست انتقال نامعتبر، یک PRECONDITION_FAILED برگردانده خواهد شد.

ایجاد مرحله با حالت تنظیم شده روی COMPLETE معتبر است. حالت را فقط یک بار می توان روی COMPLETE تنظیم کرد. اگر حالت چند بار روی COMPLETE تنظیم شود، یک PRECONDITION_FAILED برگردانده می‌شود.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد/به‌روزرسانی: اختیاری
outcome

object ( Outcome )

طبقه بندی نتیجه، به عنوان مثال به SUCCESS یا FAILURE

  • در پاسخ: اگر با درخواست ایجاد/به‌روزرسانی تنظیم شده باشد، ارائه شود
  • در درخواست ایجاد/به‌روزرسانی: اختیاری
hasImages

boolean

آیا هر یک از خروجی های این مرحله تصاویری هستند که می توان تصاویر کوچک آنها را با thumbnails.list واکشی کرد.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد/به‌روزرسانی: هرگز تنظیم نشود
labels

map (key: string, value: string)

جفت های کلید/مقدار دلخواه ارائه شده توسط کاربر که با مرحله مرتبط هستند.

کاربران مسئول مدیریت فضای نام کلید هستند تا کلیدها تصادفاً با هم برخورد نکنند.

اگر تعداد برچسب‌ها از 100 بیشتر باشد یا طول هر یک از کلیدها یا مقادیر از 100 کاراکتر بیشتر شود، یک INVALID_ARGUMENT برگردانده می‌شود.

  • در پاسخ: همیشه تنظیم کنید
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: اختیاری. هر جفت کلید/مقدار جدید به نقشه اضافه می شود و هر مقدار جدید برای یک کلید موجود، مقدار آن کلید را به روز می کند.

یک شی حاوی لیستی از "key": value . مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

dimensionValue

map (key: string, value: string)

اگر اجرای حاوی این مرحله دارای مجموعه dimension_definition باشد، این فیلد به فرزند اجازه می دهد تا مقادیر ابعاد را مشخص کند.

کلیدها باید دقیقاً با dimension_definition اجرا مطابقت داشته باشند.

به عنوان مثال، اگر اجرا دارای dimension_definition = ['attempt', 'device'] باشد، یک مرحله باید مقادیری را برای آن ابعاد تعریف کند، به عنوان مثال. dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

اگر مرحله ای در یک بعد ماتریس شرکت نمی کند، مقدار آن بعد باید رشته خالی باشد. برای مثال، اگر یکی از آزمایش‌ها توسط اجراکننده‌ای اجرا شود که از تلاش‌های مجدد پشتیبانی نمی‌کند، این مرحله می‌تواند دارای dimensionValue = ['attempt': '', 'device': 'Nexus 6']

اگر مرحله در هیچ یک از ابعاد ماتریس شرکت نکند، ممکن است dimensionValue را تنظیم نشده باقی بگذارد.

اگر هر یک از کلیدها در dimension_definition اجرا وجود نداشته باشد، یک PRECONDITION_FAILED برگردانده خواهد شد.

یک PRECONDITION_FAILED برگردانده می‌شود اگر مرحله دیگری در این اجرا قبلاً همان نام و dimensionValue را داشته باشد، اما در سایر فیلدهای داده متفاوت باشد، برای مثال، فیلد مرحله متفاوت است.

اگر dimensionValue تنظیم شده باشد، یک PRECONDITION_FAILED برگردانده می شود، و یک dimension_definition در اجرا وجود دارد که به عنوان یکی از کلیدها مشخص نشده است.

  • در پاسخ: اگر با ایجاد تنظیم شود، ارائه شود
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: هرگز تنظیم نشده است

یک شی حاوی لیستی از "key": value . مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

runDuration

object ( Duration )

چقدر طول کشید تا این مرحله اجرا شود.

اگر تنظیم نشده باشد، زمانی که مرحله روی حالت COMPLETE تنظیم شده باشد، این مقدار روی تفاوت بین createTime و completionTime تنظیم می شود. در برخی موارد، مناسب است که این مقدار را جداگانه تنظیم کنید: به عنوان مثال، اگر یک مرحله ایجاد شود، اما عملیاتی که نشان می دهد برای چند دقیقه قبل از اجرای آن در صف قرار می گیرد، مناسب است که زمان صرف شده در صف را در آن لحاظ نکنید. مدت زمان اجرا

اگر فردی بخواهد یک runDuration را در مرحله ای که قبلاً دارای این فیلد تنظیم شده است تنظیم کند PRECONDITION_FAILED برگردانده می شود.

  • در پاسخ: اگر قبلا تنظیم شده باشد. همیشه در مرحله COMPLETE حضور داشته باشید
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: اختیاری
deviceUsageDuration

object ( Duration )

چه مقدار از منبع دستگاه برای انجام آزمایش استفاده می شود.

این میزان استفاده دستگاهی است که برای صورت‌حساب استفاده می‌شود، که با مدت زمان اجرا متفاوت است، برای مثال، خرابی زیرساخت برای استفاده از دستگاه هزینه‌ای دریافت نمی‌کند.

اگر فردی سعی کند یک device_usage را در مرحله ای که قبلاً این فیلد را تنظیم کرده است تنظیم کند PRECONDITION_FAILED برگردانده می شود.

  • در پاسخ: اگر قبلا تنظیم شده باشد.
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: اختیاری
multiStep

object ( MultiStep )

جزئیات زمانی که چندین مرحله با همان پیکربندی به عنوان یک گروه اجرا می شود. از این جزئیات می توان برای شناسایی گروهی که این مرحله بخشی است استفاده کرد. همچنین گروه های "گام اولیه" را که تمام اعضای گروه را نمایه می کند، شناسایی می کند.

  • در پاسخ: اگر قبلا تنظیم شده باشد.
  • در درخواست ایجاد: اختیاری، تنظیم کنید که این مرحله بیش از یک بار انجام شود.
  • در درخواست به روز رسانی: اختیاری

step میدانی اتحادیه .

step می تواند تنها یکی از موارد زیر باشد:

testExecutionStep

object ( TestExecutionStep )

اجرای یک دونده آزمایشی.

toolExecutionStep

object ( ToolExecutionStep )

اجرای یک ابزار (برای مراحلی که به صراحت از آن پشتیبانی نمی کنیم استفاده می شود).

TestExecutionStep

مرحله ای که نشان دهنده تست های در حال اجرا است.

این فایل‌های xml ant-junit را می‌پذیرد که توسط سرویس در نتایج تست ساختاریافته تجزیه می‌شوند. مسیرهای فایل Xml برای اضافه کردن فایل‌های بیشتر به‌روزرسانی می‌شوند، اما نمی‌توان آنها را حذف کرد.

کاربران همچنین می توانند با استفاده از فیلد test_result نتایج آزمایش را به صورت دستی اضافه کنند.

نمایندگی JSON
{
  "testSuiteOverviews": [
    {
      object (TestSuiteOverview)
    }
  ],
  "toolExecution": {
    object (ToolExecution)
  },
  "testIssues": [
    {
      object (TestIssue)
    }
  ],
  "testTiming": {
    object (TestTiming)
  }
}
زمینه های
testSuiteOverviews[]

object ( TestSuiteOverview )

فهرست محتویات مرور کلی مجموعه آزمایشی. این را می توان از گزارش xUnit XML توسط سرور تجزیه کرد یا مستقیماً توسط کاربر آپلود کرد. این مراجع فقط باید زمانی فراخوانی شوند که مجموعه های آزمایشی به طور کامل تجزیه یا آپلود شوند.

حداکثر تعداد مجاز بازبینی مجموعه آزمایشی در هر مرحله 1000 است.

  • در پاسخ: همیشه تنظیم کنید
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: هرگز (به جای آن از روش سفارشی publicXunitXmlFiles استفاده کنید)
toolExecution

object ( ToolExecution )

اجرای دونده آزمایشی را نشان می دهد.

کد خروج از این ابزار برای تشخیص موفقیت آمیز بودن آزمون استفاده خواهد شد.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد/به‌روزرسانی: اختیاری
testIssues[]

object ( TestIssue )

موارد مشاهده شده در حین اجرای آزمون

به عنوان مثال، اگر برنامه تلفن همراه تحت آزمایش در حین آزمایش از کار بیفتد، پیام خطا و محتوای ردیابی پشته را می توان در اینجا برای کمک به اشکال زدایی ضبط کرد.

  • در پاسخ: در صورت تنظیم توسط ایجاد یا به‌روزرسانی، ارائه شود
  • در درخواست ایجاد/به‌روزرسانی: اختیاری
testTiming

object ( TestTiming )

شکست زمان اجرای آزمون.

  • در پاسخ: در صورت تنظیم توسط ایجاد یا به‌روزرسانی، ارائه شود
  • در درخواست ایجاد/به‌روزرسانی: اختیاری

اجرای ابزار

اجرای یک ابزار دلخواه این می تواند یک اجرای آزمایشی یا ابزاری باشد که مصنوعات را کپی می کند یا کد را به کار می گیرد.

نمایندگی JSON
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
زمینه های
commandLineArguments[]

string

خط فرمان کامل توکن شده شامل نام برنامه (معادل argv در برنامه C).

  • در پاسخ: اگر با درخواست ایجاد تنظیم شود، ارائه شود
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: هرگز تنظیم نشده است
toolLogs[]

object ( FileReference )

ارجاع به هر سیاهههای مربوط به متن ساده، خروجی اجرای ابزار است.

این فیلد را می توان قبل از خروج ابزار تنظیم کرد تا بتوان در حین اجرای ابزار به نمای زنده از گزارش ها دسترسی داشت.

حداکثر تعداد مجاز لاگ ابزار در هر مرحله 1000 است.

  • در پاسخ: اگر با درخواست ایجاد/به‌روزرسانی تنظیم شده باشد، ارائه شود
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: اختیاری است، هر مقدار ارائه شده به لیست موجود اضافه می شود
exitCode

object ( ToolExitCode )

کد خروجی اجرای ابزار. این فیلد پس از خروج ابزار تنظیم می شود.

  • در پاسخ: اگر با درخواست ایجاد/به‌روزرسانی تنظیم شده باشد، ارائه شود
  • در ایجاد درخواست: اختیاری
  • در درخواست به‌روزرسانی: اختیاری، اگر exitCode از قبل تنظیم شده باشد، یک خطای FAILED_PRECONDITION برگردانده می‌شود.
toolOutputs[]

object ( ToolOutputReference )

ارجاع به فایل های مات با هر فرمتی که توسط اجرای ابزار تولید می شود.

حداکثر تعداد مجاز خروجی ابزار در هر مرحله 1000 است.

  • در پاسخ: اگر با درخواست ایجاد/به‌روزرسانی تنظیم شده باشد، ارائه شود
  • در ایجاد درخواست: اختیاری
  • در درخواست به روز رسانی: اختیاری است، هر مقدار ارائه شده به لیست موجود اضافه می شود

ToolExitCode

خروج کد از اجرای ابزار

نمایندگی JSON
{
  "number": integer
}
زمینه های
number

integer

کد خروجی اجرای ابزار. مقدار 0 به معنای موفقیت آمیز بودن اجراست.

  • در پاسخ: همیشه تنظیم کنید
  • در درخواست ایجاد/به‌روزرسانی: همیشه تنظیم شود

موضوع تست

مشکلی که در حین اجرای آزمایش رخ می دهد شناسایی شده است.

نمایندگی JSON
{
  "errorMessage": string,
  "stackTrace": {
    object (StackTrace)
  },
  "warning": {
    object (Any)
  },
  "severity": enum (Severity),
  "type": enum (Type),
  "category": enum (Category)
}
زمینه های
errorMessage

string

یک پیام کوتاه قابل خواندن برای انسان که این موضوع را توصیف می کند. ضروری.

stackTrace
(deprecated)

object ( StackTrace )

منسوخ شده به نفع پشته ردیابی فیلدها در داخل هشدارهای خاص.

warning

object ( Any )

پیام اخطار با جزئیات بیشتر در مورد موضوع. همیشه باید پیامی از com.google.devtools.toolresults.v1.warnings باشد

severity

enum ( Severity )

شدت موضوع ضروری.

type

enum ( Type )

نوع موضوع ضروری.

category

enum ( Category )

دسته بندی موضوع. ضروری.

هر

Any حاوی یک پیام بافر پروتکل سریالی دلخواه به همراه یک URL است که نوع پیام سریال شده را توصیف می کند.

کتابخانه Protobuf برای بسته‌بندی/باز کردن هر مقدار به شکل توابع ابزار یا روش‌های تولید اضافی از هر نوع پشتیبانی می‌کند.

مثال 1: بسته بندی و باز کردن یک پیام در C++.

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

مثال 2: بسته بندی و باز کردن یک پیام در جاوا.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}

مثال 3: بسته بندی و باز کردن یک پیام در پایتون.

foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...

مثال 4: بسته بندی و باز کردن یک پیام در Go

 foo := &pb.Foo{...}
 any, err := ptypes.MarshalAny(foo)
 ...
 foo := &pb.Foo{}
 if err := ptypes.UnmarshalAny(any, foo); err != nil {
   ...
 }

روش‌های بسته ارائه‌شده توسط کتابخانه protobuf به‌طور پیش‌فرض از «type.googleapis.com/full.type.name» به‌عنوان URL نوع استفاده می‌کنند و روش‌های باز کردن بسته‌بندی فقط از نام نوع کاملاً واجد شرایط پس از آخرین «/» در URL نوع استفاده می‌کنند. به عنوان مثال "foo.bar.com/x/yz" نام نوع "yz" را به دست می دهد.

JSON

نمایش JSON از یک مقدار Any از نمایش منظم پیام جاسازی‌شده و deserialized با یک فیلد اضافی @type که حاوی URL نوع است استفاده می‌کند. مثال:

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}

{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

اگر نوع پیام جاسازی شده شناخته شده باشد و دارای یک نمایش JSON سفارشی باشد، آن نمایش با افزودن یک value فیلدی که JSON سفارشی را علاوه بر فیلد @type نگه می‌دارد، جاسازی می‌شود. مثال (برای پیام google.protobuf.Duration ):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
نمایندگی JSON
{
  "typeUrl": string,
  "value": string
}
زمینه های
typeUrl

string

یک URL/نام منبع که به طور منحصر به فرد نوع پیام بافر پروتکل سریالی را مشخص می کند. این رشته باید حداقل یک کاراکتر "/" داشته باشد. آخرین بخش از مسیر URL باید نشان دهنده نام کاملاً واجد شرایط نوع باشد (مانند path/google.protobuf.Duration ). نام باید به شکل متعارف باشد (به عنوان مثال، "." قابل قبول نیست).

در عمل، تیم ها معمولاً همه انواعی را که انتظار دارند در زمینه Any از آن استفاده کند، در باینری از پیش کامپایل می کنند. با این حال، برای نشانی‌های اینترنتی که از طرح http ، https ، یا بدون طرح استفاده می‌کنند، می‌توان به صورت اختیاری یک نوع سرور راه‌اندازی کرد که آدرس‌های نوع URL را به تعاریف پیام به صورت زیر نگاشت می‌کند:

  • اگر هیچ طرحی ارائه نشود، https فرض می شود.
  • یک HTTP GET در URL باید یک مقدار google.protobuf.Type در قالب باینری ایجاد کند یا خطا ایجاد کند.
  • برنامه‌ها اجازه دارند نتایج جستجو را بر اساس URL ذخیره کنند یا آنها را از قبل در یک باینری کامپایل کنند تا از هرگونه جستجو جلوگیری شود. بنابراین، سازگاری باینری باید در تغییرات انواع حفظ شود. (از نام های نوع نسخه شده برای مدیریت تغییرات شکسته استفاده کنید.)

توجه: این قابلیت در حال حاضر در نسخه رسمی پروتوباف موجود نیست و برای نوع URL هایی که با type.googleapis.com شروع می شوند استفاده نمی شود.

طرح‌هایی غیر از http ، https (یا طرح خالی) ممکن است با معنایی خاص پیاده‌سازی استفاده شوند.

value

string ( bytes format)

باید یک بافر پروتکل سریالی معتبر از نوع مشخص شده بالا باشد.

رشته ای با کد base64.

شدت

شدت مسائل

Enums
unspecifiedSeverity شدت نامشخص پیش فرض استفاده نکن. فقط برای نسخه سازی
info مشکل غیر مهم، ارائه اطلاعاتی در مورد اجرای آزمایشی به کاربران.
suggestion مشکل غیر مهم، ارائه برخی نکات به کاربران در مورد بهبود تجربه آزمایشی آنها، به عنوان مثال، پیشنهاد استفاده از Game Loops.
warning موضوع بالقوه بحرانی
severe مسئله حیاتی.

تایپ کنید

انواع مسائل.

Enums
unspecifiedType نوع پیش فرض نامشخص استفاده نکن. فقط برای نسخه سازی
fatalException موضوع یک استثناء مهلک است.
nativeCrash مشکل یک تصادف بومی است.
anr مشکل خرابی ANR است.
unusedRoboDirective مشکل یک دستورالعمل Robo استفاده نشده است.
compatibleWithOrchestrator Issue پیشنهادی برای استفاده از ارکستراتور است.
launcherActivityNotFound مشکل پیدا کردن یک فعالیت پرتاب کننده
startActivityNotFound مشکل در حل یک قصد ارائه شده توسط کاربر برای شروع یک فعالیت
incompleteRoboScriptExecution یک اسکریپت Robo به طور کامل اجرا نشد.
completeRoboScriptExecution یک اسکریپت Robo به طور کامل و با موفقیت اجرا شد.
failedToInstall APK نصب نشد.
nonSdkApiUsageViolation برنامه به Api غیر SDK دسترسی پیدا کرد.
nonSdkApiUsageReport برنامه به Api غیر sdk دسترسی پیدا کرد (گزارش دقیق جدید)
encounteredNonAndroidUiWidgetScreen Robo crawl حداقل با یک صفحه با عناصری مواجه شد که ویجت‌های رابط کاربری Android نیستند.
encounteredLoginScreen Robo crawl حداقل با یک صفحه ورود احتمالی مواجه شد.
performedGoogleLogin Robo با Google وارد شد.
iosException برنامه iOS با یک استثنا از کار افتاد.
iosCrash برنامه iOS بدون استثنا از کار افتاد (مثلاً کشته شد).
performedMonkeyActions خزیدن Robo شامل انجام برخی اقدامات میمونی بود.
usedRoboDirective Robo crawl از دستورالعمل Robo استفاده می کند.
usedRoboIgnoreDirective Robo crawl از دستور Robo برای نادیده گرفتن عنصر UI استفاده کرد.
insufficientCoverage Robo برخی از بخش‌های بالقوه مهم برنامه را نمی‌خزد.
inAppPurchases خزیدن Robo شامل برخی از خریدهای درون برنامه ای بود.
crashDialogError گفتگوی خرابی در طول اجرای آزمایش شناسایی شد
uiElementsTooDeep عمق عنصر UI بیشتر از آستانه است
blankScreen صفحه خالی در خزیدن Robo یافت می شود
overlappingUiElements عناصر UI همپوشانی در خزیدن Robo یافت می شوند
unityException یک استثنای Unity کشف نشده است (این برنامه‌ها خراب نمی‌شوند).
deviceOutOfMemory دستگاه در حال اتمام حافظه شناسایی شد
logcatCollectionError مشکلات شناسایی شده در هنگام جمع آوری logcat
detectedAppSplashScreen Robo یک صفحه نمایش اسپلش ارائه شده توسط برنامه (در مقابل صفحه نمایش اسپلش سیستم عامل Android) را شناسایی کرد.

دسته بندی

دسته بندی مسائل.

Enums
unspecifiedCategory دسته بندی نامشخص پیش فرض استفاده نکن. فقط برای نسخه سازی
common مشکل مربوط به یک نوع آزمایش خاص (مثلاً یک تصادف بومی) نیست.
robo مشکل مخصوص Robo run است.

زمان تست

زمان بندی تست برای شناخت مراحل تجزیه می شود.

نمایندگی JSON
{
  "testProcessDuration": {
    object (Duration)
  }
}
زمینه های
testProcessDuration

object ( Duration )

چقدر طول کشید تا فرآیند تست اجرا شود.

  • در پاسخ: اگر قبلا تنظیم شده باشد.
  • در درخواست ایجاد/به‌روزرسانی: اختیاری

ToolExecutionStep

مرحله ابزار عمومی برای استفاده برای باینری‌ها که به صراحت از آن پشتیبانی نمی‌کنیم. به عنوان مثال: اجرای cp برای کپی کردن مصنوعات از یک مکان به مکان دیگر.

نمایندگی JSON
{
  "toolExecution": {
    object (ToolExecution)
  }
}
زمینه های
toolExecution

object ( ToolExecution )

اجرای ابزار

  • در پاسخ: اگر با درخواست ایجاد/به‌روزرسانی تنظیم شده باشد، ارائه شود
  • در درخواست ایجاد/به‌روزرسانی: اختیاری

چند مرحله ای

جزئیات زمانی که چندین مرحله با همان پیکربندی به عنوان یک گروه اجرا می شود.

نمایندگی JSON
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
زمینه های
primaryStepId

string

شناسه مرحله اولیه (اصلی)، که ممکن است این مرحله باشد.

multistepNumber

integer

بینش منحصر به فرد داده شده به هر مرحله. محدوده از 0 (شامل) تا تعداد کل مراحل (انحصاری). مرحله اولیه 0 است.

primaryStep

object ( PrimaryStep )

اگر مرحله اولیه (اصلی) است، ارائه دهید.

مرحله اولیه

وضعیت آزمایش جمع‌آوری چندین مرحله را که به صورت گروهی اجرا شده‌اند و نتیجه هر مرحله جداگانه را ذخیره می‌کند.

نمایندگی JSON
{
  "rollUp": enum (OutcomeSummary),
  "individualOutcome": [
    {
      object (IndividualOutcome)
    }
  ]
}
زمینه های
rollUp

enum ( OutcomeSummary )

وضعیت آزمایش جمع‌آوری چندین مرحله که با پیکربندی یکسانی به عنوان یک گروه اجرا شده‌اند.

individualOutcome[]

object ( IndividualOutcome )

شناسه مرحله و نتیجه هر مرحله جداگانه.

نتیجه فردی

شناسه مرحله و نتیجه هر مرحله جداگانه که به صورت گروهی با مراحل دیگر با همان پیکربندی اجرا شد.

نمایندگی JSON
{
  "stepId": string,
  "outcomeSummary": enum (OutcomeSummary),
  "multistepNumber": integer,
  "runDuration": {
    object (Duration)
  }
}
زمینه های
stepId

string

outcomeSummary

enum ( OutcomeSummary )

multistepNumber

integer

بینش منحصر به فرد داده شده به هر مرحله. محدوده از 0 (شامل) تا تعداد کل مراحل (انحصاری). مرحله اولیه 0 است.

runDuration

object ( Duration )

چقدر طول کشید تا این مرحله اجرا شود.

مواد و روش ها

accessibilityClusters

خوشه های دسترسی را برای یک مرحله معین فهرست می کند

ممکن است هر یک از کدهای خطای متعارف زیر را برگرداند:

  • PERMISSION_DENIED - اگر کاربر مجاز به خواندن پروژه نباشد
  • INVALID_ARGUMENT - اگر درخواست بد شکل باشد
  • FAILED_PRECONDITION - اگر آرگومان موجود در درخواست نامعتبر باشد. به عنوان مثال

create

یک مرحله ایجاد می کند.

get

یک قدم می گیرد.

getPerfMetricsSummary

PerfMetricsSummary را بازیابی می کند.

list

مراحل را برای یک اجرای معین فهرست می کند.

patch

یک مرحله موجود را با موجودیت جزئی ارائه شده به روز می کند.

publishXunitXmlFiles

فایل های xml را در مرحله موجود منتشر کنید.