آزمایشگاه تست را در سیستم CI/CD خود ادغام کنید

۱. مقدمه

آخرین به‌روزرسانی: 2022-04-07

نحوه اجرای تست‌های موبایل با سیستم‌های CI/CD

اجرای تست‌های موبایل می‌تواند دشوار باشد: بسیاری از برنامه‌ها روی پلتفرم‌ها، دستگاه‌ها و نسخه‌های API مختلفی اجرا می‌شوند. توسعه‌دهندگان برنامه می‌خواهند تا حد امکان روی پیکربندی‌های مختلف آزمایش کنند تا قبل از اینکه کاربرانشان مشکلات را پیدا کنند، آنها را پیدا کنند. اما محدودیت‌های هزینه و منابع، تعداد دستگاه‌های آزمایش و میزان نگهداری دستی که توسعه‌دهندگان می‌توانند روی آن سرمایه‌گذاری کنند را محدود می‌کند. وقتی فرآیند توسعه افزایش می‌یابد، به خصوص برای سیستم‌های ادغام مداوم/توسعه مداوم (CI/CD)، فرآیند آزمایش باید خودکار شود و در عین حال هزینه و تلاش نگهداری را به حداقل برساند.

برای کمک به شما در درک عملکرد برنامه‌هایتان روی دستگاه‌های کاربرانتان، Firebase Test Lab طیف وسیعی از دستگاه‌های فیزیکی و مجازی موبایل را در مراکز داده خود میزبانی می‌کند. ما همچنین Google Cloud CLI را ارائه می‌دهیم، ابزاری مستقل از پلتفرم و خط فرمان که تست‌های در حال اجرا روی دستگاه‌های مراکز داده ما را هماهنگ می‌کند. gcloud CLI ادغام راهکار تست مبتنی بر ابر Test Lab را در گردش‌های کاری CI/CD موجود ساده می‌کند.

پشتیبانی چند پلتفرمی

آزمایشگاه تست، راهکارهای تست برای برنامه‌های اندروید و iOS و پشتیبانی تخصصی برای بازی‌های موبایل مانند Unity ارائه می‌دهد. گزینه‌های تست، چارچوب‌های تست محبوب مانند Android Espresso، UI Automator و iOS XCTest را پوشش می‌دهند. با استفاده از خزنده خودکار ما، Robo ، آزمایشگاه تست حتی می‌تواند تست‌ها را بدون هیچ کد تستی اجرا کند.

بدون نیاز به سخت‌افزار

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

سریع و قابل اعتماد

اجرای همزمان چندین مورد تست می‌تواند زمان زیادی طول بکشد و فرآیندهای CI/CD را مسدود کند. با Test Lab، می‌توانید به راحتی تست‌ها را تقسیم‌بندی کرده و آنها را به صورت موازی روی چندین دستگاه اجرا کنید. همچنین می‌توانید عدم تطابق (flakiness)، یک نقطه ضعف رایج در تست موبایل، را تشخیص دهید.

آنچه یاد خواهید گرفت

  • نحوه ساخت مصنوعات آزمایشی
  • نحوه اجرای تست موبایل با استفاده از gcloud CLI
  • نحوه راه اندازی Jenkins CI
  • نحوه اجرای تست‌های موبایل با استفاده از Jenkins CI
  • نحوه پیکربندی تست‌ها برای افزایش مقیاس با سیستم‌های CI

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

آنچه نیاز دارید

اگر ترجیح می‌دهید چیزهایی را از ابتدا بسازید، برای اجرای تست اندروید به اندروید استودیو یا برای اجرای تست iOS به XCode نیاز دارید. یا فقط خودتان را بیاورید و ما مصنوعات را در اختیارتان قرار خواهیم داد.

۲. با رابط خط فرمان gcloud یک تست اجرا کنید

ساخت APK برنامه اندروید و تست APK

برای اجرای یک تست با Test Lab، با ساخت یک APK برنامه اندروید و یک APK آزمایشی شروع کنید که شامل تست‌های ابزاری برای اجرا روی دستگاه‌های سخت‌افزاری یا شبیه‌سازها است. اگر از قبل یک پایگاه کد فعال دارید، می‌توانید APK های خودتان را بسازید یا می‌توانید از BasicSample برای Espresso استفاده کنید.

برای ساخت APK با استفاده از دستورات Gradle، باید Android SDK را نصب کنید. اگر Android Studio روی دستگاه شما نصب نشده است، Android Studio و Android SDK را نصب کنید و محیط ANDROID_HOME را با دایرکتوری Android SDK خود تنظیم کنید. به عنوان مثال، در فایل ~/.bash_profile خود، خط زیر را اضافه کنید:

export ANDROID_HOME=~/Android/Sdk # For linux
export ANDROID_HOME=~/Library/Android/sdk  # For MacOS

سپس، دستورات زیر را برای کلون کردن کد و ساخت APK اجرا کنید:

git clone https://github.com/android/testing-samples.git
cd testing-samples/ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

پس از اجرای دستورات clone و build، می‌توانید APK برنامه و APK آزمایشی آن را در مکان‌های زیر پیدا کنید:

app/build/outputs/apk/debug/app-debug.apk
app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

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

اگر کد منبع یک برنامه iOS را دارید که کار می‌کند، می‌توانید یک XCTest بنویسید و یک فایل زیپ از برنامه و تست‌ها بسازید .

استفاده از رابط خط فرمان gcloud برای اجرای تست با Test Lab

در این بخش، شما یک پروژه Firebase ایجاد می‌کنید و محیط Google Cloud SDK محلی خود را پیکربندی می‌کنید. برای کسب اطلاعات بیشتر، به «شروع آزمایش با gcloud CLI» مراجعه کنید.

تنظیمات رابط خط فرمان gcloud

  1. کیت توسعه نرم‌افزار گوگل کلود (Google Cloud SDK) را که شامل ابزار خط فرمان gcloud است، دانلود کنید.
  2. تأیید کنید که نصب شما به‌روز است:
gcloud components update
  1. با استفاده از حساب گوگل خود وارد رابط خط فرمان gcloud شوید:
gcloud auth login
  1. پروژه Firebase خود را در gcloud CLI تنظیم کنید، که در آن PROJECT_ID شناسه پروژه Firebase شما است. می‌توانید شناسه پروژه را در URL کنسول Firebase پیدا کنید که از این قرارداد نامگذاری پیروی می‌کند: https://console.firebase.google.com/project/[PROJECT_ID]/...
gcloud config set project PROJECT_ID

اگر پروژه Firebase ندارید، یکی را در کنسول Firebase ایجاد کنید.

با استفاده از APK های ساخته شده، یک تست اجرا کنید

در این بخش، شما یک تست ابزار دقیق را روی دستگاه پیش‌فرض Test Lab، که یک Pixel 3 با سطح API 28 است، اجرا می‌کنید. اگر مایل به استفاده از دستگاه دیگری هستید، دستگاه‌های موجود را بررسی کنید .

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

gcloud firebase test android run \
  --type instrumentation \
  --app app/build/outputs/apk/debug/app-debug.apk \
  --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

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

شما می‌توانید نتایج آزمایش را با استفاده از هر یک از گزینه‌های زیر تجزیه و تحلیل کنید:

  • خلاصه gcloud - وقتی آزمایش شما تمام شد، رابط خط فرمان gcloud خلاصه‌ای از نتایج آزمایش شما را چاپ می‌کند.
  • کد خروج gcloud - پس از اتمام آزمایش، در صورت موفقیت‌آمیز بودن آزمایش، دستور با عدد ۰ خارج می‌شود. در صورت شکست آزمایش، دستور با کد خروج غیر صفر خارج می‌شود.
  • کنسول فایربیس - رابط خط فرمان gcloud لینکی به کنسول فایربیس چاپ می‌کند. این لینک از قرارداد نامگذاری https://console.firebase.google.com/project/PROJECT_ID/testlab/... پیروی می‌کند. برای کسب اطلاعات بیشتر، به بخش «تفسیر نتایج حاصل از اجرای یک تست واحد» مراجعه کنید.
  • فایل JUnit XML - رابط خط فرمان gcloud موارد زیر را چاپ می‌کند:
Raw results will be stored in your Cloud Storage bucket at [https://console.developers.google.com/storage/browser/test-lab-xxxxx/xxxxx/]

test-lab-xxxxx/xxxxx مخزن ذخیره‌سازی ابری است که مصنوعات و نتایج آزمایش را ذخیره می‌کند. برای یافتن فایل JUnit XML که حاوی نتایج آزمایش است، لینک را باز کرده و به blueline-28-en-portrait/test_result_1.xml بروید.

۳. با Jenkins CI راه‌اندازی کنید

در این بخش شما از Jenkins CI، یک سیستم CI محبوب، برای اجرای تست‌ها با Test Lab استفاده می‌کنید. اگر می‌خواهید از یک سیستم CI متفاوت استفاده کنید، به Advanced best practiceها برای اجرای مجموعه‌های تست بزرگ و مستندات سایر سیستم‌های CI مانند Bitrise و Circle CI مراجعه کنید. می‌توانید از Flank به عنوان جایگزینی برای gcloud CLI استفاده کنید.

فعال کردن رابط خط فرمان gcloud برای جنکینز

قبل از اینکه بتوانید از Test Lab با Jenkins استفاده کنید، باید APIهای مورد نیاز را فعال کنید و یک حساب کاربری سرویس ایجاد کنید که Jenkins بتواند از آن برای احراز هویت با gcloud CLI استفاده کند.

یک حساب سرویس Google Cloud برای Jenkins اضافه کنید

حساب‌های کاربری سرویس، حساب‌های کاربری محدودی هستند که برای یکپارچه‌سازی سرویس‌ها در نظر گرفته شده‌اند. این حساب‌ها کنترل دقیقی را برای سرویس‌های خاص ارائه می‌دهند و مشمول بررسی هرزنامه یا درخواست‌های کپچا نمی‌شوند، که در غیر این صورت می‌توانند ساخت‌های CI شما را مسدود کنند.

برای ایجاد حساب کاربری سرویس، مراحل زیر را دنبال کنید:

  1. صفحه حساب‌های سرویس را در کنسول گوگل کلود باز کنید.
  2. روی «ایجاد حساب کاربری سرویس» کلیک کنید، یک نام و توضیحات اضافه کنید و سپس روی «ایجاد و ادامه» کلیک کنید.
  3. از منوی کشویی «انتخاب نقش» ، گزینه «پایه» و سپس «ویرایشگر» را انتخاب کنید.
  4. روی ادامه کلیک کنید، سپس روی انجام شد کلیک کنید.

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

برای ایجاد و دانلود کلید حساب سرویس، این مراحل را دنبال کنید:

  1. از صفحه حساب‌های سرویس در کنسول گوگل کلود، روی ایمیل مرتبط با حسابی که ایجاد کرده‌اید کلیک کنید.
  2. کلیدها را انتخاب کنید، سپس روی افزودن کلید و ایجاد کلید جدید کلیک کنید.
  3. JSON را انتخاب کنید، سپس روی ایجاد کلیک کنید.
  4. وقتی از شما خواسته شد فایل را دانلود کنید، روی تأیید کلیک کنید. فایل را در یک مکان امن در رایانه خود دانلود کنید. بعداً هنگام پیکربندی جنکینز به این فایل نیاز خواهید داشت.

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

فعال کردن API های مورد نیاز Google Cloud

API تست ابری به شما امکان می‌دهد تست‌ها را روی زیرساخت گوگل اجرا کنید. شما این API را زمانی فعال کرده‌اید که اجرای یک تست با gcloud CLI را تکمیل کرده‌اید. API نتایج ابزار ابری به شما امکان می‌دهد به صورت برنامه‌نویسی به نتایج تست خود دسترسی داشته باشید.

  1. کتابخانه API کنسول توسعه‌دهندگان گوگل را باز کنید.
  2. در نوار جستجوی بالای کنسول Firebase، نام هر API مورد نیاز ( Cloud Testing API و Cloud Tool Results API ) را وارد کنید. صفحه مرور کلی برای API درخواستی ظاهر می‌شود.
  3. در صفحه مرور کلی هر API، روی فعال کردن API کلیک کنید.

نصب و راه‌اندازی Jenkins

شما می‌توانید Jenkins CI را در لینوکس، macOS، ویندوز و بسیاری از محیط‌های دیگر نصب و راه‌اندازی کنید. جزئیات خاصی از این codelab مختص نصب و اجرای Jenkins CI در لینوکس است، از جمله استفاده از اسلش (/) در مسیرهای فایل.

برای دانلود و نصب Jenkins روی رایانه‌ای که لینوکس یا ویندوز اجرا می‌کند، دستورالعمل‌های نصب Jenkins را دنبال کنید. پس از نصب Jenkins، همان دستورالعمل‌های نصب Jenkins را برای تکمیل راه‌اندازی و دسترسی به داشبورد Jenkins با استفاده از http://localhost:8080 دنبال کنید.

افزونه‌های نصب شده را تأیید کنید

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

  1. در داشبورد جنکینز، روی مدیریت جنکینز و سپس روی مدیریت افزونه‌ها کلیک کنید.
  2. افزونه‌های Git و GCloud SDK را جستجو کنید و آنها را نصب کنید (اگر هنوز نصب نشده‌اند).

مکان SDK های اندروید و گوگل کلود خود را پیکربندی کنید

اکنون به جنکینز دستور می‌دهید که Google Cloud SDK و Android SDK را کجا پیدا کند.

برای پیکربندی Google Cloud و Android SDK ها برای Jenkins، این مراحل را دنبال کنید:

  1. در داشبورد Jenkins، روی مدیریت Jenkins کلیک کنید و سپس روی پیکربندی کلی ابزار (Global Tool Configuration) کلیک کنید.
  2. در بخش Google Cloud SDK ، روی افزودن Google Cloud SDK کلیک کنید.
  3. در فیلد نام ، نامی برای نمونه Google Cloud SDK وارد کنید که به راحتی قابل یادآوری باشد، برای مثال، GCloud-SDK.
  4. دایرکتوری اصلی Google Cloud SDK خود را وارد کنید، برای مثال، /opt/google-cloud-sdk .
  5. روی ذخیره کلیک کنید.
  6. با باز کردن داشبورد > مدیریت جنکینز > پیکربندی سیستم ، ویژگی‌های سیستم خود را برای SDK های اندروید و گوگل کلود پیکربندی کنید.
  7. کادر انتخاب متغیرهای محیطی را علامت بزنید و روی افزودن کلیک کنید.
  8. در فیلد نام ، ANDROID_HOME را وارد کنید. در فیلد مقدار ، محل ذخیره SDK اندروید خود را وارد کنید، برای مثال، /opt/Android/Sdk .
  9. روی کادر انتخاب Tool Locations کلیک کنید و روی Add کلیک کنید. از منوی کشویی Name ، نام نمونه Google Cloud SDK که در Global Tool Configuration اضافه کرده‌اید را انتخاب کنید.
  10. در فیلد Home ، محل Google Cloud SDK خود را وارد کنید، برای مثال، /opt/google-cloud-sdk .
  11. روی ذخیره کلیک کنید.

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

اکنون اعتبارنامه‌های حساب سرویس gcloud CLI خود را به Jenkins اضافه می‌کنید تا Jenkins بتواند دستورات gcloud CLI را تأیید و با موفقیت اجرا کند.

  1. در داشبورد Jenkins، روی مدیریت Jenkins و سپس روی مدیریت اعتبارنامه‌ها کلیک کنید.
  2. در بخش فروشگاه‌های تحت پوشش جنکینز ، روی لینک دامنه (جهانی) کلیک کنید، سپس روی افزودن اعتبارنامه‌ها کلیک کنید.
  3. از منوی کشویی Kind ، گزینه Google Service Account from private key را انتخاب کنید.
  4. در فیلد نام پروژه ، نام پروژه Firebase خود را وارد کنید.
  5. کلید JSON را انتخاب کنید، سپس روی مرور کلیک کنید و به مکانی که کلید حساب سرویس خود را ذخیره کرده‌اید، بروید.
  6. روی ایجاد کلیک کنید.

اکنون آماده پیکربندی ساخت خودکار Jenkins برای آزمایشگاه تست هستید.

۴. تست‌های Test Lab را با Jenkins CI اجرا کنید

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

شما می‌توانید Jenkins را طوری پیکربندی کنید که buildهای خودکار را اجرا کند و هر بار که به‌روزرسانی‌های برنامه شما بررسی می‌شوند، تست‌ها را اجرا کند. همچنین می‌توانید Jenkins را طوری پیکربندی کنید که buildها را به صورت دوره‌ای اجرا کند. برای کسب اطلاعات بیشتر در مورد پیکربندی buildها در Jenkins، به بخش پیکربندی buildهای خودکار مراجعه کنید.

پروژه Jenkins خود را ایجاد و پیکربندی کنید

یک پروژه برای اجرای تست یکپارچه‌سازی مداوم برنامه خود با Test Lab ایجاد کنید.

ایجاد یک پروژه جنکینز

  1. با مراجعه به آدرس http://localhost:8080، داشبورد Jenkins را باز کنید.
  2. در داشبورد جنکینز، روی «مورد جدید» کلیک کنید.
  3. یک نام برای پروژه خود در فیلد Item name وارد کنید و برای ایجاد پروژه‌ای که از یک پیکربندی ساخت واحد استفاده می‌کند، روی Freestyle project کلیک کنید.
  4. روی تأیید کلیک کنید. برای تکمیل پیکربندی‌های پروژه، بخش‌های باقی‌مانده را به ترتیب تکمیل کنید.

پیکربندی مدیریت کد منبع

  1. از تب مدیریت کد منبع ، گیت (Git) را انتخاب کنید.
  2. در قسمت آدرس مخزن (Repository URL)، آدرس https://github.com/android/testing-samples.git را وارد کنید.

محیط ساخت را پیکربندی کنید

بخش محیط ساخت به شما امکان می‌دهد ویژگی‌های ساخت را پیکربندی کنید. با دنبال کردن این مراحل، احراز هویت Google Cloud را فعال کنید:

  1. در برگه Build Environment ، کادر تأیید اعتبار GCloud SDK را علامت بزنید و نام نصبی را که هنگام افزودن اطلاعات نصب Google Cloud خود انتخاب کرده‌اید، انتخاب کنید.
  2. از منوی کشویی Google Credentials ، اعتبارنامه‌های حساب سرویسی که پیکربندی کرده‌اید را انتخاب کنید.

مراحل ساخت Gradle را برای بازسازی بسته‌های APK اضافه کنید

  1. به پایین اسکرول کنید تا به بخش Build برسید، روی Add build step کلیک کنید و سپس Execute shell را انتخاب کنید.
  2. یک مرحله ساخت اضافه کنید تا دستورات زیر در دایرکتوری اصلی برنامه شما اجرا شوند:
cd ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

مرحله ساخت gcloud CLI را به Jenkins اضافه کنید

اکنون آماده‌اید تا با استفاده از خط فرمان gcloud CLI، یک مرحله ساخت به Jenkins اضافه کنید تا Test Lab را اجرا کند.

برای اضافه کردن مرحله ساخت gcloud CLI، یک مرحله ساخت پوسته Execute اضافه کنید و دستور زیر را وارد کنید:

gcloud config set project PROJECT_ID
gcloud firebase test android run \
--app ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/debug/app-debug.apk
--test ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

پس از اتمام تنظیمات پروژه، به پایین صفحه بروید و پیکربندی را ذخیره کنید. شما به صفحه اصلی پروژه جدید هدایت می‌شوید.

اجرای تست‌ها با Jenkins

اکنون شما آماده‌اید تا پروژه جنکینز را بسازید و آزمایشی مانند آزمایش دستی که با gcloud CLI اجرا کردید، اجرا کنید.

برای اجرای تست با Jenkins، مراحل زیر را دنبال کنید:

  1. برای شروع ساخت به صورت دستی، روی «اکنون بسازید» کلیک کنید.
  2. با کلیک روی ساخت جدید > خروجی کنسول، پیشرفت و نتایج را بررسی کنید.

اگر خطایی نمی‌بینید، تبریک می‌گویم! شما همین الان یک پروژه راه‌اندازی کردید و با یک کلیک روی دستگاه Pixel 2 آن را تست کردید. اگر با خطایی مواجه شدید، به بخش عیب‌یابی مراجعه کنید.

۵. بهترین شیوه‌های پیشرفته برای اجرای مجموعه‌های تست بزرگ

وقتی می‌خواهید تست‌های زیادی را همزمان اجرا کنید، از این بهترین شیوه‌ها پیروی کنید تا مطمئن شوید که تست‌هایتان سریع و قابل اعتماد اجرا می‌شوند.

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

شما به راحتی می‌توانید چندین دستگاه را به مرحله ساخت gcloud CLI اضافه کنید. و می‌توانید دستگاه‌ها، نسخه‌ها، مکان‌ها و جهت‌های موجود را بررسی و انتخاب کنید. به عنوان مثال، دستور زیر آزمایش‌ها را روی دو دستگاه اجرا می‌کند:

  • یک گوگل پیکسل ۲ مجازی با API سطح ۳۰ در حالت عمودی و زبان انگلیسی
  • یک گوشی سامسونگ گلکسی S20 فیزیکی با API سطح 29 در حالت افقی و زبان فرانسوی
gcloud firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --device model=Pixel2,version=30,locale=en,orientation=portrait  \
  --device model=x1q,version=29,locale=fr,orientation=landscape

از یک فایل پیکربندی YAML خط فرمان gcloud استفاده کنید

اگر ترجیح می‌دهید آرگومان‌های خود را در یک مکان یا با سیستم کنترل منبع خود مدیریت کنید، می‌توانید این آرگومان‌ها را در یک فایل آرگومان با فرمت YAML مشخص کنید. برای یادگیری نحوه استفاده از این ویژگی، gcloud topic arg-files اجرا کنید.

تست‌های Shard برای اجرای موازی

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

برای فعال کردن sharding، از کانال gcloud beta استفاده کنید و یا فلگ –num-uniform-shards یا –test-targets-for-shard را به مرحله ساخت gcloud CLI اضافه کنید. به عنوان مثال، برای sharding تست‌های خود به پنج اجرا و اجرای موازی، دستورات زیر را اجرا کنید:

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-uniform-shards 5

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

تست‌های موبایل اغلب می‌توانند ناپایدار باشند. گاهی اوقات تست‌ها با موفقیت انجام می‌شوند و گاهی اوقات ممکن است شکست بخورند، حتی با همان تنظیمات. شما می‌توانید با استفاده از پرچم –num-flaky-test-attempts در gcloud CLI تشخیص دهید که آیا یک تست ناموفق ناپایدار بوده است یا خیر. این پرچم تعداد دفعاتی را که یک تست باید دوباره امتحان شود، در صورت شکست یک یا چند مورد از تست‌ها به هر دلیلی، مشخص می‌کند.

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

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-flaky-test-attempts 3

۶. تبریک

تبریک می‌گویم، شما با موفقیت اولین تست آزمایشگاه خود را با یک سیستم CI انجام دادید!

شما APKهای اپلیکیشن و تست را ساختید و یک تست ابزار دقیق را با Test Lab با استفاده از gcloud CLI اجرا کردید. همچنین یک پروژه Jenkins برای خودکارسازی همان تست راه‌اندازی کردید.

اکنون شما مراحل کلیدی برای ادغام آزمایشگاه تست در سیستم CI/CD خود را می‌دانید.

بعدش چی؟

نحوه تنظیم CI با استفاده از Firebase Emulator Suite را بررسی کنید

مطالعه بیشتر

اسناد مرجع