استفاده از هر Device واقعی برای اتوماسیون تست موبایل، همیشه یک چالش برای تسترهاست. اما، آندروید راه حلی برای اتصال یک دستگاه واقعی از طریق USB ارائه میدهد، یعنی Android Debug Bridge-ADB.
ADB یک ابزار خط فرمانی(Command Line) است. این ابزار برای ارتباط بین یک Emulator Instance(دستگاه اندرویدی) و Daemon Process در حال اجرا در پس زمینه است(Server).
پیکربندی ADB و USB Debugging
Appium یک برتری برای اجرای تست روی دستگاههای واقعی ارائه میکند. اما قبل از اجرای تست، ما باید پیشنیازهای زیر را تنظیم کنیم
- USB debugging باید فعال باشد
- پیکربندی ADB یا ADB Configuration
- ستاپ کردن قابلیت مورد نظر با احتساب هر تغییر سختافزاری
ما در اینجا هر دو را مشاهده میکنیم، یعنی اتصال به Emulator و همچنین دستگاه واقعی برای تست. مراحل زیر را برای اتصال به یک Emulator در نظر بگیرید.
اتصال به یک Emulator
SDK-Software Development به عنوان پیشنیاز باید روی ماشین نصب شود. ADB بوسیله Google’s Android SDK پکیج شده است. مراحل فعالسازی ADB از SDK Manager عبارتند از:
مرحله ۱: پوشه Android SDK را باز کنید
مرحله ۲: روی SDK Manager دابل کلیک کنید
مرحله ۳: از لیست تمام Packageها Tools را انتخاب نموده و چکباکس را برای موارد زیر تیک کنید:
- Android SDK Tools
- Android SDK Platform-tools
برای اتصال دستگاه Android
مرحله ۱: فعالسازی گزینه USB debugging از “Developer Option” در گوشی اندرویدی
مرحله ۲: پوشه local را که در آن فایلهای SDK ذخیره شدهاند را باز کنید-‘Android SDK >> Platform-tools’ به عنوان نمونه C:\android-sdk\platform-tools
مرحله ۳: درون پوشه Shift + Right را نگه داشته و menu >> Select و سپس “Open command window here” را کلیک کنید
این پوشه را با استفاده از Command Prompt باز میکند.
نکته: همچنین شما میتوانید مسیر پوشه را مستقیما از دستور Run در Command Prompt باز کنید.
این پنجره Command مستقیما پوشه را در پنجره Command Prompt باز میکند.
مرحله ۴: اکنون، قبل از چک کردن دستگاه، کاربر باید یک دستگاه Android خارجی(تلفن همراه) را وصل کند. برای اتصال از اتصال دهنده کابل USB به سیستم استفاده نمایید. سپس در Command Prompt فرمان زیر را تایپ کنید:
‘adb devices’ & press Enter
این فرمان لیست تمام دستگاههای متصل را ارائه میدهد
اما قبل از این باید سرور ADB را بررسی کنیم. بررسی کنید که آیا ADB Server در حال اجرای فرآیند پسزمینه هست یا خیر. فقط Command Prompt را طبق روال بالا باز کرده، و سپس بنویسید adb و اینتر را بزنید. این کار باید تمام فرآیندهای adb را نشان دهد.
هنگامیکه Server استارت میشود، همیشه Local TCP Port 5037 را Bind میکند. تمام ADB Clientها TCP Port به شماره ۵۰۷۳ گوش(Listen) میکنند تا با Server Request ارتباط برقرار نمایند.
اکنون ADB Server که در حال اجراست، میتواند کل Emulator متصله یا Device Instanceها را بوسیله اسکن کردن پورت مورد اسکن قرار دهد.
همیشه به خاطر داشته باشید که ADB daemon روی پورتهای شماره فرد میان ۵۵۵۵ تا ۵۵۵۸ اجرا میشود.
ADB daemon process با Console Connectionای که شماره پورت زوج را اختیار کرده اجرا میشود.
به عنوان نمونه: اگر یک Device تنها متصل شده باشد، سرور به طور خودکار دستگاه را اسکن و متصل میشود، اما اگر چندین Device یا Emulator در حال اجرا باشد، کاربر نیاز به دادن دستور خط فرمانی ADB برای اتصال دارد.
Emulator Instance متصله به شماره پورت فرد ۵۵۵۷ همان Console Running روی پورت زوج به شماره ۵۵۵۶ را دارد. یعنی هر دستگاهِ در حال اجرا دارای یک پورت زوج و یک پورت فرد متصل شده است.
emulator 1: console 5556
emulator 1: adb 5557
emulator 2: console 5554
emulator 2: adb 5555
دستوری برای تشخیص تمام Deviceهای متصله
<$ adb devices>
emulator-5554 device
emulator-5556 device
emulator-5558 device
دستوری برای شناسایی یک Device واحد از چندین Device متصل
<$ adb –s emulator-5554 install Guru99.apk>
این اتصال ADB را برای دستگاه ۵۵۵۴ شناسایی کرده و برنامه را نصب میکند.
به این ترتیب، کاربر میتواند یک اتصال موفق برای دسترسی به ADB Instanceها را با استفاده از ADB Commandها ایجاد کند.
Syntax used to access ADB instances from commands line:
Adb [-d – An adb command when a single USB device is connected
Adb [-e – An adb command when only single emulator is running
Adb devices— This will print all the list of emulator / devices attached.
Adb version— List the adb version number.
Adb help—- Print the list of supported commands.
تنظیم ADB برای پشتیبانی از Wi-Fi
درست مانند پیکربندی ADB از طریق USB، کاربر میتواند ADB را از طریق WiFi پیکربندی کند.
پیشنیاز
- هر دو دستگاه اندرویدی و کامپیوتر هاست(Host) باید به همان شبکه بیسیم متصل شوند و
- بلوتوث مربوط به Device باید غیرفعال شود
مراحل اتصال
۱- دستگاه را با استفاده از کابل USB به کامپیوتر هاست وصل کنید. تصدیق کنید که USB debugging در Device فعال شده است
۲- تنظیم Target Device(دستگاه هدف) برای اتصال TCP/IP روی پورت ۵۵۵۵
$ adb tcpip 5555
۳- حالا کابل USB را از دستگاه جدا کنید
۴- در دستگاه اندرویدی آدرس IP را از Settings >> wi-fi Setting >> Advanced >> IP Address پیدا کنید. برای اتصال دستگاه از طریق ADB connection از همان آدرس IP استفاده کنید
eg: Network IP address is- 148.100.1.17
$ adb devices
List of devices attached
پس از این، پیکربندی نهایی انجام شده و ADB با موفقیت در شبکه بی سیم پیکربندی شده است.
نکته: اگر Errorای در Connection رخ داد، فقط ADB host connection را ریست کرده یا Kill کنید. برای این کار از Command پایین استفاده کنید
<adb kill server>
و دوباره از اولین مرحله متصل شوید.
تمام قسمتهای آموزش Appium، به صورت دستهبندی شده از اینجا در دسترس است.