با تست های ابزار دقیق شروع کنید

این راهنما نحوه آماده سازی و اجرای تست ابزار دقیق با استفاده از Firebase Test Lab را شرح می دهد. برای استفاده از این راهنما، شما یک نیاز آزمون ابزار دقیق (نوشته شده توسط شما یا تیم شما) که با استفاده از اسپرسو یا UI Automator است 2.0 چارچوب آزمون آندروید. آزمون ابزار دقیق می توانید تا 45 دقیقه به دستگاه های فیزیکی و تا 60 دقیقه در اجرا تا دستگاه های مجازی .

در مراحل بعد، APK برنامه و APK آزمایش خود را در Firebase آپلود خواهید کرد.

(اختیاری) کتابخانه اسکرین شات را به برنامه خود اضافه کنید

فایربیس تست آزمایشگاه شامل یک کتابخانه (testlab-INSTR معاونت) که شما می توانید استفاده کنید برای انجام هر گونه تصاویر شما را با AndroidX را ScreenCapture مانند آزمون های نوشته شده با استفاده از هنگام اجرای آزمون ابزار دقیق، چارچوب آزمون اسپرسو . در این بخش چگونگی ایجاد ScreenCapture اشیاء با کتابخانه AndroidX و چگونه آنها را پردازش با استفاده از testlab-INSTR-معاونت.

پس از انجام تست ابزار دقیق، می توانید اسکرین شات های گرفته شده را در کنسول Firebase مشاهده کنید.

یک برنامه نمونه را امتحان کنید

دانلود برنامه نمونه دفترچه یادداشت سعی کنید از این قابلیت است. قابلیت گرفتن اسکرین شات از قبل در پروژه NotePad گنجانده شده است.

مرحله 1. کتابخانه اسکرین شات را به پروژه خود اضافه کنید

  1. در پروژه تست خود را ریشه سطح (سطح پروژه) فایل Gradle ( build.gradle )، اضافه کردن مخزن Maven را گوگل به هر بخش مخازن:

    buildscript {
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
      }
    
      dependencies {
        // ...
    
        // Check that you have the following line (if not, add it):
        classpath 'com.google.gms:google-services:4.3.8'  // Google Services plugin
      }
    }
    
    allprojects {
      // ...
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
        // ...
      }
    }
  2. در ماژول خود را (در سطح برنامه) فایل Gradle (معمولا app/build.gradle )، اضافه کردن یک وابستگی برای کتابخانه آزمایشگاه تست تصویر.

    dependencies {
      // ...
      // Add Test Lab's instrumentation test screenshot library:
      androidTestCompile `com.google.firebase:testlab-instr-lib:02`
      // ...
    }
  3. در فایل AndroidManifest.xml آزمون شما، ثبت نام FirebaseScreenCaptureProcessor در یک تگ متا داده در <instrumentation> عنصر. شما همچنین می توانید پردازنده به عنوان یک استدلال در AndroidJUnitRunner به جای (را ببینید مشخص اسناد مرجع AndroidJUnitRunner برای آشنایی با نحوه).

    <instrumentation
      // Check that you have the following line (if not, add it):
      android:name="androidx.test.runner.AndroidJUnitRunner" // Specifies AndroidJUnitRunner as the test runner
      android:targetPackage="com.your.package.name">
    
    // Add the following:
    <meta-data
      android:name="screenCaptureProcessors"
      android:value="com.google.firebase.testlab.screenshot.FirebaseScreenCaptureProcessor" />
    </instrumentation>
    ...
    
  4. در فایل AndroidManifest.xml برنامه خود را، اضافه کردن خطوط زیر در <manifest> عنصر:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  5. در خود AndroidManifest.xml پرونده، مشخص مجوز سیستم برای برنامه شما را با اضافه کردن خطوط زیر در <manifest> برچسب. اگر شما در حال حرکت هستید تست آندروید 10 (API سطح 29) و یا بالاتر، حذف WRITE_EXTERNAL_STORAGE اجازه (برنامه شما از این مجوز به منظور خواندن و نوشتن تصاویر را به دستگاه نیاز ندارد).

    <manifest ... >
        <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        ...
    </manifest>

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

در هر نقطه از آزمون خود را که در آن شما می خواهید را به یک تصویر از پاسخ Screenshot.capture() روش از کتابخانه AndroidX. تولید این ScreenCapture شی . هنگامی که شما پاسخ process() در ScreenCapture شیء، آن را می شود با استفاده از پردازش ScreenCaptureProcessor که در خود ثبت نام AndroidManifest.xml . توجه داشته باشید که BasicScreenCaptureProcessor استفاده می شود که هیچ پردازنده ثبت نام. از آنجا که شما ثبت نام FirebaseScreenCaptureProcessor ، تصاویر خود را از طریق پردازش FirebaseScreenCaptureProcessor و برای شما با نتایج خود را در دسترس خواهد بود که شما آزمون خود را با Firebase تست آزمایشگاه را اجرا کنید.

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

  • یک ScreenCapture کامل در یک API Build.VERSION_CODES.JELLY_BEAN_MR2 و بالاتر بگیرید:

    Screenshot.capture()
    
  • یک ScreenCapture از فعالیت در هر سطح API. توجه داشته باشید که این تنها گزینه برای دستگاه‌هایی است که زیر Build.VERSION_CODES.JELLY_BEAN_MR2 هستند.

    @Rule
      public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
    ...
    Screenshot.capture(activityRule.getActivity());
    ...
    

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

  • پردازش یک ScreenCapture از طریق FirebaseScreenCaptureProcessor :

    Screenshot.capture().process();
    
  • پردازش یک ScreenCapture از طریق یک مشخص ScreenCaptureProcessor (این اجازه می دهد تا شما به جست و خیز ثبت نام پردازنده):

    Set<ScreenCaptureProcessor> processors = new HashSet<>();
    processors.add(new FirebaseScreenCaptureProcessor());
    Screenshot.capture().process(processors);
    
  • تنظیم نام و فرمت ScreenCapture و پردازش آن به استفاده از پردازنده ثبت نام:

    Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
    

مرحله 3. آزمایش خود را بسازید و اجرا کنید

  1. ساخت نرم افزار و آزمون خود را در مقایسه با APK (نگاه کنید به برنامه خود را تست برای دستورالعمل).

  2. آپلود فایل های APK به داشبورد تست آزمایشگاه از کنسول فایربیس.

  3. در نهایت، تست خود را اجرا کنید.

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

پس از اتمام آزمایش، می‌توانید هر اسکرین شات گرفته شده در کنسول Firebase را مشاهده کنید.

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

  2. آزمون خود را دوباره انتخاب کنید، سپس با کلیک بر روی تب تصاویر که به نظر می رسد.

(اختیاری) ویژگی های آزمایشی اضافی را فعال کنید

می‌توانید ویژگی‌های زیر را در آزمون خود قبل از اجرای آن با Test Lab فعال کنید:

ارکستراتور را فعال کنید

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

برای فعال کردن ارکستراسیون برای تست آزمایشگاه، در راه اندازی آزمون ابزار دقیق، کلیک کنید گزینه های اضافی> اجرای با ارکستراسیون.

مزایا و معایب

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

اشتراک گذاری را فعال کنید

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

تقسیم بندی تست چگونه کار می کند

فرض کنید که N خرده ها را ایجاد کرده اید. برای هر دستگاهی که انتخاب می‌کنید، Test Lab N دستگاه یکسان را می‌چرخاند و زیرمجموعه‌ای از آزمایش‌ها را روی هر دستگاه اجرا می‌کند. به این معنی که موارد آزمون sharded می توانید در اعدام آزمون های متعدد در هر دستگاه، بر خلاف موارد آزمون غیر sharded، که همیشه در یک اجرای آزمون در هر دستگاه منجر شود (برای یک دید کلی از مفاهیم کلیدی در آزمایشگاه تست، و مفاهیم کلیدی ).

می‌توانید اشتراک‌گذاری آزمایشی را در کنسول Firebase فعال کنید:

  1. در راه اندازی آزمون ابزار دقیق، کلیک کنید گزینه های اضافی.

  2. در بخش Sharding، وارد کردن شماره از خرده ریز می خواهید اجرا کنید.

صورتحساب برای قطعات آزمایشی

تست آزمایشگاه پیاده سازی ذرات خود را با اعمال نفوذ ساخته شده در مکانیزم sharding AndroidJUnitRunner است. برای جلوگیری از پرداخت هزینه برای چرخاندن خرده‌های خالی (تکه‌های بدون موارد تست اختصاص‌یافته)، تعداد خرده‌هایی که ایجاد می‌کنید باید کمتر از تعداد کل موارد آزمایشی باشد. بسته به مدت زمانی که هر تست مورد طول می کشد تا اجرا شود، معمولاً ایده خوبی است که 2-10 مورد آزمایشی را به ازای هر خرده اختصاص دهید.

برای اطلاعات بیشتر در صدور صورت حساب، به عنوان خوانده شده طریقه استفاده، سهمیه ها، صدور صورت حساب .