مجموعه تست 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 #
(تکرارهای آزمایشی) را به دستور اضافه کنید.