تهیه دستگاه تست

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

برای دستگاه‌هایی که Android 6 یا Android 7 دارند، می‌توانید تهیه دستگاه را با استفاده از Test Harness Android Enterprise (AE) آزمایش کنید، که مجموعه‌ای آزمایشی برای تأیید اعتبار سازگاری سازمانی دستگاه‌های Android است. این مهار شامل برنامه‌های پشتیبانی، موارد تست، فایل‌های پیکربندی و یک تست اجرا ( afw-test-tradefed ) است که بر روی cts-tradefed ساخته شده است. قبل از راه‌اندازی AE Test Harness، حتماً Provisioning for Device Administration را کامل کنید.

برای دستگاه‌های دارای Android 8 یا بالاتر، استفاده از AE Test Harness منسوخ شده است .

راه اندازی یک محیط توسعه

محیط توسعه AE Test Harness مشابه سیستم عامل اندروید است. برای راه اندازی یک ماشین توسعه، مراحل موجود در Requirements را دنبال کنید.

در حال دانلود کد منبع

کد منبع AE Test Harness را با استفاده از مراحل دانلود منبع دانلود کنید . کد منبع AE Test Harness در پروژه ./test/AfwTestHarness است. نام شعبه تعیین کننده نسخه AE Test Harness برای دانلود است (هر پلتفرم اندروید دارای نسخه جداگانه ای از AE Test Harness است). به عنوان مثال، نام شعبه برای Android 7.0 Nougat afw-test-harness-nougat-dev است. برای مقداردهی اولیه مخزن و دانلود سورس کد این شاخه، از دستورات زیر استفاده کنید:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

برای بررسی کد منبع برای یک نسخه دیگر، شعبه را با تگ مربوطه مشخص کنید. شعبه های موجود عبارتند از:

نام شعبه پلتفرم اندروید پشتیبانی می شود
afw-test-harness-nougat-dev اندروید 7.0
afw-test-harness-2.1 اندروید 7.0
afw-test-harness-marshmallow-dev اندروید 6.0
afw-test-harness-1.5 اندروید 6.0

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

مشاهده در اندروید استودیو

برای مشاهده و ویرایش کد منبع در Android Studio:

  1. دستورات زیر
    make idegen
    development/tools/idegen/idegen.sh
    
    را اجرا کنید
  2. در Android Studio، android.ipr را باز کنید.

کد منبع AE Test Harness در test/AfwTestHarness است.

پیکربندی مهار تست AE

با پیکربندی test/AfwTestHarness/afw-test.props می‌توانید مهار را سفارشی کنید. برای اجرای موفقیت آمیز هارنس، مراحل زیر را انجام دهید:

  1. شبکه Wi-Fi را در afw-test.props با ویژگی های زیر پیکربندی کنید:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. حداقل یک حساب از دامنه‌ای که به‌عنوان کنترل‌کننده خط‌مشی دستگاه به تست DPC ملزم شده است، دریافت کنید. جزئیات را در afw-test.props با ویژگی های زیر مشخص کنید:
    work_account_username
    work_account_password
    

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

ساخت مهار تست AE

پیکربندی ساخت را با استفاده از:

source build/envsetup.sh
lunch

نوع دستگاه را انتخاب کنید و Enter را فشار دهید.

مهار را با استفاده از:

make afw-test-harness -j32

این یک دایرکتوری ( out/host/linux-x86/afw-th/android-cts ) با تمام باینری‌ها، فایل‌های پیکربندی و ابزارهای لازم برای اجرای مهار تست ایجاد می‌کند. این دایرکتوری همچنین در یک فایل ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) برای توزیع زیپ شده است.

اجرای مهار تست AE

برای اجرای AE Test Harness از مراحل زیر استفاده کنید:

  1. در محیط ساخت خود، اجراکننده آزمایشی را با استفاده از:
    afw-test-tradefed
    
    راه‌اندازی کنید: این کنسول cts-tf را راه‌اندازی می‌کند، طرح‌های آزمایشی، موارد آزمایشی و afw-test.props را از out/host/linux-x86/afw-th/android-cts
  2. از پوشه زیپ android-afw-test-harness.zip ، اجرای آزمایشی را با استفاده از:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    afw-test.props android-cts کنید. مطمئن شوید ./android‐cts/repository/testcases/afw-test.props دارای اکانت کاری و پیکربندی Wi-Fi است.
  3. یک طرح آزمایشی اجرا کنید. هر طرح آزمایشی یک فایل XML است که شامل مجموعه ای از بسته های آزمایشی از دایرکتوری بسته آزمایشی AfwTestHarness/tests است. طرح های رایج عبارتند از:
    • afw-userdebug-build . شامل تمام بسته های آزمایشی است که نیاز به ساختن اشکال کاربر دارند.
    • afw-user-build . بر روی یک ساخت کاربر اجرا می شود اما نیاز دارد که دستگاه آزمایشی به درستی راه اندازی شود، از جمله تکمیل تنظیمات اولیه و فعال کردن اشکال زدایی USB.

    برای اجرای طرح آزمایشی afw-userdebug-build ، از:
    cts-tf> run cts --plan afw-userdebug-build
    
    استفاده کنید تا همه طرح‌های آزمایشی را ببینید، از دستور list plans استفاده کنید. برای مشاهده تعاریف طرح، به out/host/linux-x86/afw-th/android-cts/repository/plans مراجعه کنید.
  4. یک بسته آزمایشی را اجرا کنید. برای اجرای یک بسته آزمایشی واحد، از
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    برای مشاهده همه بسته ها، از list packages دستوری استفاده کنید. برای گزینه های بیشتر، از دستور run cts --help استفاده کنید.

اشکال زدایی مهار تست AE

تمام دستورات را در کنسول afw-test-tradefed ( cts-tf ) اجرا کنید، که می توانید با اجرای afw-test-tradefed کنید.

  • اطلاعات بیشتر را با پرچم -l INFO یا -l DEBUG نمایش دهید. مثال:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • مهار تست را روی یک دستگاه خاص با پرچم -s اجرا کنید. مثال:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • مهار تست را روی همه دستگاه‌های متصل با پرچم --all-devices اجرا کنید. مثال:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • اجرای فعلی در حال اجرا را با استفاده از list invocations یا li مشاهده کنید.
  • خلاصه ای از اجرای آزمایش های گذشته را با استفاده از list results یا lr مشاهده کنید.
  • سایر دستورات list را با استفاده از help list مشاهده کنید.
  • logcat بلادرنگ را با فیلتر با استفاده از afwtest ، سپس ترمینال دیگری را باز کنید و با استفاده از logcat راه اندازی کنید: adb logcat | grep afwtest . پس از اتمام تست:
    • مشاهده گزارش‌های out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . logcat کامل دستگاه و گزارش میزبان ( afw-test-tradefed logs) در فایل های فشرده جداگانه ذخیره می شوند.
    • اطلاعات مرتبط را با جستجوی دستگاه logcat برای afwtest بیابید . مثال: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • برای مشاهده گزارش کامل afw-test-tradefed، از: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • یک بسته آزمایشی با مرور صفحات رابط کاربری و ثبت یک لاگ ناوبری در فایل logcat دستگاه برای هر صفحه، جریان تامین سازمانی را خودکار می کند. مثال: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    صفحات رابط کاربری برای بسته آزمایشی com.android.afwtest.NfcProvisioning عبارتند از:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • اگر آزمایشی در طول فرآیند تهیه ناموفق بود، logcat حاوی خطای مشابه است:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    این خطا معمولاً به دلیل خطاهایی در صفحه رابط کاربری قبلی یا صفحه‌ای که بارگیری نشد ایجاد می‌شود، بنابراین سعی کنید قبل از این خطا پیام‌های خطای دیگری را در logcat پیدا کنید. ، سپس سعی کنید آن را به صورت دستی و به دنبال جریان تهیه مجدد تولید کنید.
  • اگر بسته آزمایشی ناموفق باشد:
    • یک عکس صفحه با استفاده از نحو زیر در out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time ذخیره می‌شود: screenshot-test_ test_class_full_name _ test_case_name - random_number .png . این اطلاعات در لاگ میزبان نیز ثبت می شود.
    • گزارش اشکال در out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time به صورت: bug- test_class_full_name _ test_case_name - random_number .zip می شود.
  • پس از اجرای تمام بسته های آزمایشی، یک اسکرین شات گرفته می شود و در out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time به صورت: screenshot- random_number .png می شود. این اطلاعات در لاگ میزبان نیز ثبت می شود.

سوالات متداول

آیا می توانم طرح آزمایشی afw-userdebug-build را روی دستگاهی که با ساخت کاربر فلش شده است اجرا کنم؟

خیر. بسته‌های آزمایشی در طرح afw-userdebug-build ، دستگاه آزمایش را قبل از اجرای جریان آزمایش واقعی بازنشانی کارخانه‌ای می‌کنند و نیاز به اشکال‌زدایی adb دارند تا به صورت خودکار فعال شود. با ساخت کاربر، اشکال زدایی adb را می توان تنها با تغییر دستی تنظیمات در Developer options فعال کرد.

آیا می توانم طرح آزمایشی afw-user-build را روی دستگاهی که با userdebug build فلش شده است اجرا کنم؟

بله، اما توصیه می کنیم که این طرح آزمایشی را روی یک بیلد کاربر اجرا کنید.

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

تنظیمات timeout_size را در timeout_size ./android-cts/repository/testcases/afw-test.props کنید. تنظیمات معتبر عبارتند از: S، M، L، XL، XXL.

بسته آزمایشی com.android.afwtest.NfcProvisioning (یا SuwDoProvisioning ) در دستگاه من ناموفق است زیرا راه‌اندازی اولیه نصب‌شده، رابط کاربری سفارشی‌شده (مانند شرایط و ضوابط) را پس از تکمیل آماده‌سازی نشان می‌دهد. چگونه می توانم از این رابط کاربری سفارشی رد شوم؟

پس از فرآیند تهیه باید حداقل UI وجود داشته باشد. در صورتی که رابط کاربری دارای دکمه‌ای باشد که دارای متن معنادار یا توضیحات محتوایی باشد که حاوی هر یک از کلمات زیر باشد: رد شدن، پایان، انجام شد، پذیرفتن، موافقت، بعدی، ادامه یا ادامه، مهار آزمایشی به‌طور خودکار چنین رابط کاربری را رد می‌کند. همچنین، می‌توانید دکمه‌ای را در afw-test.props تعریف کنید تا مهار تست را برای رد شدن از رابط کاربری خود پیکربندی کنید. مثال:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

برای تعریف چند ویجت، با استفاده از کاما از هم جدا کنید.

بسته آزمایشی com.android.afwtest.NfcProvisioning (یا SuwDoProvisioning ) ناموفق بود و آخرین صفحه رابط کاربری "تأیید حساب خود" است. چرا این اتفاق می افتد و چگونه می توانم دستگاه تست را بازیابی کنم؟

این شکست به این دلیل رخ می‌دهد که بسته آزمایشی قبلی در پایان تست، Factory Reset Protection را پاک نکرد. برای باز کردن قفل دستگاه باید به صورت دستی حساب را وارد کنید.

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

آره. تنظیمات factory_reset_timeout_min را در afw-test.props کنید. تنظیمات معتبر در چند دقیقه هستند. می توانید تعداد دقیقه هایی را که با دستگاه شما کار می کند تنظیم کنید.