- منبع: TestMatrix
- ClientInfo
- ClientInfoDetail
- TestSpecification
- TestSetup
- DeviceFile
- ObbFile
- مرجع فایل
- RegularFile
- APK
- حساب
- GoogleAuto
- متغیر محیطی
- SystraceSetup
- IosTestSetup
- IosDeviceFile
- AndroidInstrumentationTest
- AppBundle
- OrchestratorOption
- ShardingOption
- UniformSharding
- تقسیم دستی
- TestTargetsForShard
- SmartSharding
- AndroidRoboTest
- RoboDirective
- RoboActionType
- RoboMode
- RoboStartingIntent
- LauncherActivityIntent
- StartActivityIntent
- AndroidTestLoop
- IosXcTest
- IosTestLoop
- EnvironmentMatrix
- AndroidMatrix
- AndroidDeviceList
- دستگاه اندروید
- IosDeviceList
- آیوس دیوایس
- اجرای تست
- تکه شکسته
- محیط
- TestState
- ToolResultsStep
- جزئیات تست
- ResultStorage
- GoogleCloudStorage
- Tool ResultsHistory
- ابزار ResultsExecution
- InvalidMatrixDetails
- خلاصه نتیجه
- مواد و روش ها
منبع: TestMatrix
TestMatrix تمام جزئیات مربوط به یک تست را ثبت می کند. این شامل پیکربندی محیط، مشخصات تست، اجرای آزمایش و وضعیت کلی و نتیجه است.
نمایندگی JSON |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
زمینه های | |
---|---|
testMatrixId | فقط خروجی شناسه منحصر به فرد توسط سرویس تنظیم شده است. |
projectId | پروژه ابری که مالک ماتریس آزمایشی است. |
clientInfo | اطلاعات در مورد مشتری که آزمون را فراخوانی کرده است. |
testSpecification | ضروری. نحوه اجرای آزمون |
environmentMatrix | ضروری. دستگاه هایی که آزمایش ها روی آنها اجرا می شود. |
testExecutions[] | فقط خروجی لیستی از اجرای آزمایشی که سرویس برای این ماتریس ایجاد می کند. |
resultStorage | ضروری. جایی که نتایج برای ماتریس نوشته می شود. |
state | فقط خروجی پیشرفت فعلی ماتریس تست را نشان می دهد. |
timestamp | فقط خروجی زمانی که این ماتریس آزمون در ابتدا ایجاد شد. مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثالها: |
invalidMatrixDetails | فقط خروجی توضیح می دهد که چرا ماتریس نامعتبر در نظر گرفته می شود. فقط برای ماتریس هایی در حالت INVALID مفید است. |
flakyTestAttempts | تعداد دفعاتی که یک TestExecution باید دوباره امتحان شود اگر یک یا چند مورد تست آن به هر دلیلی شکست بخورد. حداکثر تعداد تکرار مجاز 10 عدد است. پیشفرض 0 است که به معنای عدم اجرای مجدد است. |
outcomeSummary | فقط خروجی نتیجه کلی آزمون. فقط زمانی تنظیم کنید که وضعیت ماتریس آزمایشی FINISHED باشد. |
failFast | اگر درست باشد، حداکثر تنها یک تلاش برای اجرای هر اجرا/شارد در ماتریس انجام خواهد شد. تلاش های تست پوسته پوسته تحت تاثیر قرار نمی گیرند. به طور معمول، اگر یک مشکل زیرساختی بالقوه شناسایی شود، 2 یا بیشتر تلاش می شود. این ویژگی برای بارهای کاری حساس به تأخیر است. بروز شکست در اجرا ممکن است برای ماتریس های سریع شکست به طور قابل توجهی بیشتر باشد و به دلیل این انتظار، پشتیبانی محدودتر است. |
ClientInfo
اطلاعات در مورد مشتری که آزمون را فراخوانی کرده است.
نمایندگی JSON |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
زمینه های | |
---|---|
name | ضروری. نام مشتری، مانند gcloud. |
clientInfoDetails[] | لیست اطلاعات دقیق در مورد مشتری |
ClientInfoDetail
جفت کلید-مقدار اطلاعات دقیق در مورد مشتری که آزمایش را فراخوانی کرده است. مثالها: {'Version', '1.0'}, {'Release Track', 'BETA'}.
نمایندگی JSON |
---|
{ "key": string, "value": string } |
زمینه های | |
---|---|
key | ضروری. کلید اطلاعات دقیق مشتری |
value | ضروری. ارزش اطلاعات دقیق مشتری |
TestSpecification
شرح نحوه اجرای آزمون
نمایندگی JSON |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
زمینه های | |
---|---|
testTimeout | حداکثر زمانی که اجرای آزمایشی قبل از لغو خودکار مجاز است اجرا شود. مقدار پیش فرض 5 دقیقه است. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
disableVideoRecording | ضبط ویدیو را غیرفعال می کند. ممکن است تاخیر تست را کاهش دهد. |
disablePerformanceMetrics | ضبط معیارهای عملکرد را غیرفعال می کند. ممکن است تاخیر تست را کاهش دهد. |
setup میدان اتحادیه الزامات راه اندازی تست setup تنها می تواند یکی از موارد زیر باشد: | |
testSetup | تست الزامات راه اندازی برای اندروید به عنوان مثال فایل ها برای نصب، بوت استرپ اسکریپت ها. |
iosTestSetup | تست تنظیمات مورد نیاز برای iOS. |
test میدانی اتحادیه ضروری. نوع آزمونی که باید اجرا شود. test فقط می تواند یکی از موارد زیر باشد: | |
androidInstrumentationTest | تست ابزار دقیق اندروید. |
androidRoboTest | تست روبو اندروید. |
androidTestLoop | یک برنامه اندروید با حلقه تست. |
iosXcTest | یک iOS XCTest، از طریق یک فایل xctestrun. |
iosTestLoop | یک برنامه iOS با حلقه تست. |
TestSetup
شرح نحوه راه اندازی دستگاه اندروید قبل از اجرای آزمایش.
نمایندگی JSON |
---|
{ "filesToPush": [ { object ( |
زمینه های | |
---|---|
filesToPush[] | لیست فایل هایی که باید قبل از شروع آزمایش به دستگاه فشار دهید. |
directoriesToPull[] | فهرست دایرکتوریهای دستگاه برای آپلود در GCS در پایان آزمایش؛ آنها باید مسیرهای مطلق تحت /sdcard، /storage یا /data/local/tmp باشند. نام مسیرها به کاراکترهای AZ 0-9 _ - محدود شده است. + و / توجه: مسیرهای /sdcard و /data در دسترس خواهند بود و به عنوان جایگزین مسیر ضمنی در نظر گرفته می شوند. به عنوان مثال، اگر /sdcard در یک دستگاه خاص به حافظه خارجی نگاشت نشود، سیستم آن را با پیشوند مسیر ذخیره سازی خارجی برای آن دستگاه جایگزین می کند. |
additionalApks[] | APKهایی که باید نصب شوند علاوه بر آنهایی که مستقیماً آزمایش می شوند. در حال حاضر سقف 100 است. |
account | دستگاه در طول مدت آزمایش با این حساب وارد می شود. |
networkProfile | نمایه ترافیک شبکه مورد استفاده برای اجرای آزمایش. هنگام فراخوانی TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog، می توان نمایه های شبکه موجود را با استفاده از نوع محیط NETWORK_CONFIGURATION جستجو کرد. |
environmentVariables[] | متغیرهای محیطی برای تنظیم برای آزمایش (فقط برای آزمایشهای ابزار دقیق قابل استفاده است). |
systrace | پیکربندی Systrace برای اجرا. منسوخ شده: Systrace از Python 2 استفاده کرد که در 01-01-2020 غروب شد. Systrace دیگر در Cloud Testing API پشتیبانی نمیشود و هیچ فایل Systrace در نتایج ارائه نخواهد شد. |
dontAutograntPermissions | آیا برای جلوگیری از اعطای همه مجوزهای زمان اجرا هنگام نصب برنامه |
DeviceFile
شرح فایل تک دستگاه.
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
فیلد اتحادیه device_file . ضروری. device_file فقط می تواند یکی از موارد زیر باشد: | |
obbFile | ارجاع به یک فایل باینری blob مات. |
regularFile | ارجاع به یک فایل معمولی |
ObbFile
یک فایل باینری blob مات برای نصب روی دستگاه قبل از شروع آزمایش.
نمایندگی JSON |
---|
{
"obbFileName": string,
"obb": {
object ( |
زمینه های | |
---|---|
obbFileName | ضروری. نام فایل OBB که باید با فرمت مشخص شده توسط Android مطابقت داشته باشد، به عنوان مثال [main|patch].0300110.com.example.android.obb که در <shared-storage>/Android/obb/<package-name>/ نصب خواهد شد. روی دستگاه |
obb | ضروری. فایل(های) مات باینری Blob (OBB) برای نصب روی دستگاه. |
مرجع فایل
مرجعی به یک فایل که برای ورودی های کاربر استفاده می شود.
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
file فیلد اتحادیه ضروری. مرجع فایل file فقط می تواند یکی از موارد زیر باشد: | |
gcsPath | مسیری به یک فایل در Google Cloud Storage. به عنوان مثال: gs://build-app-1414623860166/app%40debug-unaligned.apk انتظار می رود این مسیرها دارای url کدگذاری شوند (درصد رمزگذاری) |
RegularFile
فایل یا دایرکتوری برای نصب روی دستگاه قبل از شروع آزمایش.
نمایندگی JSON |
---|
{
"content": {
object ( |
زمینه های | |
---|---|
content | ضروری. فایل منبع |
devicePath | ضروری. محل قرار دادن محتوا در دستگاه باید یک مسیر مطلق و مجاز باشد. در صورت وجود فایل، جایگزین خواهد شد. دایرکتوری های سمت دستگاه زیر و هر یک از زیر شاخه های آنها در لیست مجاز هستند: ${EXTERNAL_STORAGE}، /sdcard، یا /storage ${ANDROID_DATA}/local/tmp، یا /data/local/tmp تعیین مسیر خارج از این درختان فهرست نامعتبر است. مسیرهای /sdcard و /data در دسترس قرار می گیرند و به عنوان جایگزین مسیر ضمنی در نظر گرفته می شوند. به عنوان مثال، اگر /sdcard در یک دستگاه خاص به حافظه خارجی نگاشت، سیستم آن را با پیشوند مسیر ذخیره سازی خارجی برای آن دستگاه جایگزین می کند و فایل را در آنجا کپی می کند. اکیداً توصیه میشود که از Environment API در برنامه و کد آزمایشی برای دسترسی به فایلهای روی دستگاه به صورت قابل حمل استفاده کنید. |
APK
یک فایل بسته اندروید برای نصب.
نمایندگی JSON |
---|
{
"location": {
object ( |
زمینه های | |
---|---|
location | مسیر یک APK که باید قبل از شروع آزمایش روی دستگاه نصب شود. |
packageName | بسته جاوا برای APK که باید نصب شود. مقدار با بررسی مانیفست برنامه تعیین می شود. |
حساب
یک حساب کاربری و نحوه ورود به آن را شناسایی می کند.
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
account_type فیلد اتحادیه ضروری. نوع حساب، بر اساس آنچه برای آن است (مثلاً Google) و مکانیسم ورود آن (مثلاً نام کاربری و رمز عبور). account_type فقط می تواند یکی از موارد زیر باشد: | |
googleAuto | یک حساب ورود خودکار به گوگل. |
GoogleAuto
ورود خودکار حساب Google را فعال می کند. در صورت تنظیم، این سرویس به طور خودکار یک حساب آزمایشی Google ایجاد کرده و آن را قبل از اجرای آزمایش به دستگاه اضافه می کند. توجه داشته باشید که حسابهای آزمایشی ممکن است دوباره استفاده شوند. هنگامی که یک حساب کاربری در دستگاه وجود دارد، بسیاری از برنامه ها مجموعه کاملی از عملکردهای خود را نشان می دهند. ورود به دستگاه با این حساب های تولید شده امکان آزمایش عملکردهای بیشتری را فراهم می کند.
متغیر محیطی
یک جفت کلید-مقدار بهعنوان متغیر محیطی به آزمون ارسال شد.
نمایندگی JSON |
---|
{ "key": string, "value": string } |
زمینه های | |
---|---|
key | کلید برای متغیر محیطی |
value | ارزش برای متغیر محیطی |
SystraceSetup
نمایندگی JSON |
---|
{ "durationSeconds": integer } |
زمینه های | |
---|---|
durationSeconds | مدت زمان Systrace در ثانیه. باید بین 1 تا 30 ثانیه باشد. 0 سیستم را غیرفعال می کند. |
IosTestSetup
شرح نحوه راه اندازی دستگاه iOS قبل از اجرای آزمایش.
نمایندگی JSON |
---|
{ "networkProfile": string, "additionalIpas": [ { object ( |
زمینه های | |
---|---|
networkProfile | نمایه ترافیک شبکه مورد استفاده برای اجرای آزمایش. هنگام فراخوانی TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog، می توان نمایه های شبکه موجود را با استفاده از نوع محیط NETWORK_CONFIGURATION جستجو کرد. |
additionalIpas[] | برنامه های iOS برای نصب علاوه بر آنهایی که مستقیماً آزمایش می شوند. |
pushFiles[] | لیست فایل هایی که باید قبل از شروع آزمایش به دستگاه فشار دهید. |
pullDirectories[] | فهرست دایرکتوریهای موجود در دستگاه برای آپلود در فضای ذخیرهسازی ابری در پایان آزمایش. دایرکتوری ها باید یا در یک دایرکتوری مشترک (مانند /private/var/mobile/Media) یا در یک دایرکتوری قابل دسترسی در داخل سیستم فایل برنامه (مانند /Documents) با تعیین شناسه بسته باشند. |
IosDeviceFile
فایل یا دایرکتوری برای نصب روی دستگاه قبل از شروع آزمایش.
نمایندگی JSON |
---|
{
"content": {
object ( |
زمینه های | |
---|---|
content | فایل منبع |
bundleId | شناسه بسته نرم افزاری که این فایل در آن زندگی می کند. برنامههای iOS سیستم فایل مخصوص خود را سندباکس میکنند، بنابراین فایلهای برنامه باید مشخص کنند که کدام برنامه روی دستگاه نصب شده است. |
devicePath | مکان فایل روی دستگاه، در داخل سیستم فایل سندباکس برنامه |
AndroidInstrumentationTest
تست یک برنامه اندروید که می تواند یک جزء اندروید را مستقل از چرخه عمر عادی آن کنترل کند. تستهای ابزار دقیق اندروید یک APK برنامه را اجرا میکنند و APK را در همان فرآیند روی یک دستگاه Android مجازی یا فیزیکی آزمایش میکنند. آنها همچنین یک کلاس دونده آزمایشی مانند com.google.GoogleTestRunner را مشخص می کنند که می تواند بر اساس چارچوب ابزار دقیق انتخاب شده متفاوت باشد.
برای اطلاعات بیشتر در مورد انواع تستهای اندروید به https://developer.android.com/training/testing/fundamentals مراجعه کنید.
نمایندگی JSON |
---|
{ "testApk": { object ( |
زمینه های | |
---|---|
testApk | ضروری. APK حاوی کد آزمایشی است که باید اجرا شود. |
appPackageId | بسته جاوا برای برنامه تحت آزمایش. مقدار پیش فرض با بررسی مانیفست برنامه تعیین می شود. |
testPackageId | بسته جاوا برای آزمایش اجرا می شود. مقدار پیش فرض با بررسی مانیفست برنامه تعیین می شود. |
testRunnerClass | کلاس InstrumentationTestRunner. مقدار پیش فرض با بررسی مانیفست برنامه تعیین می شود. |
testTargets[] | هر هدف باید به طور کامل با نام بسته یا نام کلاس، در یکی از این قالبها واجد شرایط باشد:
اگر خالی باشد، تمام اهداف در ماژول اجرا خواهند شد. |
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 | گزینه ای برای اجرای آزمایش ها در چند قطعه به صورت موازی. |
فیلد اتحادیه app_under_test . ضروری. app_under_test می تواند تنها یکی از موارد زیر باشد: | |
appApk | APK برای برنامه تحت آزمایش. |
appBundle | بسته نرم افزاری چند apk برای برنامه تحت آزمایش. |
AppBundle
یک قالب فایل Android App Bundle، حاوی یک فایل BundleConfig.pb، یک فهرست راهنمای ماژول پایه، دایرکتوریهای ماژول ویژگی پویا صفر یا بیشتر.
برای راهنمایی در مورد ساخت App Bundle به https://developer.android.com/guide/app-bundle/build مراجعه کنید.
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
bundle زمینه اتحادیه . ضروری. اطلاعات مکان بسته. bundle می تواند تنها یکی از موارد زیر باشد: | |
bundleLocation | فایل .aab که نشان دهنده بسته نرم افزاری تحت آزمایش است. |
OrchestratorOption
نحوه اجرای تست را مشخص می کند.
Enums | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED | مقدار پیش فرض: سرور حالت را انتخاب می کند. در حال حاضر نشان می دهد که آزمون بدون ارکستر اجرا می شود. در آینده تمامی تست های ساز با ارکستر اجرا خواهد شد. استفاده از ارکستراتور به دلیل تمام مزایایی که ارائه می دهد بسیار تشویق می شود. |
USE_ORCHESTRATOR | تست را با استفاده از ارکستراتور اجرا کنید. ** فقط با AndroidJUnitRunner نسخه 1.1 یا بالاتر سازگار است! ** توصیه شده. |
DO_NOT_USE_ORCHESTRATOR | تست را بدون استفاده از ارکستراتور اجرا کنید. |
ShardingOption
گزینه هایی برای فعال کردن اشتراک گذاری
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
| |
uniformSharding | موارد آزمایشی یکنواخت خرده با توجه به تعداد کل خردهها. |
manualSharding | Shards موارد را در گروه های مشخصی از بسته ها، کلاس ها و/یا متدها آزمایش می کند. |
smartSharding | تست شارد بر اساس سوابق زمان بندی مورد آزمایش قبلی. |
UniformSharding
موارد آزمایشی یکنواخت خرده با توجه به تعداد کل خردهها.
برای تست های ابزار دقیق، به آرگومان های AndroidJUnitRunner "-e numShard" و "-e shardIndex" ترجمه می شود. با فعال بودن اشتراک گذاری یکنواخت، تعیین هر یک از این آرگومان های اشتراک گذاری از طریق environmentVariables
نامعتبر است.
بر اساس مکانیسم اشتراک گذاری که AndroidJUnitRunner استفاده می کند، هیچ تضمینی وجود ندارد که کیس های آزمایشی به طور یکنواخت در بین همه خرده ها توزیع شوند.
نمایندگی JSON |
---|
{ "numShards": integer } |
زمینه های | |
---|---|
numShards | ضروری. تعداد کل خردههایی که باید ایجاد شوند. این همیشه باید یک عدد مثبت باشد که از تعداد کل موارد آزمایش بیشتر نباشد. هنگامی که یک یا چند دستگاه فیزیکی را انتخاب می کنید، تعداد خرده ها باید <= 50 باشد. وقتی یک یا چند دستگاه مجازی ARM را انتخاب می کنید، باید <= 200 باشد. هنگامی که فقط دستگاه های مجازی x86 را انتخاب می کنید، باید <= 500 باشد. . |
تقسیم دستی
Shards موارد را در گروه های مشخصی از بسته ها، کلاس ها و/یا متدها آزمایش می کند.
با فعال کردن اشتراک گذاری دستی، تعیین اهداف آزمایشی از طریق محیط متغیر یا در InstrumentationTest نامعتبر است.
نمایندگی JSON |
---|
{
"testTargetsForShard": [
{
object ( |
زمینه های | |
---|---|
testTargetsForShard[] | ضروری. گروهی از بستهها، کلاسها و/یا روشهای آزمایشی که برای هر قطعه ایجاد شده به صورت دستی اجرا میشوند. در صورت وجود این فیلد، باید حداقل یک قطعه را مشخص کنید. هنگامی که یک یا چند دستگاه فیزیکی را انتخاب می کنید، تعداد تست های تکراریTargetsForShard باید <= 50 باشد. هنگامی که یک یا چند دستگاه مجازی ARM را انتخاب می کنید، باید <= 200 باشد. هنگامی که فقط دستگاه های مجازی x86 را انتخاب می کنید، باید <= باشد. 500. |
TestTargetsForShard
آزمایش اهداف برای یک قطعه
نمایندگی JSON |
---|
{ "testTargets": [ string ] } |
زمینه های | |
---|---|
testTargets[] | گروهی از بستهها، کلاسها و/یا روشهای آزمایشی که برای هر قطعه اجرا میشوند. اهداف باید در قالب آرگومان AndroidJUnitRunner مشخص شوند. به عنوان مثال، "package com.my.packages" "class com.my.package.MyClass". تعداد testTarget باید بیشتر از 0 باشد. |
SmartSharding
تست شارد بر اساس سوابق زمان بندی مورد آزمایش قبلی.
نمایندگی JSON |
---|
{ "targetedShardDuration": string } |
زمینه های | |
---|---|
targetedShardDuration | مدت زمان آزمایش در یک قطعه باید طول بکشد. پیشفرض: 300 ثانیه (5 دقیقه). حداقل زمان مجاز: 120 ثانیه (2 دقیقه). تعداد خردهها به صورت پویا بر اساس زمان، تا حداکثر محدودیت خردهها (در زیر توضیح داده شده) تنظیم میشود. برای ضمانت حداقل یک مورد آزمایشی برای هر قطعه، تعداد خرده ها از تعداد موارد آزمایش تجاوز نخواهد کرد. در صورتی که:
مدت زمان شارد تضمینی نیست زیرا اشتراکگذاری هوشمند از تاریخچه موارد آزمایشی و مدتهای پیشفرض استفاده میکند که ممکن است دقیق نباشد. قوانین برای یافتن سوابق زمان بندی مورد آزمون عبارتند از:
از آنجایی که مدت زمان واقعی قطعه ممکن است از مدت زمان خرده هدفگذاری شده بیشتر شود، توصیه میکنیم مقدار هدف را حداقل 5 دقیقه کمتر از حداکثر زمان مجاز آزمایش (45 دقیقه برای دستگاههای فیزیکی و 60 دقیقه برای مجازی) تنظیم کنید، یا از سفارشی استفاده کنید. مقدار وقفه آزمایشی که تنظیم کردید. این رویکرد از لغو کردن قطعه قبل از اتمام همه آزمایش ها جلوگیری می کند. توجه داشته باشید که محدودیتی برای حداکثر تعداد خرده ها وجود دارد. هنگامی که یک یا چند دستگاه فیزیکی را انتخاب می کنید، تعداد خرده ها باید <= 50 باشد. وقتی یک یا چند دستگاه مجازی ARM را انتخاب می کنید، باید <= 200 باشد. هنگامی که فقط دستگاه های مجازی x86 را انتخاب می کنید، باید <= 500 باشد. برای ضمانت حداقل یک مورد تست برای هر قطعه، تعداد خرده ها از تعداد موارد آزمایش تجاوز نخواهد کرد. هر قطعه ایجاد شده برای سهمیه آزمون روزانه حساب می شود. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
AndroidRoboTest
آزمایشی از یک برنامه اندرویدی که برنامه را در یک دستگاه اندرویدی مجازی یا فیزیکی کاوش میکند و مقصران و خرابیها را پیدا میکند.
نمایندگی JSON |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
زمینه های | |
---|---|
appPackageId | بسته جاوا برای برنامه تحت آزمایش. مقدار پیش فرض با بررسی مانیفست برنامه تعیین می شود. |
appInitialActivity | فعالیت اولیه ای که باید برای شروع برنامه استفاده شود. |
maxDepth | حداکثر عمق پشته پیمایشی که Robo می تواند کاوش کند. برای اینکه Robo برنامه را فراتر از اولین فعالیت کاوش کند، باید حداقل 2 نفر باشد. پیش فرض 50 است. |
maxSteps | حداکثر تعداد مراحلی که Robo می تواند اجرا کند. پیش فرض محدودیت ندارد. |
roboDirectives[] | مجموعه ای از دستورالعمل ها که Robo باید در طول خزیدن اعمال شود. این به کاربران اجازه می دهد تا خزیدن را سفارشی کنند. به عنوان مثال، نام کاربری و رمز عبور برای یک حساب آزمایشی می تواند ارائه شود. |
roboMode | حالتی که Robo باید در آن اجرا شود. اکثر مشتریان باید به سرور اجازه دهند این فیلد را به صورت خودکار پر کند. |
roboScript | یک فایل JSON با دنباله ای از اقدامات Robo باید به عنوان یک پیش درآمد برای خزیدن انجام دهد. |
startingIntents[] | اهداف مورد استفاده برای راه اندازی برنامه برای خزیدن. اگر هیچ کدام ارائه نشد، فعالیت اصلی پرتاب کننده راه اندازی می شود. اگر برخی از آنها ارائه شود، تنها موارد ارائه شده راه اندازی می شوند (فعالیت اصلی پرتابگر باید به صراحت ارائه شود). |
فیلد اتحادیه app_under_test . ضروری. app_under_test می تواند تنها یکی از موارد زیر باشد: | |
appApk | APK برای برنامه تحت آزمایش. |
appBundle | بسته نرم افزاری چند apk برای برنامه تحت آزمایش. |
RoboDirective
Robo را هدایت می کند تا اگر در حین خزیدن با یک عنصر رابط کاربری خاص مواجه شد، با آن ارتباط برقرار کند. در حال حاضر، Robo می تواند وارد کردن متن یا کلیک عنصر را انجام دهد.
نمایندگی JSON |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
زمینه های | |
---|---|
resourceName | ضروری. نام منبع اندروید عنصر UI هدف. به عنوان مثال، در جاوا: R.string.foo در xml: @string/foo فقط به قسمت "foo" نیاز است. سند مرجع: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText | متنی که روبو برای تنظیم آن هدایت می شود. اگر خالی بماند، دستورالعمل به عنوان یک کلیک روی عنصر منطبق با نام منبع تلقی می شود. |
actionType | ضروری. نوع عملی که 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 |
زمینه های | |
---|---|
timeout | وقفه در ثانیه برای هر هدف. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
فیلد اتحادیه starting_intent . ضروری. جزئیات قصد شروع یک فعالیت starting_intent تنها می تواند یکی از موارد زیر باشد: | |
launcherActivity | قصدی که فعالیت اصلی لانچر را شروع می کند. |
startActivity | قصدی که فعالیتی را با جزئیات خاص شروع می کند. |
LauncherActivityIntent
هدفی را مشخص میکند که فعالیت اصلی راهانداز را شروع میکند.
StartActivityIntent
یک هدف شروع که توسط یک کنش، uri و دسته بندی مشخص می شود.
نمایندگی JSON |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
زمینه های | |
---|---|
action | نام اقدام. برای START_ACTIVITY مورد نیاز است. |
uri | URI برای اقدام. |
categories[] | مقولههای هدف برای تنظیم روی قصد. |
AndroidTestLoop
تست یک برنامه اندروید با حلقه تست. هدف <intent-name> به طور ضمنی اضافه خواهد شد، زیرا Games در حال حاضر تنها کاربر این api است.
نمایندگی JSON |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
زمینه های | |
---|---|
appPackageId | بسته جاوا برای برنامه تحت آزمایش. پیش فرض با بررسی مانیفست برنامه مشخص می شود. |
scenarios[] | لیست سناریوهایی که باید در طول آزمون اجرا شوند. پیشفرض همه حلقههای آزمایشی است که از مانیفست برنامه مشتق شدهاند. |
scenarioLabels[] | لیستی از برچسب های سناریو که باید در طول آزمایش اجرا شوند. برچسب های سناریو باید به برچسب های تعریف شده در مانیفست برنامه نگاشت شوند. برای مثال، player_experience و com.google.test.loops.player_experience همه حلقههای برچسبگذاری شده در مانیفست را با نام com.google.test.loops.player_experience به اجرا اضافه میکنند. سناریوها را می توان در قسمت سناریوها نیز مشخص کرد. |
فیلد اتحادیه app_under_test . ضروری. بسته اندروید برای تست. app_under_test می تواند تنها یکی از موارد زیر باشد: | |
appApk | APK برای برنامه تحت آزمایش. |
appBundle | بسته نرم افزاری چند apk برای برنامه تحت آزمایش. |
IosXcTest
تست یک برنامه iOS که از چارچوب XCTest استفاده می کند. Xcode از گزینه "build for testing" پشتیبانی می کند، که یک فایل xctestrun. که حاوی مشخصات آزمایشی (آگومان ها، روش های تست و غیره) است، تولید می کند. این نوع تست یک فایل فشرده حاوی فایل xctestrun. و محتویات مربوطه دایرکتوری Build/Products را می پذیرد که شامل تمام فایل های باینری مورد نیاز برای اجرای تست ها است.
نمایندگی JSON |
---|
{ "testsZip": { object ( |
زمینه های | |
---|---|
testsZip | ضروری. zip. حاوی فایل xctestrun. و محتویات دایرکتوری DerivedData/Build/Products. اگر قسمت xctestrun مشخص شده باشد، فایل .xctestrun در این فایل فشرده نادیده گرفته می شود. |
xctestrun | یک فایل xctestrun. که فایل .xctestrun را در فایل فشرده تست ها لغو می کند. از آنجا که فایل .xctestrun حاوی متغیرهای محیطی به همراه روشهای تست برای اجرا و/یا نادیده گرفتن است، این میتواند برای آزمایشهای اشتراکگذاری مفید باشد. پیش فرض از zip تست گرفته شده است. |
xcodeVersion | نسخه Xcode که باید برای آزمایش استفاده شود. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. به طور پیش فرض آخرین نسخه Xcode Firebase Test Lab را پشتیبانی می کند. |
appBundleId | فقط خروجی شناسه بسته نرم افزاری در حال آزمایش. |
testSpecialEntitlements | گزینه ای برای آزمایش حقوق برنامه های ویژه. تنظیم این باعث می شود که برنامه دارای حقوق ویژه با یک شناسه برنامه صریح مجدداً امضا شود. در حال حاضر از تست مجوز aps-environment پشتیبانی می کند. |
IosTestLoop
آزمایشی از یک برنامه iOS که یک یا چند سناریو حلقه بازی را پیاده سازی می کند. این نوع آزمایش یک برنامه آرشیو شده (فایل ipa.) و فهرستی از سناریوهای عدد صحیح را می پذیرد که به صورت متوالی در برنامه اجرا می شوند.
نمایندگی JSON |
---|
{
"appIpa": {
object ( |
زمینه های | |
---|---|
appIpa | ضروری. .ipa برنامه برای تست. |
scenarios[] | لیست سناریوهایی که باید در طول آزمون اجرا شوند. در صورت نامشخص بودن، سناریوی واحد 0 را پیشفرض میکند. |
appBundleId | فقط خروجی شناسه بسته نرم افزاری در حال آزمایش. |
EnvironmentMatrix
ماتریس محیط هایی که آزمون قرار است در آنها اجرا شود.
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
environment_matrix میدان اتحادیه. ضروری. ماتریس محیط environment_matrix فقط می تواند یکی از موارد زیر باشد: | |
androidMatrix | ماتریسی از دستگاه های اندرویدی |
androidDeviceList | لیستی از دستگاه های اندروید؛ تست فقط بر روی دستگاه های مشخص شده اجرا می شود. |
iosDeviceList | لیستی از دستگاه های iOS. |
AndroidMatrix
مجموعه ای از جایگشت های پیکربندی دستگاه Android با محصول متقابل محورهای داده شده تعریف می شود. در داخل، AndroidMatrix داده شده به مجموعهای از دستگاههای Android گسترش مییابد.
فقط جایگشت های پشتیبانی شده نمونه سازی خواهند شد. جایگشت های نامعتبر (مثلاً مدل ها/نسخه های ناسازگار) نادیده گرفته می شوند.
نمایندگی JSON |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
زمینه های | |
---|---|
androidModelIds[] | ضروری. شناسه های مجموعه دستگاه اندروید مورد استفاده قرار می گیرد. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
androidVersionIds[] | ضروری. شناسه مجموعه نسخه سیستم عامل اندروید مورد استفاده قرار می گیرد. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
locales[] | ضروری. مجموعه ای از مناطقی که دستگاه تست برای آزمایش فعال می کند. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
orientations[] | ضروری. مجموعه ای از جهت گیری ها برای تست. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
AndroidDeviceList
لیستی از پیکربندیهای دستگاه Android که در آن آزمایش قرار است اجرا شود.
نمایندگی JSON |
---|
{
"androidDevices": [
{
object ( |
زمینه های | |
---|---|
androidDevices[] | ضروری. لیستی از دستگاه های اندرویدی |
دستگاه اندروید
یک دستگاه اندرویدی واحد.
نمایندگی JSON |
---|
{ "androidModelId": string, "androidVersionId": string, "locale": string, "orientation": string } |
زمینه های | |
---|---|
androidModelId | ضروری. شناسه دستگاه اندرویدی مورد استفاده. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
androidVersionId | ضروری. شناسه نسخه سیستم عامل اندروید مورد استفاده. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
locale | ضروری. محلی که دستگاه تست برای آزمایش استفاده می شود. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
orientation | ضروری. نحوه جهت گیری دستگاه در طول آزمایش از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
IosDeviceList
فهرستی از پیکربندیهای دستگاه iOS که در آن آزمایش قرار است اجرا شود.
نمایندگی JSON |
---|
{
"iosDevices": [
{
object ( |
زمینه های | |
---|---|
iosDevices[] | ضروری. لیستی از دستگاه های iOS. |
آیوس دیوایس
یک دستگاه iOS واحد.
نمایندگی JSON |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
زمینه های | |
---|---|
iosModelId | ضروری. شناسه دستگاه iOS مورد استفاده. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
iosVersionId | ضروری. شناسه نسخه اصلی نرم افزار iOS مورد استفاده قرار می گیرد. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
locale | ضروری. محلی که دستگاه تست برای آزمایش استفاده می شود. از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
orientation | ضروری. نحوه جهت گیری دستگاه در طول آزمایش از TestEnvironmentDiscoveryService برای دریافت گزینه های پشتیبانی شده استفاده کنید. |
اجرای تست
یک تست واحد که در یک محیط واحد اجرا می شود.
نمایندگی JSON |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
زمینه های | |
---|---|
id | فقط خروجی شناسه منحصر به فرد توسط سرویس تنظیم شده است. |
matrixId | فقط خروجی شناسه حاوی TestMatrix. |
projectId | فقط خروجی پروژه ابری که اجرای آزمایشی را در اختیار دارد. |
testSpecification | فقط خروجی نحوه اجرای آزمون |
shard | فقط خروجی جزئیات در مورد خرده. |
environment | فقط خروجی نحوه پیکربندی ماشین(های) میزبان |
state | فقط خروجی پیشرفت فعلی اجرای آزمایش را نشان می دهد (به عنوان مثال، FINISHED). |
toolResultsStep | فقط خروجی جایی که نتایج این اجرا نوشته می شود. |
timestamp | فقط خروجی زمانی که این اجرای آزمایشی در ابتدا ایجاد شد. مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثالها: |
testDetails | فقط خروجی جزئیات بیشتر در مورد آزمون در حال اجرا. |
تکه شکسته
فقط خروجی جزئیات در مورد خرده.
نمایندگی JSON |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
زمینه های | |
---|---|
shardIndex | فقط خروجی شاخص خرده در میان همه خرده ها. |
numShards | فقط خروجی تعداد کل خرده ها |
testTargetsForShard | فقط خروجی آزمایش اهداف برای هر قطعه فقط برای اشتراک گذاری دستی تنظیم شده است. |
estimatedShardDuration | فقط خروجی مدت زمان تخمینی خرده بر اساس سوابق زمانبندی مورد آزمایش قبلی، در صورت وجود. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
محیط
محیطی که آزمون در آن اجرا می شود.
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
environment میدانی اتحادیه ضروری. محیط زیست. environment می تواند تنها یکی از موارد زیر باشد: | |
androidDevice | دستگاه اندرویدی که باید با تست اندروید استفاده شود. |
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 | فقط خروجی پروژه ابری که مالک ابزار است مرحله نتایج. |
historyId | فقط خروجی یک ابزار ID تاریخچه را نشان می دهد. |
executionId | فقط خروجی یک ابزار شناسه اجرا را نتیجه می دهد. |
stepId | فقط خروجی یک ابزار ID مرحله را نتیجه می دهد. |
جزئیات تست
جزئیات بیشتر در مورد پیشرفت آزمون در حال اجرا.
نمایندگی JSON |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
زمینه های | |
---|---|
progressMessages[] | فقط خروجی توصیفات دقیق و قابل خواندن توسط انسان از پیشرفت آزمایش. به عنوان مثال: "تهیه یک دستگاه"، "آزمایش شروع". در طول اجرا ممکن است داده های جدیدی به انتهای progressMessages اضافه شود. |
errorMessage | فقط خروجی اگر TestState ERROR باشد، این رشته حاوی جزئیات قابل خواندن توسط انسان در مورد خطا خواهد بود. |
ResultStorage
مکان هایی که نتایج اجرای آزمون در آنها ذخیره می شود.
نمایندگی JSON |
---|
{ "googleCloudStorage": { object ( |
زمینه های | |
---|---|
googleCloudStorage | ضروری. |
toolResultsHistory | تاریخچه نتایج ابزار که شامل اجرای نتایج ابزار است که نتایج روی آن نوشته می شود. در صورت عدم ارائه، سرویس مقدار مناسبی را انتخاب می کند. |
toolResultsExecution | فقط خروجی ابزار اجرا را نتیجه می دهد که نتایج روی آن نوشته می شود. |
resultsUrl | فقط خروجی URL به نتایج در کنسول وب Firebase. |
GoogleCloudStorage
یک مکان ذخیره سازی در فضای ذخیره سازی ابری Google (GCS).
نمایندگی JSON |
---|
{ "gcsPath": string } |
زمینه های | |
---|---|
gcsPath | ضروری. مسیر یک دایرکتوری در GCS که در نهایت حاوی نتایج این تست خواهد بود. کاربر درخواست کننده باید دسترسی نوشتن در سطل در مسیر ارائه شده داشته باشد. |
Tool ResultsHistory
یک منبع تاریخچه نتایج ابزار را نشان می دهد.
نمایندگی JSON |
---|
{ "projectId": string, "historyId": string } |
زمینه های | |
---|---|
projectId | ضروری. پروژه ابری که مالک ابزار تاریخچه نتایج است. |
historyId | ضروری. یک ابزار ID تاریخچه را نشان می دهد. |
ابزار ResultsExecution
یک منبع اجرای نتایج ابزار را نشان می دهد.
این نتایج یک TestMatrix را دارد.
نمایندگی JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
زمینه های | |
---|---|
projectId | فقط خروجی پروژه ابری که ابزار را در اختیار دارد اجرا می شود. |
historyId | فقط خروجی یک ابزار ID تاریخچه را نشان می دهد. |
executionId | فقط خروجی یک ابزار شناسه اجرا را نتیجه می دهد. |
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 آزمایشی شامل کلاس اجراکننده آزمایشی مشخص شده توسط کاربر یا در فایل مانیفست نیست. این می تواند به دلیل یکی از دلایل زیر ایجاد شود:
|
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 | اجرای ماتریس تست موفقیت آمیز بود، به عنوان مثال:
|
FAILURE | یک اجرا ناموفق بود، برای مثال:
|
INCONCLUSIVE | اتفاق غیرمنتظره ای افتاد. اجرا همچنان باید ناموفق در نظر گرفته شود، اما این احتمالاً یک مشکل گذرا است و اجرای مجدد آزمون ممکن است موفقیت آمیز باشد. |
SKIPPED | تمام تست ها نادیده گرفته شدند، به عنوان مثال:
|
مواد و روش ها | |
---|---|
| اجرای آزمون های ناتمام را در یک ماتریس تست لغو می کند. |
| ماتریسی از تست ها را با توجه به مشخصات داده شده ایجاد و اجرا می کند. |
| وضعیت یک ماتریس تست و اجراها را پس از ایجاد آنها بررسی می کند. |