آزمایش را با سیستم های یکپارچه سازی پیوسته (CI) شروع کنید

هنگام توسعه برنامه خود با استفاده از هر سیستم یکپارچه سازی پیوسته (CI) می توانید از Firebase Test Lab استفاده کنید. سیستم‌های یکپارچه‌سازی پیوسته به شما امکان می‌دهند هر بار که به‌روزرسانی‌های کد منبع برنامه خود را بررسی می‌کنید، به‌طور خودکار برنامه خود را بسازید و آزمایش کنید.

استفاده از Firebase Test Lab با Jenkins CI

این بخش نحوه استفاده از Test Lab با Jenkins CI را شرح می دهد.

الزامات

قبل از اینکه بتوانید از Firebase Test Lab با جنکینز استفاده کنید، باید مراحل زیر را انجام دهید:

  1. gcloud را راه اندازی کنید. برای ایجاد یک پروژه Firebase و پیکربندی محیط Google Cloud SDK محلی خود، دستورالعمل‌های استفاده از Firebase Test Lab را از خط فرمان gcloud دنبال کنید.

  2. ایجاد و مجوز یک حساب خدمات. حساب‌های سرویس تحت بررسی هرزنامه یا درخواست‌های کپچا قرار نمی‌گیرند، که در غیر این صورت می‌تواند ساخت‌های CI شما را مسدود کند. یک حساب سرویس با نقش ویرایشگر در کنسول Google Cloud ایجاد کنید و سپس آن را فعال کنید (برای یادگیری نحوه انجام آن به مستندات gcloud auth activate-service-account مراجعه کنید).

  3. API های مورد نیاز را فعال کنید. پس از ورود به سیستم با استفاده از حساب سرویس: در صفحه کتابخانه Google Developers Console API ، Google Cloud Testing API و Cloud Tool Results API را فعال کنید. برای فعال کردن این APIها، این نام‌های API را در کادر جستجو در بالای کنسول تایپ کنید و سپس روی Enable API در صفحه نمای کلی آن API کلیک کنید.

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

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

برای دانلود و نصب Jenkins روی رایانه‌ای که دارای لینوکس یا ویندوز است، دستورالعمل‌های Installing Jenkins را دنبال کنید. پس از نصب Jenkins، دستورالعمل‌های Starting and Accessing Jenkins را دنبال کنید تا تنظیمات را کامل کنید و به داشبورد Jenkins دسترسی پیدا کنید.

تنظیمات امنیتی جهانی را پیکربندی کنید

جنکینز در اولین نصب، احراز هویت کاربر و کنترل دسترسی را پیکربندی نکرده است. قبل از استفاده از Jenkins با Firebase Test Lab ، تنظیمات امنیتی جهانی را برای اعمال کنترل دسترسی و احراز هویت کاربران پیکربندی کنید.

برای پیکربندی تنظیمات امنیتی جهانی

  1. به داشبورد جنکینز در سرور خود بروید. برای انجام این کار، به http://<servername>:8080 مراجعه کنید، جایی که <servername> نام رایانه ای است که جنکینز را در آن نصب کرده اید.
  2. در داشبورد Jenkins، روی Manage Jenkins کلیک کنید و سپس روی Configure Global Security کلیک کنید.
  3. در صفحه پیکربندی امنیت جهانی ، روی Enable Security کلیک کنید و سپس روی Save کلیک کنید.

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

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

در مرحله بعد، یک پروژه برای اجرای آزمایش یکپارچه سازی مداوم برنامه خود با Firebase Test Lab ایجاد کنید.

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

  1. به داشبورد جنکینز در سرور خود بروید. برای انجام این کار، به http://<servername>:8080 مراجعه کنید، جایی که <servername> نام رایانه ای است که جنکینز را در آن نصب کرده اید.
  2. در داشبورد جنکینز، روی آیتم جدید کلیک کنید.
  3. در قسمت Item name نامی برای پروژه خود تایپ کنید:
    • پروژه Freestyle را برای ایجاد پروژه ای که از یک پیکربندی ساخت استفاده می کند، انتخاب کنید.
    • برای ایجاد پروژه ای که روی چندین پیکربندی ساخت مختلف اجرا می شود، پروژه ساخت چند پیکربندی را انتخاب کنید. اگر قصد دارید اپلیکیشن خود را با پیکربندی های مختلف ساخت (چندین لوکال، چندین سطح API اندروید و غیره) بسازید، پس یک پروژه چند پیکربندی بهترین انتخاب است.
  4. روی ذخیره کلیک کنید.

پس از ایجاد پروژه، مرورگر وب شما صفحه اصلی پروژه شما را نمایش می دهد.

کنترل ویرایش و مراحل ساخت Gradle را اضافه کنید

این بخش نحوه ادغام Jenkins با سیستم‌های کنترل بازبینی مانند GitHub و نحوه اضافه کردن مراحل ساخت Gradle برای ساخت بسته‌های APK از کد منبع را توضیح می‌دهد.

ادغام با GitHub و سایر سیستم های کنترل تجدید نظر

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

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

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

اگر از یک سیستم کنترل بازبینی برای مدیریت کد منبع برنامه خود استفاده می‌کنید، باید هر بار که جنکینز کد منبع را از سیستم کنترل ویرایش خود دانلود می‌کند، یک مرحله ساخت Gradle را برای ایجاد باینری‌های APK جدید اضافه کنید.

  1. برای اجرای دستورات زیر در دایرکتوری اصلی برنامه خود، یک مرحله ساخت اضافه کنید:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. برای استفاده از بسته(های) APK ایجاد شده توسط Gradle هنگام آزمایش با Test Lab یک مرحله ساخت اضافه کنید. می توانید از این مسیر به عنوان <local_server_path> در مثال پوسته اسکریپت ارائه شده در زیر استفاده کنید، جایی که <AppFolder> پوشه پروژه Android Studio برای برنامه شما است:

    <AppFolder>/app/build/outputs/apk
    

مراحل ساخت Test Lab را به جنکینز اضافه کنید

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

برای افزودن مرحله ساخت gcloud

  1. از صفحه اصلی پروژه خود، روی Configure کلیک کنید.
  2. در صفحه پیکربندی پروژه ، به قسمت Build بروید و سپس از منوی افزودن مرحله ساخت، Execute shell را انتخاب کنید.

  3. در پنجره دستوری Jenkins Execute shell ، عبارت زیر را وارد کنید و مسیر برنامه نمونه روی سرور را به جای <local_server_path> ، APK برنامه خود <app_apk> و APK آزمایشی برنامه را <app_test_apk> جایگزین کنید:

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

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

بعد از اینکه Test Lab آزمایش برنامه شما را کامل کرد، می‌توانید نتایج آزمایش را در کنسول Firebase یا در یک سطل Google Cloud Storage در پروژه خود مرور کنید. همچنین می توانید یک دستور gsutil را به دستور پوسته نشان داده شده در بالا اضافه کنید تا داده های نتایج آزمایش را در رایانه محلی خود کپی کنید. برای کسب اطلاعات بیشتر، به تجزیه و تحلیل نتایج Firebase Test Lab مراجعه کنید.

ادغام مداوم با سایر سیستم های CI

برای یادگیری نحوه استفاده از Firebase Test Lab با سایر سیستم‌های CI، اسناد آنها را بررسی کنید: