آزمون های تلفنی 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 اندروید را روی دستگاه های آزمایشی خود نصب کنید.

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

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

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

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

  • همانطور که در نوشتن فایل پیکربندی توضیح داده شده است، همه سیم کارت ها را به یک فایل .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 # (تکرارهای آزمایشی) را به دستور اضافه کنید.