Google متعهد به پیشبرد برابری نژادی برای جوامع سیاه است. ببینید چگونه.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

پیکربندی تست پیچیده

ممکن است برخی از ماژول های آزمایشی به تنظیمات سفارشی و مراحل پاره کردن نیاز داشته باشند که نمی توانند در خود مورد آزمایش انجام شوند. نمونه های معمولی ممکن است شامل موارد زیر باشد:

  • نصب سایر برنامه ها (علاوه بر APK تست)
  • فشار برخی از پرونده ها به دستگاه
  • اجرای دستورات (به عنوان مثال adb shell pm ...)

در گذشته ، تیم های کامپوننت معمولاً برای انجام چنین کارهایی به نوشتن یک تست سمت میزبان متوسل می شوند که این امر مستلزم درک مهار فدراسیون تجارت است و به طور معمول پیچیدگی یک ماژول آزمایشی را افزایش می دهد.

با گرفتن وام از CTS ، ما مفهوم پیکربندی ماژول آزمون را برای پشتیبانی از چنین کارهایی معرفی کردیم ، لیست کارهای مشترک در بالا فقط با چند خط پیکربندی قابل دستیابی است. برای حداکثر انعطاف پذیری ، حتی می توانید همانطور که توسط ITargetPreparer یا ITargetCleaner تعریف شده است ، آماده سازنده هدف خود را پیاده سازی کرده و آنها را برای استفاده در پیکربندی ماژول تست خود پیکربندی کنید.

پیکربندی ماژول آزمون برای یک ماژول آزمایشی یک فایل XML مورد نیاز است که به پوشه منبع ماژول سطح بالا اضافه شده است ، به نام "AndroidTest.xml". XML فرمت یک پرونده پیکربندی مورد استفاده توسط مهار اتوماسیون آزمایش تجارت را دنبال می کند. در حال حاضر برچسب های اصلی که از طریق پیکربندی های ماژول تست استفاده می شوند ، برچسب های "target_preparer" و "test" هستند.

آماده سازان هدف

همانطور که از نام آن وجود دارد ، یک برچسب "target_preparer" تعیین می کند (به ITargetPreparer مراجعه کنید) که یک روش تنظیم را ارائه می دهد ، که قبل از اجرای ماژول تست برای آزمایش فراخوانی می شود. و اگر كلاس ارجاع شده در برچسب "target_preparer" نيز ITargetCleaner را پياده سازي كند ، پس از اتمام ماژول آزمايش ، روش tardown آن فراخوانده مي شود.

برای استفاده از پیکربندی ساخته شده در ماژول مشترک ، یک پرونده جدید "AndroidTest.xml" را در پوشه سطح بالا برای ماژول آزمایش خود اضافه کنید و با محتوای زیر آن را جمع کنید:

 <?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>
 

به عنوان نمونه ، ما می توانید برچسب های گزینه زیر را اضافه کنید (در کامنت "درج" در بالا):

     <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put secure accessibility_enabled 1" />
        <option name="teardown-command" value="settings put secure accessibility_enabled 0" />
    </target_preparer>
 

گزینه ها بند تست را به صورت زیر تنظیم می کنند:

  1. قبل از فراخوانی ماژول آزمایشی ، "اجرای تنظیمات امنیتی دسترسی به قابلیت دسترسی 1" را بر روی دستگاه اجرا کنید
  2. پس از اتمام ماژول تست ، دستور shell را اجرا کنید "تنظیمات قرار دادن امن دسترسی (قابلیت دسترسی 0)"

در این مثال خاص ، دسترسی به ترتیب قبل یا بعد از اجرای ماژول آزمایش / غیرفعال شده است. با استفاده از یک مثال ساده ، لازم است جزئیات بیشتری در مورد چگونگی استفاده از برچسب "گزینه" ارائه شود. همانطور که در بالا نشان داده شد ، برچسب می تواند دو ویژگی داشته باشد: نام ، مقدار. ویژگی name نام گزینه را نشان می دهد و بیشتر به دو قسمت تقسیم می شود: یک نام کوتاه برای تهیه کننده و نام گزینه واقعی ارائه شده توسط تهیه کننده.

هدف دقیق فیلد ارزش بستگی به چگونگی تهیه کننده گزینه دارد: این می تواند یک رشته ، یک عدد ، یک بول یا حتی یک مسیر پرونده و غیره باشد. که ما برای گزینه "دستور دستور" تعریف شده توسط یک آماده ساز هدف با نام کوتاه "run-command" تعریف می کنیم. و نام "run-command: teardown-command" به این معنی است که ما گزینه "دستور teardown" را که توسط همان آماده کننده هدف با نام کوتاه "run-command" تعریف شده است ، تعیین می کنیم. در اینجا خلاصه ای از سه آماده ساز هدف مشترک آورده شده است:

  • نام کلاس: PushFilePreparer

    • نام کوتاه : فشار فایل
    • عملکرد : پرونده های دلخواه را در زیر پوشه مورد آزمایش به مقصد در دستگاه سوق می دهد
    • یادداشت ها :
      • این آماده ساز می تواند از پوشه به پوشه یا پرونده ای به پرونده فشار دهد. یعنی ، شما نمی توانید یک پرونده را در زیر یک پوشه روی دستگاه فشار دهید: شما باید نام نام مقصد را نیز در زیر آن پوشه مشخص کنید
    • گزینه ها :
      • فشار: یک فشار ویژه ، با عنوان ' /path/to/srcfile.txt->/path/to/destfile.txt ' یا ' /path/to/srcfile.txt->/path/to/destdir/ '. ممکن است تکرار شود این مسیر ممکن است مربوط به فهرست ماژول های آزمایش یا خود فهرست خارج باشد.
      • ** فشار پس از فشار: ** دستورالعمل اجرای دستگاه (با adb shell <your command> `) پس از تلاش همه فشارها. مورد استفاده معمولی استفاده از chmod برای مجوزها است
  • نام کلاس: InstallApkSetup

    • نام کوتاه: install-apk
    • تابع: فایلهای apk دلخواه را به مقصد منتقل می کند
    • گزینه ها:
      • test-file-name: نام APK که باید روی دستگاه نصب شود.
      • install-arg: آرگومان های اضافی که باید به دستور pm install منتقل شود ، از جمله خط اصلی ، به عنوان مثال "-d" ممکن است تکرار شود
  • نام کلاس: RunCommandTargetPreparer

    • نام کوتاه: run-command
    • تابع: دستورات پوسته دلخواه را قبل یا بعد از اجرای ماژول آزمایش اجرا می کند
    • گزینه ها:
      • run-command: دستور adb shell برای اجرا. ممکن است تکرار شود
      • teardown-command: دستور adb shell برای اجرا در مرحله teardown. ممکن است تکرار شود

کلاس تست

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

 <test class="com.android.tradefed.testtype.AndroidJUnitTest">
  <option name="package" value="android.test.example.helloworld"/>
  <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>
 

در اینجا سه ​​کلاس آزمون متداول وجود دارد:

  • نام کلاس: GTest

    • نام کوتاه: gtest
    • تابع: آزمایشی که بسته تست بومی را در دستگاه معین اجرا می کند.
    • گزینه ها:
      • native-test-device-path: مسیر دستگاهی که آزمایشهای بومی در آن قرار دارد.
  • نام کلاس: InstrumentationTest

    • نام کوتاه: ابزار دقیق
    • تابع: آزمایشی که بسته تست ابزار دقیق را در دستگاه معین اجرا می کند
    • گزینه ها:
      • pack: نام بسته آشکار برنامه تست Android برای اجرا است.
      • کلاس: نام کلاس آزمون برای اجرا.
      • روش: نام روش آزمون برای اجرا.
  • نام کلاس: AndroidJUnitTest

    • تابع: آزمایشی که با استفاده از android.support.test.runner.AndroidJUnitRunner یک بسته تست ابزار دقیق را در دستگاه داده شده اجرا می کند این روش اصلی برای اجرای یک تست ابزار دقیق است.