تست های تلفنی ACTS

مجموعه تست Comms Android (ACTS) تست خودکار پشته های اتصال مانند Wi-Fi، بلوتوث و سرویس های تلفن همراه را انجام می دهد. ابزار تست به adb و Python نیاز دارد. ابزار در tools/test/connectivity/acts قرار دارد.

این صفحه نحوه اجرای آزمایشات تلفنی اولیه موجود در پروژه منبع باز Android (AOSP) را برای کاربری با دو گوشی توضیح می دهد.

پیش نیازها

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

یک مخزن اندروید دانلود کنید

برای دانلود مخزن Android در دستگاهی که دارای اتصال USB به دستگاه هایی است که می خواهید آزمایش کنید، دستورالعمل های موجود در دانلود منبع را دنبال کنید.

  • AOSP یک پایگاه کد چند گیگابایتی است که همچنان در حال رشد است. بر این اساس انتظارات خود را از زمان دانلود تنظیم کنید.
    • اگر اندازه ماشینی محدود است، --depth=1 را به دستور repo init اضافه کنید.
  • برای دریافت به‌روزرسانی‌های آینده در مورد ابزار ACTS، به دایرکتوری ریشه Android بروید:
    • از repo sync tools/test/connectivity استفاده کنید
    • و repo sync external/sl4a

بررسی اشکال‌زدایی کاربر در دستگاه‌ها

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

  • با استفاده از دستورالعمل های Build Android، مخزن را بسازید.
  • دستگاه را همانطور که در فلش یک دستگاه توضیح داده شده فلش کنید.
    • دستور adb shell getprop ro.build.type باید userdebug را برگرداند.
    • اگر ro.build.type در دسترس نباشد، ساخت userdebug اجازه می دهد تا پوسته adb را به صورت روت (ترمینال # ) اجرا کنید.

SL4A را بسازید و نصب کنید

برای ساخت و نصب لایه اسکریپت برای اندروید (SL4A)، دستورالعمل‌های موجود در لایه اسکریپت برای Android را دنبال کنید. بخش افزودن سازه های SL4A به سازه های اندروید به صورت پیش فرض اختیاری است.

پس از ساخت SLA4، آخرین پیغام log حاوی محل فایل sl4a.apk است که باید آن را روی همه دستگاه ها نصب کنید. در اینجا یک مثال از یک پیام گزارش آمده است:

Copy: out/target/path/to/sl4a.apk

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

دستگاه ها را با استفاده از این الزامات ساخت/ابزار ACTS پیکربندی کنید:

  • اگر کلیدهای فروشنده ADB در دسترس نیستند، وقتی ظاهر شد، روی پنجره بازشو Trust this computer در DUT ضربه بزنید. اگر کلیدهای فروشنده ADB در دسترس هستند:

    • کلیدهای فروشنده و درایورهای ADB باید منحصر به DUT باشند.
    • برای فعال کردن همیشه اشکال‌زدایی USB، کلیدهای فروشنده ADB در درخت منبع شما باید با استفاده از export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys که در آن /path/to/directory است به ~/.bashrc (یا معادل) اضافه شود. مسیر کاملا واجد شرایط شما در میزبان. برای عیب یابی ADB، به اجرای برنامه ها در دستگاه سخت افزاری مراجعه کنید.
  • اجازه اشکال‌زدایی USB: وقتی درایورهای adb نصب می‌شوند، دستگاه‌های adb ممکن است درخواستی را برای اجازه اشکال‌زدایی USB در دستگاه راه‌اندازی کنند.

  • sl4a.apk را با استفاده از $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk نصب کنید

  • مطمئن شوید که تلفن ها از اتصال USB 2.0 به سرور آزمایشی استفاده می کنند.

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

  • همانطور که در Write a config file توضیح داده شده است، همه سیم کارت ها را به یک فایل JSON اضافه کنید.

محیط را تنظیم کنید

قبل از تنظیم محیط، بررسی کنید که پایتون 3.4+ نصب شده باشد.

اجرا کن:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

ACTS را نصب کنید

اجرا کن:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

برای تأیید نصب، act.py -h اجرا کنید، که لیستی از دستورات موجود را چاپ می کند.

یک فایل کانفیگ بنویسید

برای اجرای تست ها باید فایلی با اطلاعات پیکربندی ایجاد کنید. در اینجا یک نمونه فایل .config است. یک فایل مشابه در مخزن Android در tools/test/connectivity/acts/framework/sample_config.json موجود است. XXXXXXX را با شماره سریال دستگاه جایگزین کنید تا حداقل اطلاعاتی را که ACTS برای اجرای آزمایش تلفن نیاز دارد ارائه کنید.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

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

کلید ارزش
_description در مورد محتویات کل فایل کانفیگ نظر دهید
testbed مشخصات محیطی که تست ها می توانند در آن اجرا شوند
(تخت آزمایش) _description در مورد هر بستر آزمایشی نظر دهید، زیرا ACTS می‌تواند تخت‌های آزمایشی فردی را هدف قرار دهد
(تخت آزمایش) name نام بستر آزمایش برای فراخوانی از خط فرمان
(تخت آزمایش) AndroidDevice لیست دستگاه های خاصی که آزمایش هدف قرار می دهد
توجه: ممکن است چندین دستگاه در لیست وجود داشته باشد. آزمایشی که تلفن‌هایی را که با یکدیگر تماس می‌گیرند اجرا می‌کند، انتظار می‌رود دو دستگاه وجود داشته باشد و اگر تعداد آنها کمتر باشد، با شکست مواجه می‌شود. اگر دو دستگاه در لیست وجود داشته باشد و آزمایش فقط یکی را انتظار داشته باشد، آن آزمایش در اولین دستگاه اجرا می شود.
serial (Bedbed) (AndroidDevice). شماره سریال دستگاه (چاپ شده از adb devices )
(Bedbed) (AndroidDevice) adb_logcat_param پارامترهایی که هنگام فراخوانی adb logcat در هنگام تست ارسال می شوند
logpath مکان روی سرور آزمایشی که در آن لاگ ها ذخیره می شوند
testpaths محل کد مورد آزمایشی
sim_conf_file محل فایل .json که سیم کارت های موجود را فهرست می کند
لیست سیم کارت ها شامل شناسه کارت، قابلیت های کارت، اپراتور و شماره تلفن می باشد.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

می‌توانید شماره تلفن را از دستگاه زیر System > About phone بکشید. شناسه سیم کارت عموماً روی سیم کارت چاپ می شود یا از دستگاه در زیر سیستم > درباره تلفن > وضعیت سیم کارت در دسترس است. رشته عملگر در tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py تعریف شده است، سپس CARRIER_ را جستجو کنید.

گزینه های پیکربندی اضافی

فایل entries.py واقع در tools/test/connectivity/acts/framework/acts/config/entries.py در مخزن Android دارای تعاریفی برای گزینه‌های اصلی پیکربندی خط فرمان است.

همچنین می‌توانید با جستجوی self.user_params.get پارامترهای مخصوص آزمون را در کد پیدا کنید.

تست ها را اجرا کنید

پس از نوشتن فایل پیکربندی، تست ها را از خط فرمان اجرا کنید. در حالی که گزینه های زیادی وجود دارد، ساده ترین آنها استفاده از -c filename.config -tc TestCase:name است. این مثال از یک فایل پیکربندی به نام minimum.config استفاده می کند:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

یک اجرای آزمایشی موفق باید یک پیام خروجی نهایی مانند این داشته باشد:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

تست های متعدد را اجرا کنید

برای اجرای موارد آزمایشی خاص در چندین فایل، یک فایل آزمایشی ایجاد کنید و آن را با flag -tf ارسال کنید، همانطور که در مجموعه نمونه تست رگرسیون نشان داده شده است:

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

این دستور مثال فرض می کند که فایل regression_suite.

act.py -c minimum.config -tf regression_suite

چندین بار تست ها را اجرا کنید

برای اجرای چندین بار تست ( -tc ) یا فایل آزمایشی ( -tf-ti # (تکرارهای آزمایشی) را به دستور اضافه کنید.