REST Resource: projects.testMatrices

منبع: TestMatrix

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

نمایندگی JSON
{
  "testMatrixId": string,
  "projectId": string,
  "clientInfo": {
    object (ClientInfo)
  },
  "testSpecification": {
    object (TestSpecification)
  },
  "environmentMatrix": {
    object (EnvironmentMatrix)
  },
  "testExecutions": [
    {
      object (TestExecution)
    }
  ],
  "resultStorage": {
    object (ResultStorage)
  },
  "state": enum (TestState),
  "timestamp": string,
  "invalidMatrixDetails": enum (InvalidMatrixDetails),
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
زمینه های
testMatrixId

string

فقط خروجی شناسه منحصر به فرد توسط سرویس تنظیم شده است.

projectId

string

پروژه ابری که مالک ماتریس آزمایشی است.

clientInfo

object ( ClientInfo )

اطلاعات در مورد مشتری که آزمون را فراخوانی کرده است.

testSpecification

object ( TestSpecification )

ضروری. نحوه اجرای آزمون

environmentMatrix

object ( EnvironmentMatrix )

ضروری. دستگاه هایی که آزمایش ها روی آنها اجرا می شود.

testExecutions[]

object ( TestExecution )

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

resultStorage

object ( ResultStorage )

ضروری. جایی که نتایج برای ماتریس نوشته می شود.

state

enum ( TestState )

فقط خروجی پیشرفت فعلی ماتریس تست را نشان می دهد.

timestamp

string ( Timestamp format)

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

مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثال‌ها: "2014-10-02T15:01:23Z" و "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

فقط خروجی توضیح می دهد که چرا ماتریس نامعتبر در نظر گرفته می شود. فقط برای ماتریس هایی در حالت INVALID مفید است.

flakyTestAttempts

integer

تعداد دفعاتی که یک TestExecution باید دوباره امتحان شود اگر یک یا چند مورد تست آن به هر دلیلی شکست بخورد. حداکثر تعداد تکرار مجاز 10 عدد است.

پیش‌فرض 0 است که به معنای عدم اجرای مجدد است.

outcomeSummary

enum ( OutcomeSummary )

فقط خروجی نتیجه کلی آزمون. فقط زمانی تنظیم کنید که وضعیت ماتریس آزمایشی FINISHED باشد.

failFast

boolean

اگر درست باشد، حداکثر تنها یک تلاش برای اجرای هر اجرا/شارد در ماتریس انجام خواهد شد. تلاش های تست پوسته پوسته تحت تاثیر قرار نمی گیرند.

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

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

ClientInfo

اطلاعات در مورد مشتری که آزمون را فراخوانی کرده است.

نمایندگی JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
زمینه های
name

string

ضروری. نام مشتری، مانند gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

لیست اطلاعات دقیق در مورد مشتری

ClientInfoDetail

جفت کلید-مقدار اطلاعات دقیق در مورد مشتری که آزمایش را فراخوانی کرده است. مثال‌ها: {'Version', '1.0'}, {'Release Track', 'BETA'}.

نمایندگی JSON
{
  "key": string,
  "value": string
}
زمینه های
key

string

ضروری. کلید اطلاعات دقیق مشتری

value

string

ضروری. ارزش اطلاعات دقیق مشتری

TestSpecification

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

نمایندگی JSON
{
  "testTimeout": string,
  "disableVideoRecording": boolean,
  "disablePerformanceMetrics": boolean,

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

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

string ( Duration format)

حداکثر زمانی که اجرای آزمایشی قبل از لغو خودکار مجاز است اجرا شود. مقدار پیش فرض 5 دقیقه است.

مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' s ' ختم می شود. مثال: "3.5s" .

disableVideoRecording

boolean

ضبط ویدیو را غیرفعال می کند. ممکن است تاخیر تست را کاهش دهد.

disablePerformanceMetrics

boolean

ضبط معیارهای عملکرد را غیرفعال می کند. ممکن است تاخیر تست را کاهش دهد.

setup میدان اتحادیه الزامات راه اندازی تست setup تنها می تواند یکی از موارد زیر باشد:
testSetup

object ( TestSetup )

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

iosTestSetup

object ( IosTestSetup )

تست تنظیمات مورد نیاز برای iOS.

test میدانی اتحادیه ضروری. نوع آزمونی که باید اجرا شود. test فقط می تواند یکی از موارد زیر باشد:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

تست ابزار دقیق اندروید.

androidRoboTest

object ( AndroidRoboTest )

تست روبو اندروید.

androidTestLoop

object ( AndroidTestLoop )

یک برنامه اندروید با حلقه تست.

iosXcTest

object ( IosXcTest )

یک iOS XCTest، از طریق یک فایل xctestrun.

iosTestLoop

object ( IosTestLoop )

یک برنامه iOS با حلقه تست.

TestSetup

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

نمایندگی JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
زمینه های
filesToPush[]

object ( DeviceFile )

لیست فایل هایی که باید قبل از شروع آزمایش به دستگاه فشار دهید.

directoriesToPull[]

string

فهرست دایرکتوری‌های دستگاه برای آپلود در GCS در پایان آزمایش؛ آنها باید مسیرهای مطلق تحت /sdcard، /storage یا /data/local/tmp باشند. نام مسیرها به کاراکترهای AZ 0-9 _ - محدود شده است. + و /

توجه: مسیرهای /sdcard و /data در دسترس خواهند بود و به عنوان جایگزین مسیر ضمنی در نظر گرفته می شوند. به عنوان مثال، اگر /sdcard در یک دستگاه خاص به حافظه خارجی نگاشت نشود، سیستم آن را با پیشوند مسیر ذخیره سازی خارجی برای آن دستگاه جایگزین می کند.

additionalApks[]

object ( Apk )

APKهایی که باید نصب شوند علاوه بر آنهایی که مستقیماً آزمایش می شوند. در حال حاضر سقف 100 است.

account

object ( Account )

دستگاه در طول مدت آزمایش با این حساب وارد می شود.

networkProfile

string

نمایه ترافیک شبکه مورد استفاده برای اجرای آزمایش. هنگام فراخوانی TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog، می توان نمایه های شبکه موجود را با استفاده از نوع محیط NETWORK_CONFIGURATION جستجو کرد.

environmentVariables[]

object ( EnvironmentVariable )

متغیرهای محیطی برای تنظیم برای آزمایش (فقط برای آزمایش‌های ابزار دقیق قابل استفاده است).

systrace
(deprecated)

object ( SystraceSetup )

پیکربندی Systrace برای اجرا. منسوخ شده: Systrace از Python 2 استفاده کرد که در 01-01-2020 غروب شد. Systrace دیگر در Cloud Testing API پشتیبانی نمی‌شود و هیچ فایل Systrace در نتایج ارائه نخواهد شد.

dontAutograntPermissions

boolean

آیا برای جلوگیری از اعطای همه مجوزهای زمان اجرا هنگام نصب برنامه

DeviceFile

شرح فایل تک دستگاه.

نمایندگی JSON
{

  // 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.
}
زمینه های
فیلد اتحادیه device_file . ضروری. device_file فقط می تواند یکی از موارد زیر باشد:
obbFile

object ( ObbFile )

ارجاع به یک فایل باینری blob مات.

regularFile

object ( RegularFile )

ارجاع به یک فایل معمولی

ObbFile

یک فایل باینری blob مات برای نصب روی دستگاه قبل از شروع آزمایش.

نمایندگی JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
زمینه های
obbFileName

string

ضروری. نام فایل OBB که باید با فرمت مشخص شده توسط Android مطابقت داشته باشد، به عنوان مثال [main|patch].0300110.com.example.android.obb که در <shared-storage>/Android/obb/<package-name>/ نصب خواهد شد. روی دستگاه

obb

object ( FileReference )

ضروری. فایل(های) مات باینری Blob (OBB) برای نصب روی دستگاه.

مرجع فایل

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

نمایندگی JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
زمینه های
file فیلد اتحادیه ضروری. مرجع فایل file فقط می تواند یکی از موارد زیر باشد:
gcsPath

string

مسیری به یک فایل در Google Cloud Storage. به عنوان مثال: gs://build-app-1414623860166/app%40debug-unaligned.apk انتظار می رود این مسیرها دارای url کدگذاری شوند (درصد رمزگذاری)

RegularFile

فایل یا دایرکتوری برای نصب روی دستگاه قبل از شروع آزمایش.

نمایندگی JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
زمینه های
content

object ( FileReference )

ضروری. فایل منبع

devicePath

string

ضروری. محل قرار دادن محتوا در دستگاه باید یک مسیر مطلق و مجاز باشد. در صورت وجود فایل، جایگزین خواهد شد. دایرکتوری های سمت دستگاه زیر و هر یک از زیر شاخه های آنها در لیست مجاز هستند:

${EXTERNAL_STORAGE}، /sdcard، یا /storage

${ANDROID_DATA}/local/tmp، یا /data/local/tmp

تعیین مسیر خارج از این درختان فهرست نامعتبر است.

مسیرهای /sdcard و /data در دسترس قرار می گیرند و به عنوان جایگزین مسیر ضمنی در نظر گرفته می شوند. به عنوان مثال، اگر /sdcard در یک دستگاه خاص به حافظه خارجی نگاشت، سیستم آن را با پیشوند مسیر ذخیره سازی خارجی برای آن دستگاه جایگزین می کند و فایل را در آنجا کپی می کند.

اکیداً توصیه می‌شود که از Environment API در برنامه و کد آزمایشی برای دسترسی به فایل‌های روی دستگاه به صورت قابل حمل استفاده کنید.

APK

یک فایل بسته اندروید برای نصب.

نمایندگی JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
زمینه های
location

object ( FileReference )

مسیر یک APK که باید قبل از شروع آزمایش روی دستگاه نصب شود.

packageName

string

بسته جاوا برای APK که باید نصب شود. مقدار با بررسی مانیفست برنامه تعیین می شود.

حساب

یک حساب کاربری و نحوه ورود به آن را شناسایی می کند.

نمایندگی JSON
{

  // 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.
}
زمینه های
account_type فیلد اتحادیه ضروری. نوع حساب، بر اساس آنچه برای آن است (مثلاً Google) و مکانیسم ورود آن (مثلاً نام کاربری و رمز عبور). account_type فقط می تواند یکی از موارد زیر باشد:
googleAuto

object ( GoogleAuto )

یک حساب ورود خودکار به گوگل.

GoogleAuto

ورود خودکار حساب Google را فعال می کند. در صورت تنظیم، این سرویس به طور خودکار یک حساب آزمایشی Google ایجاد کرده و آن را قبل از اجرای آزمایش به دستگاه اضافه می کند. توجه داشته باشید که حساب‌های آزمایشی ممکن است دوباره استفاده شوند. هنگامی که یک حساب کاربری در دستگاه وجود دارد، بسیاری از برنامه ها مجموعه کاملی از عملکردهای خود را نشان می دهند. ورود به دستگاه با این حساب های تولید شده امکان آزمایش عملکردهای بیشتری را فراهم می کند.

متغیر محیطی

یک جفت کلید-مقدار به‌عنوان متغیر محیطی به آزمون ارسال شد.

نمایندگی JSON
{
  "key": string,
  "value": string
}
زمینه های
key

string

کلید برای متغیر محیطی

value

string

ارزش برای متغیر محیطی

SystraceSetup

نمایندگی JSON
{
  "durationSeconds": integer
}
زمینه های
durationSeconds
(deprecated)

integer

مدت زمان Systrace در ثانیه. باید بین 1 تا 30 ثانیه باشد. 0 سیستم را غیرفعال می کند.

IosTestSetup

شرح نحوه راه اندازی دستگاه iOS قبل از اجرای آزمایش.

نمایندگی JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
زمینه های
networkProfile

string

نمایه ترافیک شبکه مورد استفاده برای اجرای آزمایش. هنگام فراخوانی TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog، می توان نمایه های شبکه موجود را با استفاده از نوع محیط NETWORK_CONFIGURATION جستجو کرد.

additionalIpas[]

object ( FileReference )

برنامه های iOS برای نصب علاوه بر آنهایی که مستقیماً آزمایش می شوند.

pushFiles[]

object ( IosDeviceFile )

لیست فایل هایی که باید قبل از شروع آزمایش به دستگاه فشار دهید.

pullDirectories[]

object ( IosDeviceFile )

فهرست دایرکتوری‌های موجود در دستگاه برای آپلود در فضای ذخیره‌سازی ابری در پایان آزمایش.

دایرکتوری ها باید یا در یک دایرکتوری مشترک (مانند /private/var/mobile/Media) یا در یک دایرکتوری قابل دسترسی در داخل سیستم فایل برنامه (مانند /Documents) با تعیین شناسه بسته باشند.

IosDeviceFile

فایل یا دایرکتوری برای نصب روی دستگاه قبل از شروع آزمایش.

نمایندگی JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
زمینه های
content

object ( FileReference )

فایل منبع

bundleId

string

شناسه بسته نرم افزاری که این فایل در آن زندگی می کند.

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

devicePath

string

مکان فایل روی دستگاه، در داخل سیستم فایل سندباکس برنامه

AndroidInstrumentationTest

تست یک برنامه اندروید که می تواند یک جزء اندروید را مستقل از چرخه عمر عادی آن کنترل کند. تست‌های ابزار دقیق اندروید یک APK برنامه را اجرا می‌کنند و APK را در همان فرآیند روی یک دستگاه Android مجازی یا فیزیکی آزمایش می‌کنند. آنها همچنین یک کلاس دونده آزمایشی مانند com.google.GoogleTestRunner را مشخص می کنند که می تواند بر اساس چارچوب ابزار دقیق انتخاب شده متفاوت باشد.

برای اطلاعات بیشتر در مورد انواع تست‌های اندروید به https://developer.android.com/training/testing/fundamentals مراجعه کنید.

نمایندگی JSON
{
  "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.
}
زمینه های
testApk

object ( FileReference )

ضروری. APK حاوی کد آزمایشی است که باید اجرا شود.

appPackageId

string

بسته جاوا برای برنامه تحت آزمایش. مقدار پیش فرض با بررسی مانیفست برنامه تعیین می شود.

testPackageId

string

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

testRunnerClass

string

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

testTargets[]

string

هر هدف باید به طور کامل با نام بسته یا نام کلاس، در یکی از این قالب‌ها واجد شرایط باشد:

  • "نام بسته بسته"
  • "class packageName.class_name"
  • "class packageName.class_name#method_name"

اگر خالی باشد، تمام اهداف در ماژول اجرا خواهند شد.

orchestratorOption

enum ( OrchestratorOption )

این گزینه که آیا هر تست را با فراخوانی ابزار دقیق خود با Android Test Orchestrator اجرا کنید یا خیر. ** Orchestrator فقط با AndroidJUnitRunner نسخه 1.1 یا بالاتر سازگار است! ** ارکستراتور مزایای زیر را ارائه می دهد:

  • حالت مشترک وجود ندارد
  • تصادفات جدا شده اند
  • سیاههها در هر آزمون محدوده می شوند

برای اطلاعات بیشتر درباره Android Test Orchestrator به https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator مراجعه کنید.

در صورت عدم تنظیم، آزمون بدون ارکستر اجرا می شود.

shardingOption

object ( ShardingOption )

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

فیلد اتحادیه app_under_test . ضروری. app_under_test می تواند تنها یکی از موارد زیر باشد:
appApk

object ( FileReference )

APK برای برنامه تحت آزمایش.

appBundle

object ( AppBundle )

بسته نرم افزاری چند apk برای برنامه تحت آزمایش.

AppBundle

یک قالب فایل Android App Bundle، حاوی یک فایل BundleConfig.pb، یک فهرست راهنمای ماژول پایه، دایرکتوری‌های ماژول ویژگی پویا صفر یا بیشتر.

برای راهنمایی در مورد ساخت App Bundle به https://developer.android.com/guide/app-bundle/build مراجعه کنید.

نمایندگی JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
زمینه های
bundle زمینه اتحادیه . ضروری. اطلاعات مکان بسته. bundle می تواند تنها یکی از موارد زیر باشد:
bundleLocation

object ( FileReference )

فایل .aab که نشان دهنده بسته نرم افزاری تحت آزمایش است.

OrchestratorOption

نحوه اجرای تست را مشخص می کند.

Enums
ORCHESTRATOR_OPTION_UNSPECIFIED مقدار پیش فرض: سرور حالت را انتخاب می کند. در حال حاضر نشان می دهد که آزمون بدون ارکستر اجرا می شود. در آینده تمامی تست های ساز با ارکستر اجرا خواهد شد. استفاده از ارکستراتور به دلیل تمام مزایایی که ارائه می دهد بسیار تشویق می شود.
USE_ORCHESTRATOR تست را با استفاده از ارکستراتور اجرا کنید. ** فقط با AndroidJUnitRunner نسخه 1.1 یا بالاتر سازگار است! ** توصیه شده.
DO_NOT_USE_ORCHESTRATOR تست را بدون استفاده از ارکستراتور اجرا کنید.

ShardingOption

گزینه هایی برای فعال کردن اشتراک گذاری

نمایندگی JSON
{

  // 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.
}
زمینه های

option فیلد اتحادیه

option فقط می تواند یکی از موارد زیر باشد:

uniformSharding

object ( UniformSharding )

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

manualSharding

object ( ManualSharding )

Shards موارد را در گروه های مشخصی از بسته ها، کلاس ها و/یا متدها آزمایش می کند.

smartSharding

object ( SmartSharding )

تست شارد بر اساس سوابق زمان بندی مورد آزمایش قبلی.

UniformSharding

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

برای تست های ابزار دقیق، به آرگومان های AndroidJUnitRunner "-e numShard" و "-e shardIndex" ترجمه می شود. با فعال بودن اشتراک گذاری یکنواخت، تعیین هر یک از این آرگومان های اشتراک گذاری از طریق environmentVariables نامعتبر است.

بر اساس مکانیسم اشتراک گذاری که AndroidJUnitRunner استفاده می کند، هیچ تضمینی وجود ندارد که کیس های آزمایشی به طور یکنواخت در بین همه خرده ها توزیع شوند.

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

integer

ضروری. تعداد کل خرده‌هایی که باید ایجاد شوند. این همیشه باید یک عدد مثبت باشد که از تعداد کل موارد آزمایش بیشتر نباشد. هنگامی که یک یا چند دستگاه فیزیکی را انتخاب می کنید، تعداد خرده ها باید <= 50 باشد. وقتی یک یا چند دستگاه مجازی ARM را انتخاب می کنید، باید <= 200 باشد. هنگامی که فقط دستگاه های مجازی x86 را انتخاب می کنید، باید <= 500 باشد. .

تقسیم دستی

Shards موارد را در گروه های مشخصی از بسته ها، کلاس ها و/یا متدها آزمایش می کند.

با فعال کردن اشتراک گذاری دستی، تعیین اهداف آزمایشی از طریق محیط متغیر یا در InstrumentationTest نامعتبر است.

نمایندگی JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
زمینه های
testTargetsForShard[]

object ( TestTargetsForShard )

ضروری. گروهی از بسته‌ها، کلاس‌ها و/یا روش‌های آزمایشی که برای هر قطعه ایجاد شده به صورت دستی اجرا می‌شوند. در صورت وجود این فیلد، باید حداقل یک قطعه را مشخص کنید. هنگامی که یک یا چند دستگاه فیزیکی را انتخاب می کنید، تعداد تست های تکراریTargetsForShard باید <= 50 باشد. هنگامی که یک یا چند دستگاه مجازی ARM را انتخاب می کنید، باید <= 200 باشد. هنگامی که فقط دستگاه های مجازی x86 را انتخاب می کنید، باید <= باشد. 500.

TestTargetsForShard

آزمایش اهداف برای یک قطعه

نمایندگی JSON
{
  "testTargets": [
    string
  ]
}
زمینه های
testTargets[]

string

گروهی از بسته‌ها، کلاس‌ها و/یا روش‌های آزمایشی که برای هر قطعه اجرا می‌شوند. اهداف باید در قالب آرگومان AndroidJUnitRunner مشخص شوند. به عنوان مثال، "package com.my.packages" "class com.my.package.MyClass".

تعداد testTarget باید بیشتر از 0 باشد.

SmartSharding

تست شارد بر اساس سوابق زمان بندی مورد آزمایش قبلی.

نمایندگی JSON
{
  "targetedShardDuration": string
}
زمینه های
targetedShardDuration

string ( Duration format)

مدت زمان آزمایش در یک قطعه باید طول بکشد.

پیش‌فرض: 300 ثانیه (5 دقیقه). حداقل زمان مجاز: 120 ثانیه (2 دقیقه).

تعداد خرده‌ها به صورت پویا بر اساس زمان، تا حداکثر محدودیت خرده‌ها (در زیر توضیح داده شده) تنظیم می‌شود. برای ضمانت حداقل یک مورد آزمایشی برای هر قطعه، تعداد خرده ها از تعداد موارد آزمایش تجاوز نخواهد کرد. در صورتی که:

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

مدت زمان شارد تضمینی نیست زیرا اشتراک‌گذاری هوشمند از تاریخچه موارد آزمایشی و مدت‌های پیش‌فرض استفاده می‌کند که ممکن است دقیق نباشد. قوانین برای یافتن سوابق زمان بندی مورد آزمون عبارتند از:

  • اگر سرویس در 30 روز گذشته یک مورد آزمایشی را پردازش کرده باشد، از سابقه آخرین مورد آزمایشی موفق استفاده خواهد شد.
  • برای موارد آزمایشی جدید، میانگین مدت سایر موارد آزمایش شناخته شده استفاده خواهد شد.
  • اگر سوابق زمان‌بندی مورد آزمایش قبلی موجود نباشد، مدت زمان مورد آزمایشی پیش‌فرض 15 ثانیه است.

از آنجایی که مدت زمان واقعی قطعه ممکن است از مدت زمان خرده هدف‌گذاری شده بیشتر شود، توصیه می‌کنیم مقدار هدف را حداقل 5 دقیقه کمتر از حداکثر زمان مجاز آزمایش (45 دقیقه برای دستگاه‌های فیزیکی و 60 دقیقه برای مجازی) تنظیم کنید، یا از سفارشی استفاده کنید. مقدار وقفه آزمایشی که تنظیم کردید. این رویکرد از لغو کردن قطعه قبل از اتمام همه آزمایش ها جلوگیری می کند.

توجه داشته باشید که محدودیتی برای حداکثر تعداد خرده ها وجود دارد. هنگامی که یک یا چند دستگاه فیزیکی را انتخاب می کنید، تعداد خرده ها باید <= 50 باشد. وقتی یک یا چند دستگاه مجازی ARM را انتخاب می کنید، باید <= 200 باشد. هنگامی که فقط دستگاه های مجازی x86 را انتخاب می کنید، باید <= 500 باشد. برای ضمانت حداقل یک مورد تست برای هر قطعه، تعداد خرده ها از تعداد موارد آزمایش تجاوز نخواهد کرد. هر قطعه ایجاد شده برای سهمیه آزمون روزانه حساب می شود.

مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' s ' ختم می شود. مثال: "3.5s" .

AndroidRoboTest

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

نمایندگی JSON
{
  "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.
}
زمینه های
appPackageId

string

بسته جاوا برای برنامه تحت آزمایش. مقدار پیش فرض با بررسی مانیفست برنامه تعیین می شود.

appInitialActivity

string

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

maxDepth
(deprecated)

integer

حداکثر عمق پشته پیمایشی که Robo می تواند کاوش کند. برای اینکه Robo برنامه را فراتر از اولین فعالیت کاوش کند، باید حداقل 2 نفر باشد. پیش فرض 50 است.

maxSteps
(deprecated)

integer

حداکثر تعداد مراحلی که Robo می تواند اجرا کند. پیش فرض محدودیت ندارد.

roboDirectives[]

object ( RoboDirective )

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

roboMode

enum ( RoboMode )

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

roboScript

object ( FileReference )

یک فایل JSON با دنباله ای از اقدامات Robo باید به عنوان یک پیش درآمد برای خزیدن انجام دهد.

startingIntents[]

object ( RoboStartingIntent )

اهداف مورد استفاده برای راه اندازی برنامه برای خزیدن. اگر هیچ کدام ارائه نشد، فعالیت اصلی پرتاب کننده راه اندازی می شود. اگر برخی از آنها ارائه شود، تنها موارد ارائه شده راه اندازی می شوند (فعالیت اصلی پرتابگر باید به صراحت ارائه شود).

فیلد اتحادیه app_under_test . ضروری. app_under_test می تواند تنها یکی از موارد زیر باشد:
appApk

object ( FileReference )

APK برای برنامه تحت آزمایش.

appBundle

object ( AppBundle )

بسته نرم افزاری چند apk برای برنامه تحت آزمایش.

RoboDirective

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

نمایندگی JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
زمینه های
resourceName

string

ضروری. نام منبع اندروید عنصر UI هدف. به عنوان مثال، در جاوا: R.string.foo در xml: @string/foo فقط به قسمت "foo" نیاز است. سند مرجع: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

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

actionType

enum ( RoboActionType )

ضروری. نوع عملی که Robo باید روی عنصر مشخص شده انجام دهد.

RoboActionType

اقداماتی که Robo می تواند روی عناصر UI انجام دهد.

Enums
ACTION_TYPE_UNSPECIFIED استفاده نکن. فقط برای نسخه پروتو
SINGLE_CLICK مستقیم Robo روی عنصر مشخص شده کلیک کنید. در صورتی که عنصر مشخص شده قابل کلیک نباشد، فعال نیست.
ENTER_TEXT مستقیم Robo برای وارد کردن متن در عنصر مشخص شده. اگر عنصر مشخص شده فعال نشده باشد یا اجازه ورود متن را نمی دهد، بدون عملیات.
IGNORE Robo را برای نادیده گرفتن تعاملات با یک عنصر خاص هدایت کنید.

RoboMode

حالتی که Robo باید در آن اجرا شود.

Enums
ROBO_MODE_UNSPECIFIED این بدان معنی است که سرور باید حالت را انتخاب کند. توصیه شده.
ROBO_VERSION_1 Robo را در حالت UIAutomator-only بدون حذف برنامه اجرا می کند
ROBO_VERSION_2 Robo را در اسپرسو استاندارد با UIAutomator backback اجرا می کند

RoboStartingIntent

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

نمایندگی JSON
{
  "timeout": string,

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

string ( Duration format)

وقفه در ثانیه برای هر هدف.

مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' s ' ختم می شود. مثال: "3.5s" .

فیلد اتحادیه starting_intent . ضروری. جزئیات قصد شروع یک فعالیت starting_intent تنها می تواند یکی از موارد زیر باشد:
launcherActivity

object ( LauncherActivityIntent )

قصدی که فعالیت اصلی لانچر را شروع می کند.

startActivity

object ( StartActivityIntent )

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

LauncherActivityIntent

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

StartActivityIntent

یک هدف شروع که توسط یک کنش، uri و دسته بندی مشخص می شود.

نمایندگی JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
زمینه های
action

string

نام اقدام. برای START_ACTIVITY مورد نیاز است.

uri

string

URI برای اقدام.

categories[]

string

مقوله‌های هدف برای تنظیم روی قصد.

AndroidTestLoop

تست یک برنامه اندروید با حلقه تست. هدف <intent-name> به طور ضمنی اضافه خواهد شد، زیرا Games در حال حاضر تنها کاربر این api است.

نمایندگی JSON
{
  "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.
}
زمینه های
appPackageId

string

بسته جاوا برای برنامه تحت آزمایش. پیش فرض با بررسی مانیفست برنامه مشخص می شود.

scenarios[]

integer

لیست سناریوهایی که باید در طول آزمون اجرا شوند. پیش‌فرض همه حلقه‌های آزمایشی است که از مانیفست برنامه مشتق شده‌اند.

scenarioLabels[]

string

لیستی از برچسب های سناریو که باید در طول آزمایش اجرا شوند. برچسب های سناریو باید به برچسب های تعریف شده در مانیفست برنامه نگاشت شوند. برای مثال، player_experience و com.google.test.loops.player_experience همه حلقه‌های برچسب‌گذاری شده در مانیفست را با نام com.google.test.loops.player_experience به اجرا اضافه می‌کنند. سناریوها را می توان در قسمت سناریوها نیز مشخص کرد.

فیلد اتحادیه app_under_test . ضروری. بسته اندروید برای تست. app_under_test می تواند تنها یکی از موارد زیر باشد:
appApk

object ( FileReference )

APK برای برنامه تحت آزمایش.

appBundle

object ( AppBundle )

بسته نرم افزاری چند apk برای برنامه تحت آزمایش.

IosXcTest

تست یک برنامه iOS که از چارچوب XCTest استفاده می کند. Xcode از گزینه "build for testing" پشتیبانی می کند، که یک فایل xctestrun. که حاوی مشخصات آزمایشی (آگومان ها، روش های تست و غیره) است، تولید می کند. این نوع تست یک فایل فشرده حاوی فایل xctestrun. و محتویات مربوطه دایرکتوری Build/Products را می پذیرد که شامل تمام فایل های باینری مورد نیاز برای اجرای تست ها است.

نمایندگی JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
زمینه های
testsZip

object ( FileReference )

ضروری. zip. حاوی فایل xctestrun. و محتویات دایرکتوری DerivedData/Build/Products. اگر قسمت xctestrun مشخص شده باشد، فایل .xctestrun در این فایل فشرده نادیده گرفته می شود.

xctestrun

object ( FileReference )

یک فایل xctestrun. که فایل .xctestrun را در فایل فشرده تست ها لغو می کند. از آنجا که فایل .xctestrun حاوی متغیرهای محیطی به همراه روش‌های تست برای اجرا و/یا نادیده گرفتن است، این می‌تواند برای آزمایش‌های اشتراک‌گذاری مفید باشد. پیش فرض از zip تست گرفته شده است.

xcodeVersion

string

نسخه Xcode که باید برای آزمایش استفاده شود. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. به طور پیش فرض آخرین نسخه Xcode Firebase Test Lab را پشتیبانی می کند.

appBundleId

string

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

testSpecialEntitlements

boolean

گزینه ای برای آزمایش حقوق برنامه های ویژه. تنظیم این باعث می شود که برنامه دارای حقوق ویژه با یک شناسه برنامه صریح مجدداً امضا شود. در حال حاضر از تست مجوز aps-environment پشتیبانی می کند.

IosTestLoop

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

نمایندگی JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
زمینه های
appIpa

object ( FileReference )

ضروری. .ipa برنامه برای تست.

scenarios[]

integer

لیست سناریوهایی که باید در طول آزمون اجرا شوند. در صورت نامشخص بودن، سناریوی واحد 0 را پیش‌فرض می‌کند.

appBundleId

string

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

EnvironmentMatrix

ماتریس محیط هایی که آزمون قرار است در آنها اجرا شود.

نمایندگی JSON
{

  // 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.
}
زمینه های
environment_matrix میدان اتحادیه. ضروری. ماتریس محیط environment_matrix فقط می تواند یکی از موارد زیر باشد:
androidMatrix

object ( AndroidMatrix )

ماتریسی از دستگاه های اندرویدی

androidDeviceList

object ( AndroidDeviceList )

لیستی از دستگاه های اندروید؛ تست فقط بر روی دستگاه های مشخص شده اجرا می شود.

iosDeviceList

object ( IosDeviceList )

لیستی از دستگاه های iOS.

AndroidMatrix

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

فقط جایگشت های پشتیبانی شده نمونه سازی خواهند شد. جایگشت های نامعتبر (مثلاً مدل ها/نسخه های ناسازگار) نادیده گرفته می شوند.

نمایندگی JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
زمینه های
androidModelIds[]

string

ضروری. شناسه های مجموعه دستگاه اندروید مورد استفاده قرار می گیرد. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

androidVersionIds[]

string

ضروری. شناسه مجموعه نسخه سیستم عامل اندروید مورد استفاده قرار می گیرد. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

locales[]

string

ضروری. مجموعه ای از مناطقی که دستگاه تست برای آزمایش فعال می کند. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

orientations[]

string

ضروری. مجموعه ای از جهت گیری ها برای تست. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

AndroidDeviceList

لیستی از پیکربندی‌های دستگاه Android که در آن آزمایش قرار است اجرا شود.

نمایندگی JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
زمینه های
androidDevices[]

object ( AndroidDevice )

ضروری. لیستی از دستگاه های اندرویدی

دستگاه اندروید

یک دستگاه اندرویدی واحد.

نمایندگی JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
زمینه های
androidModelId

string

ضروری. شناسه دستگاه اندرویدی مورد استفاده. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

androidVersionId

string

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

locale

string

ضروری. محلی که دستگاه تست برای آزمایش استفاده می شود. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

orientation

string

ضروری. نحوه جهت گیری دستگاه در طول آزمایش از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

IosDeviceList

فهرستی از پیکربندی‌های دستگاه iOS که در آن آزمایش قرار است اجرا شود.

نمایندگی JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
زمینه های
iosDevices[]

object ( IosDevice )

ضروری. لیستی از دستگاه های iOS.

آیوس دیوایس

یک دستگاه iOS واحد.

نمایندگی JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
زمینه های
iosModelId

string

ضروری. شناسه دستگاه iOS مورد استفاده. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

iosVersionId

string

ضروری. شناسه نسخه اصلی نرم افزار iOS مورد استفاده قرار می گیرد. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

locale

string

ضروری. محلی که دستگاه تست برای آزمایش استفاده می شود. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

orientation

string

ضروری. نحوه جهت گیری دستگاه در طول آزمایش از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید.

اجرای تست

یک تست واحد که در یک محیط واحد اجرا می شود.

نمایندگی JSON
{
  "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)
  }
}
زمینه های
id

string

فقط خروجی شناسه منحصر به فرد توسط سرویس تنظیم شده است.

matrixId

string

فقط خروجی شناسه حاوی TestMatrix.

projectId

string

فقط خروجی پروژه ابری که اجرای آزمایشی را در اختیار دارد.

testSpecification

object ( TestSpecification )

فقط خروجی نحوه اجرای آزمون

shard

object ( Shard )

فقط خروجی جزئیات در مورد خرده.

environment

object ( Environment )

فقط خروجی نحوه پیکربندی ماشین(های) میزبان

state

enum ( TestState )

فقط خروجی پیشرفت فعلی اجرای آزمایش را نشان می دهد (به عنوان مثال، FINISHED).

toolResultsStep

object ( ToolResultsStep )

فقط خروجی جایی که نتایج این اجرا نوشته می شود.

timestamp

string ( Timestamp format)

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

مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثال‌ها: "2014-10-02T15:01:23Z" و "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

فقط خروجی جزئیات بیشتر در مورد آزمون در حال اجرا.

تکه شکسته

فقط خروجی جزئیات در مورد خرده.

نمایندگی JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
زمینه های
shardIndex

integer

فقط خروجی شاخص خرده در میان همه خرده ها.

numShards

integer

فقط خروجی تعداد کل خرده ها

testTargetsForShard

object ( TestTargetsForShard )

فقط خروجی آزمایش اهداف برای هر قطعه فقط برای اشتراک گذاری دستی تنظیم شده است.

estimatedShardDuration

string ( Duration format)

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

مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' s ' ختم می شود. مثال: "3.5s" .

محیط

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

نمایندگی JSON
{

  // 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.
}
زمینه های
environment میدانی اتحادیه ضروری. محیط زیست. environment می تواند تنها یکی از موارد زیر باشد:
androidDevice

object ( AndroidDevice )

دستگاه اندرویدی که باید با تست اندروید استفاده شود.

iosDevice

object ( IosDevice )

یک دستگاه iOS که باید با تست iOS استفاده شود.

TestState

وضعیت (یعنی پیشرفت) اجرای آزمایش یا ماتریس.

Enums
TEST_STATE_UNSPECIFIED استفاده نکن. فقط برای نسخه اولیه.
VALIDATING اجرا یا ماتریس در حال تایید است.
PENDING اجرا یا ماتریس منتظر در دسترس قرار گرفتن منابع است.
RUNNING

اعدام در حال حاضر در حال پردازش است.

فقط روی یک اجرا تنظیم می شود.

FINISHED

اجرا یا ماتریس به طور معمول خاتمه یافته است.

در یک ماتریس این بدان معنی است که پردازش سطح ماتریس به طور معمول انجام شده است، اما اجرای تک تک ممکن است در حالت ERROR باشد.

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

اجرا اجرا نشد زیرا با یک محیط پشتیبانی نشده مطابقت دارد.

فقط روی یک اجرا تنظیم می شود.

INCOMPATIBLE_ENVIRONMENT

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

مثال: نسخه Android درخواستی کمتر از minSdkVersion APK است

فقط روی یک اجرا تنظیم می شود.

INCOMPATIBLE_ARCHITECTURE

اجرا اجرا نشد زیرا ورودی های ارائه شده با معماری درخواستی ناسازگار هستند.

مثال: دستگاه درخواستی از اجرای کد اصلی در APK ارائه شده پشتیبانی نمی کند

فقط روی یک اجرا تنظیم می شود.

CANCELLED

کاربر اجرا را لغو کرد.

فقط روی یک اجرا تنظیم می شود.

INVALID

اجرا یا ماتریس اجرا نشد زیرا ورودی های ارائه شده معتبر نیستند.

مثال‌ها: فایل ورودی از نوع مورد انتظار نیست، دارای شکل ناقص/فاسد است یا به‌عنوان بدافزار پرچم‌گذاری شده است.

ToolResultsStep

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

این نتایج یک TestExecution را دارد.

نمایندگی JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
زمینه های
projectId

string

فقط خروجی پروژه ابری که مالک ابزار است مرحله نتایج.

historyId

string

فقط خروجی یک ابزار ID تاریخچه را نشان می دهد.

executionId

string

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

stepId

string

فقط خروجی یک ابزار ID مرحله را نتیجه می دهد.

جزئیات تست

جزئیات بیشتر در مورد پیشرفت آزمون در حال اجرا.

نمایندگی JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
زمینه های
progressMessages[]

string

فقط خروجی توصیفات دقیق و قابل خواندن توسط انسان از پیشرفت آزمایش. به عنوان مثال: "تهیه یک دستگاه"، "آزمایش شروع".

در طول اجرا ممکن است داده های جدیدی به انتهای progressMessages اضافه شود.

errorMessage

string

فقط خروجی اگر TestState ERROR باشد، این رشته حاوی جزئیات قابل خواندن توسط انسان در مورد خطا خواهد بود.

ResultStorage

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

نمایندگی JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
زمینه های
googleCloudStorage

object ( GoogleCloudStorage )

ضروری.

toolResultsHistory

object ( ToolResultsHistory )

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

در صورت عدم ارائه، سرویس مقدار مناسبی را انتخاب می کند.

toolResultsExecution

object ( ToolResultsExecution )

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

resultsUrl

string

فقط خروجی URL به نتایج در کنسول وب Firebase.

GoogleCloudStorage

یک مکان ذخیره سازی در فضای ذخیره سازی ابری Google (GCS).

نمایندگی JSON
{
  "gcsPath": string
}
زمینه های
gcsPath

string

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

Tool ResultsHistory

یک منبع تاریخچه نتایج ابزار را نشان می دهد.

نمایندگی JSON
{
  "projectId": string,
  "historyId": string
}
زمینه های
projectId

string

ضروری. پروژه ابری که مالک ابزار تاریخچه نتایج است.

historyId

string

ضروری. یک ابزار ID تاریخچه را نشان می دهد.

ابزار ResultsExecution

یک منبع اجرای نتایج ابزار را نشان می دهد.

این نتایج یک TestMatrix را دارد.

نمایندگی JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
زمینه های
projectId

string

فقط خروجی پروژه ابری که ابزار را در اختیار دارد اجرا می شود.

historyId

string

فقط خروجی یک ابزار ID تاریخچه را نشان می دهد.

executionId

string

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

InvalidMatrixDetails

دلیل دقیق این که یک ماتریس نامعتبر تلقی شد.

Enums
INVALID_MATRIX_DETAILS_UNSPECIFIED استفاده نکن. فقط برای نسخه پروتو
DETAILS_UNAVAILABLE ماتریس نامعتبر است، اما جزئیات بیشتری در دسترس نیست.
MALFORMED_APK APK برنامه ورودی قابل تجزیه نیست.
MALFORMED_TEST_APK APK تست ورودی قابل تجزیه نیست.
NO_MANIFEST AndroidManifest.xml یافت نشد.
NO_PACKAGE_NAME مانیفست APK نام بسته را اعلام نمی کند.
INVALID_PACKAGE_NAME شناسه برنامه APK (با نام مستعار بسته) نامعتبر است. همچنین به https://developer.android.com/build/configure-app-module#set-application-id مراجعه کنید
TEST_SAME_AS_APP بسته آزمایشی و بسته برنامه یکسان است.
NO_INSTRUMENTATION apk آزمایشی ابزار دقیقی را اعلام نمی کند.
NO_SIGNATURE برنامه ورودی apk امضا ندارد.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE کلاس اجراکننده آزمایشی مشخص شده توسط کاربر یا در فایل مانیفست APK آزمایشی با Android Test Orchestrator سازگار نیست. Orchestrator فقط با AndroidJUnitRunner نسخه 1.1 یا بالاتر سازگار است. ارکستراتور را می توان با استفاده از DO_NOT_USE_ORCHESTRATOR OrchestratorOption غیرفعال کرد.
NO_TEST_RUNNER_CLASS

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

  • کاربر نام کلاس runner را ارائه کرده است که نادرست است، یا
  • اجرای آزمایشی در APK آزمایشی تعبیه نشده است (به جای آن ممکن است در APK برنامه باشد).
NO_LAUNCHER_ACTIVITY فعالیت راه‌انداز اصلی یافت نشد.
FORBIDDEN_PERMISSIONS برنامه یک یا چند مجوز را اعلام می کند که مجاز نیستند.
INVALID_ROBO_DIRECTIVES در roboDirectives ارائه شده یک تضاد وجود دارد.
INVALID_RESOURCE_NAME حداقل یک نام منبع نامعتبر در دستورالعمل های Robo ارائه شده وجود دارد
INVALID_DIRECTIVE_ACTION تعریف عمل نامعتبر در دستورالعمل‌های Robo (به عنوان مثال، کلیک یا نادیده گرفتن عملکرد شامل یک قسمت متن ورودی است)
TEST_LOOP_INTENT_FILTER_NOT_FOUND فیلتر هدف حلقه آزمایشی وجود ندارد، یا فیلتری که داده شده است به درستی قالب بندی نشده است.
SCENARIO_LABEL_NOT_DECLARED درخواست حاوی یک برچسب سناریو است که در مانیفست اعلام نشده است.
SCENARIO_LABEL_MALFORMED هنگام تجزیه مقدار یک برچسب خطایی روی داد.
SCENARIO_NOT_DECLARED درخواست حاوی یک شماره سناریو است که در مانیفست اعلام نشده است.
DEVICE_ADMIN_RECEIVER برنامه های سرپرست دستگاه مجاز نیستند.
MALFORMED_XC_TEST_ZIP XCTest زیپ شده بد شکل بود. فایل فشرده حاوی یک فایل .xctestrun و محتویات دایرکتوری DerivedData/Build/Products نیست.
BUILT_FOR_IOS_SIMULATOR XCTest فشرده برای شبیه ساز iOS به جای یک دستگاه فیزیکی ساخته شده است.
NO_TESTS_IN_XC_TEST_ZIP فایل .xctestrun هیچ هدف آزمایشی را مشخص نکرده است.
USE_DESTINATION_ARTIFACTS یک یا چند مورد از اهداف آزمایشی تعریف شده در فایل xctestrun. "UseDestinationArtifacts" را مشخص می کند که غیرمجاز است.
TEST_NOT_APP_HOSTED تست‌های XC که روی دستگاه‌های فیزیکی اجرا می‌شوند باید دارای "IsAppHostedTestBundle" == "true" در فایل xctestrun باشند.
PLIST_CANNOT_BE_PARSED یک فایل Info.plist در فایل فشرده XCTest قابل تجزیه نیست.
TEST_ONLY_APK

APK به عنوان "TestOnly" علامت گذاری شده است. منسوخ شده و در حال حاضر استفاده نشده است.

MALFORMED_IPA IPA ورودی قابل تجزیه نیست.
MISSING_URL_SCHEME برنامه طرح URL حلقه بازی را ثبت نمی کند.
MALFORMED_APP_BUNDLE بسته برنامه iOS (app.) پردازش نشد.
NO_CODE_APK APK حاوی هیچ کدی نیست. همچنین به https://developer.android.com/guide/topics/manifest/application-element.html#code مراجعه کنید
INVALID_INPUT_APK یا مسیر APK ورودی ارائه شده نادرست بود، فایل APK وجود ندارد، یا کاربر اجازه دسترسی به فایل APK را ندارد.
INVALID_APK_PREVIEW_SDK APK برای پیش نمایش SDK ساخته شده است که پشتیبانی نمی شود
MATRIX_TOO_LARGE ماتریس به گونه ای گسترش یافت که تعداد زیادی از اعدام ها را شامل شود.
TEST_QUOTA_EXCEEDED سهمیه آزمایشی کافی برای اجرای اجراها در این ماتریس وجود ندارد.
SERVICE_NOT_ACTIVATED یک api سرویس ابری مورد نیاز فعال نشده است. ببینید: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR در اجرای این آزمایش یک مشکل مجوز ناشناخته وجود داشت.

خلاصه نتیجه

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

Enums
OUTCOME_SUMMARY_UNSPECIFIED استفاده نکن. فقط برای نسخه پروتو
SUCCESS

اجرای ماتریس تست موفقیت آمیز بود، به عنوان مثال:

  • همه موارد آزمایش قبول شد.
  • Robo خرابی برنامه تحت آزمایش را تشخیص نداد.
FAILURE

یک اجرا ناموفق بود، برای مثال:

  • یک یا چند مورد آزمایش ناموفق بود.
  • یک تست تمام شد.
  • برنامه تحت آزمایش از کار افتاد.
INCONCLUSIVE اتفاق غیرمنتظره ای افتاد. اجرا همچنان باید ناموفق در نظر گرفته شود، اما این احتمالاً یک مشکل گذرا است و اجرای مجدد آزمون ممکن است موفقیت آمیز باشد.
SKIPPED

تمام تست ها نادیده گرفته شدند، به عنوان مثال:

  • همه پیکربندی‌های دستگاه ناسازگار بودند.

مواد و روش ها

cancel

اجرای آزمون های ناتمام را در یک ماتریس تست لغو می کند.

create

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

get

وضعیت یک ماتریس تست و اجراها را پس از ایجاد آنها بررسی می کند.