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

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

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

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

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

مرحله 1. gcloud CLI را راه اندازی کنید

  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 نسخه 1.1 یا بالاتر نیاز دارد. برای فعال کردن آن، استفاده از gcloud firebase test android run با
--use-orchestrator پرچم. برای غیر فعال کردن آن استفاده از --no-use-orchestrator پرچم.

توجه: شما همچنین می توانید کنترل و چگونگی تست آزمایشگاه اجرا می شود آزمون ابزار دقیق خود را با استفاده از پرچم اضافی که در بالا نشان داده نمی شود. به عنوان مثال، شما می توانید با استفاده از --test-targets پرچم برای تست یک کلاس و یا یک روش طبقه استفاده شده توسط APK آزمون خود را. همچنین می‌توانید با استفاده از پرچم «--num-flaky-test-attempts»، که تعداد دفعاتی را که یک یا چند مورد از یک یا چند مورد از اجراهای آزمایشی باید تکرار شود، متوجه شوید که آیا آزمون شما شکست خورده واقعاً پوسته پوسته بوده است یا خیر. موارد تست به هر دلیلی شکست می خورند. برای کسب اطلاعات بیشتر، نگاه کنید به آزمون فایربیس 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

وقتی آزمایش آزمایشگاه آزمایش‌های شما را به پایان رساند، گزارش‌های پوشش کد خود را در 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 بگویید عناصر رابط کاربری خاص را نادیده بگیرد (مثلاً دکمه "خروج"). EditText زمینه پشتیبانی می شوند اما نه فیلدهای متنی در WebView عناصر UI.

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

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

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

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

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

  • پرچم آزمون بازی 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 نتوانست تشخیص دهد که آیا ماتریس آزمایش موفق شد یا ناموفق.
18 محیط تست برای اجرای این آزمایش به دلیل ابعاد تست ناسازگار پشتیبانی نمی شود. اگر سطح API انتخاب شده Android توسط نوع دستگاه انتخاب شده پشتیبانی نشود، ممکن است این خطا رخ دهد.
19 ماتریس تست توسط کاربر لغو شد.
20 یک خطای زیرساخت آزمایشی رخ داد.