Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

تست را با gcloud CLI شروع کنید

این راهنما چگونه به اجرا ابزار دقیق، تست فونز، و یا بازی حلقه با استفاده از CLI gcloud .

برای یک لیست کامل از gcloud دستورات شما می توانید با نرم افزار آندروید خود را در آزمایشگاه تست استفاده کنید، بازدید از اسناد مرجع برای gcloud firebase test android .

قبل از اینکه شروع کنی

اگر شما در حال حاضر، اضافه فایربیس به پروژه آندروید خود را .

مرحله 1. تنظیم CLI gcloud

  1. دانلود ابر SDK گوگل.
  2. این شامل ابزار gcloud CLI است.

  3. اطمینان حاصل کنید که نصب و راه اندازی خود را تا به روز باشد:
    gcloud components update
    
  4. ورود به CLI gcloud با استفاده از حساب Google خود:
    gcloud auth login
    
  5. تنظیم پروژه Firebase خود در gcloud، که در آن PROJECT_ID شناسه پروژه Firebase خود است:
    gcloud config set project PROJECT_ID
    

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

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

به عنوان یک گزینه، شما همچنین می توانید نمونه دانلود برنامه دفترچه یادداشت به شروع به اجرای دستورات حق دور. با استفاده از فایل باینری app-debug-unaligned.apk فایل آزمایش و ابزار دقیق app-debug-test-unaligned.apk ، که در واقع NotePad/app/build/outputs/apk/ .

  • models list : دریافت یک لیست از دستگاه های آندروید در دسترس را برای شما به آزمون در مقابل.

    gcloud firebase test android models list
    

    در خروجی فرمان:

    • ستون MODEL_ID شامل شناسه شما بعدا می توانید استفاده کنید برای اجرای آزمون در مدل دستگاه.
    • ستون OS_VERSION_ID شامل نسخه های سیستم عامل پشتیبانی شده توسط دستگاه.

    نمونه خروجی

    gcloud firebase test android models list output

  • models describe : دریافت اطلاعات بیشتر در مورد خاص آندروید MODEL_ID .

    gcloud firebase test android models describe MODEL_ID
    

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

  • versions list : دریافت یک لیست از نسخه های سیستم عامل در حال حاضر موجود به آزمون در مقابل.

    gcloud firebase test android versions list
    

    شما می توانید یک شناسه از هر کدام از دو ستون اول از خروجی دستور (استفاده از OS_VERSION_ID و VERSION ) به آزمون بعد اجرا در برابر یک نسخه سیستم عامل آندروید. اگر شما از نسخه های سیستم عامل آندروید به آزمون در مقابل مشخص نیست، به طور پیش فرض اشاره تحت TAGS ستون استفاده شده است.

    نمونه خروجی

    gcloud android versions list

  • locales list : دریافت لیست فعلی از مکانهای قابل دسترس به آزمون در مقابل.

    gcloud firebase test android versions list
    

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

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

حالا که می دانید از طیف وسیعی از مدل های دستگاه، مناطق، و نسخه های سیستم عامل در دسترس برای تست کردن برنامه خود را، شما می توانید مشخص کنید دستگاه با استفاده از gcloud firebase test android run فرمان و --device پرچم برای اجرای آزمون فونز یا ابزار دقیق.

اجرای آزمون Robo

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

بیایید با اجرای یک دستور مثال شروع کنیم:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s

--type robo پارامتر ضمنی است اگر هیچ --type مقدار مشخص شده است. شما می توانید مجموعه ای کامل از گزینه های خط فرمان برای اجرای تست با تایپ کردن را ببینید: gcloud help firebase test android run . به عنوان جایگزینی برای تعیین همه این آرگومان ها در خط فرمان ، می توانید آرگومان های خود را به صورت اختیاری در یک فایل آرگومانتی با قالب YAML مشخص کنید. اجرای gcloud topic arg-files به یاد بگیرند که چگونه به استفاده از این امکان

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

انجام آزمایشات ابزار دقیق خود

حالا با استفاده از gcloud ابزار خط فرمان برای اجرای برنامه دفترچه یادداشت را اسپرسو آزمون در تنظیمات دستگاه آندروید خود را مشخص، با استفاده از instrumentation نوع آزمون برای اجرای آزمون در app-debug-test-unaligned.apk شرح زیر است:

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape

--type instrumentation پارامتر ضمنی است اگر یک APK آزمون شده است با مشخص --test . به عنوان جایگزینی برای تعیین همه این آرگومان ها در خط فرمان ، می توانید آرگومان های خود را به صورت اختیاری در یک فایل آرگومانتی با قالب YAML مشخص کنید. اجرای gcloud topic arg-files به یاد بگیرند که چگونه به استفاده از این امکان

از CLI gcloud از آندروید تست ارکستراسیون . Orchestrator به AndroidJUnitRunner v1.0 یا بالاتر نیاز دارد. برای فعال کردن آن، استفاده از gcloud firebase test android run با
--use-orchestrator پرچم. برای غیر فعال کردن آن استفاده از --no-use-orchestrator پرچم.

توجه: شما همچنین می توانید کنترل و چگونگی تست آزمایشگاه اجرا می شود آزمون ابزار دقیق خود را با استفاده از پرچم اضافی که در بالا نشان داده نمی شود. به عنوان مثال، شما می توانید با استفاده از --test-targets پرچم برای تست یک کلاس و یا یک روش طبقه استفاده شده توسط APK آزمون خود را. همچنین می توانید با استفاده از پرچم "--num-flaky-test-Hewl" که مشخص می کند تعداد آزمایش هایی که باید در یک یا چند مورد آزمایش مجدد انجام شود ، مشخص شود که آیا آزمایش شما شکست خورده است یا خیر. موارد آزمون به هر دلیلی شکست می خورد برای کسب اطلاعات بیشتر، نگاه کنید به آزمون فایربیس gcloud Run آندروید .

گزارش پوشش کد برای آزمایش ابزار دقیق

تست آزمایشگاه از پوشش کد گزارش ابزار EMMA و JaCoCo . اگر شما هم ابزار یکپارچه را به ساخت برای برنامه شما، شما می توانید یک گزارش پوشش کد برای آزمایش تست آزمایشگاه های در حال اجرا از gcloud firebase test android run فرمان با استدلال زیر است:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/coverage.ec" \
  --directories-to-pull /sdcard

هنگامی که Test Lab اجرای آزمایشات شما را به پایان می رساند ، گزارش های پوشش کد خود را در Google Cloud Storage پیدا کنید:

  1. از لینک کنسول فایربیس که باز gcloud ابزار چاپ در بالای جدول نتیجه آزمون در ترمینال خود را.
  2. روی یک اجرای آزمایشی از لیست موجود در آن پیوند کلیک کنید تا صفحه جزئیات آن اجرا باز شود.
  3. کلیک کنید نتایج آزمون برای رفتن به سطل ابر ذخیره سازی با نتایج آزمون که اعدام است.
  4. گسترش artifacts/coverage.ec برای دیدن گزارش پوشش کد خود را.

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

پس از چند دقیقه ، خلاصه ای از نتایج آزمایش شما توسط ابزار gcloud چاپ می شود:

Command test results

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

ورود و نوشتار متن سفارشی با تست Robo

آزمون فونز به طور خودکار ورود به سیستم صفحه نمایش که با استفاده از یک حساب Google را برای احراز هویت، مگر اینکه شما با استفاده از کامل --no-auto-google-login پارامتر. همچنین می تواند صفحه های ورود سفارشی را با استفاده از اعتبار حساب آزمایشی که ارائه می دهید تکمیل کند. همچنین می توانید از این پارامتر برای ارائه متن ورودی سفارشی برای سایر زمینه های متن استفاده شده توسط برنامه خود استفاده کنید.

زمینه متن کامل را در برنامه خود، با استفاده از --robo-directives پارامتر و ارائه یک لیست کاما جدا از key-value جفت، که در آن key نام منابع آندروید از عنصر UI هدف است، و value رشته متن است به همچنین می توانید با استفاده از این پرچم به Robo عناصر UI خاصی را نادیده بگیرید (به عنوان مثال ، دکمه "خروج"). EditText زمینه پشتیبانی می شوند اما نه فیلدهای متنی در WebView عناصر UI.

برای مثال ، می توانید از پارامتر زیر برای ورود سفارشی استفاده کنید:

--robo-directives username_resource=username,password_resource=password

دستورات و پرچم های موجود

تست آزمایشگاه gcloud CLI دارای چندین دستور و پرچم است که به شما امکان می دهد آزمایشات را با مشخصات مختلف اجرا کنید:

  • پرچم تست ارکستراسیون آندروید : پرچم برای فعال ارکستراسیون، ابزاری است که اجازه می دهد تا شما را به اجرای هر یک از آزمون های برنامه خود را در نیایش خود را از Instrumentation . Test Lab همیشه آخرین نسخه Orchestrator را اجرا می کند.

  • پرچم آزمون بازی Loop : مجموعه ای از پرچم های پیکربندی است که قادر می سازد و کنترل یک "حالت نسخه ی نمایشی" به رفتار بازیکن شبیه سازی در برنامه های بازی. اطلاعات بیشتر در مورد در حال اجرا تست بازی Loop با تست آزمایشگاه .

  • پرچم لباس Sharding (بتا) : flag یکی که تعیین تعداد ذرات را که شما می خواهید به طور مساوی موارد آزمون توزیع کنید. تکه ها به طور موازی روی دستگاه های جداگانه اجرا می شوند.

  • پرچم دستی Sharding (بتا) : پرچم که تعیین یک گروه از بستهها، کلاس ها، و / یا موارد آزمون به اجرا در تکه های شکسته (یک گروه از موارد آزمون). تکه ها به طور موازی روی دستگاه های جداگانه اجرا می شوند.

  • شبکه پروفیل ترافیک پرچم (بتا) : flag یکی که تعیین میکند که کدام نمایه شبکه آزمون خود را با دستگاه های فیزیکی استفاده کنید. پروفایل های شبکه از شرایط مختلف شبکه تقلید می کند و به شما امکان می دهد عملکرد برنامه خود را در شبکه های غیرقابل اعتماد یا غیرقابل پیش بینی آزمایش کنید.

اسکریپت نویسی دستورات gcloud با Test Lab

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

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

کدهای خروجی اسکریپت

Test Lab چندین کد خروجی را ارائه می دهد که می توانید برای درک بهتر نتایج آزمایشاتی که با استفاده از اسکریپت ها یا فایل های دسته ای اجرا می کنید ، استفاده کنید.

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

کد خروج یادداشت
0 تمام اعدام های آزمایشی به پایان رسید.
1 یک شکست کلی رخ داد. دلایل احتمالی عبارتند از: نام پرونده ای که وجود ندارد یا خطای HTTP/شبکه.
2 آزمایش خارج شد زیرا دستورات یا آرگومان های ناشناخته ارائه شد.
10 یک یا چند مورد آزمایشی (کلاسهای آزمایشی یا روشهای کلاس) در یک اجرای آزمایشی قبول نشد.
15 Firebase Test Lab به دلیل خطای غیرمنتظره نتوانست تعیین کند که ماتریس تست عبور کرده یا شکست خورده است.
18 محیط آزمایش برای اجرای این آزمایش به دلیل ابعاد آزمون ناسازگار پشتیبانی نمی شود. اگر سطح API Android انتخاب شده توسط نوع دستگاه انتخاب شده پشتیبانی نشود ، ممکن است این خطا رخ دهد.
19 ماتریس تست توسط کاربر لغو شد.
20 خطای زیرساخت آزمایش رخ داد.