۱- توضیح دهید که Appium چیست؟
Appium یک Framework ویژه UI Testing برای اپلیکیشن موبایل به صورت Open Source، رایگان و توزیع شده(Distributed) است.
۲- قابلیتهای Appium را لیست کنید؟
قابلیتهای Appium عبارتند از:
- تست وب
- ارائه Cross-Platform برای اتوماسیون اپلیکیشن موبایل به صورت ترکیبی(Hybrid) و بومی(Native)
- پشتیبانی پروتکل JSON wire
- نیازی به کامپایل مجدد برنامه وجود ندارد
- پشتیبانی از اتوماسیون تست روی Device فیزیکی و نیز Simulator یا Emulator
- این ابزار وابستگی به دستگاه موبایل ندارد
۳- پیشنیازها برای استفاده از Appium را لیست کنید؟
پیشنیازهای استفاده از Appium عبارتند از:
- Android SDK
- JDK
- TestNG
- Eclipse
- Selenium Server JAR
- Webdriver Language Binding Library
- Appium For Windows
- اطلاعات APK در Google Play
- js
۴- محدودیتهای استفاده از Appium را لیست کنید؟
- Appium از نسخه اندروید که پایینتر از ۴٫۲ باشد برای تست پشتیبانی نمیکند
- پشتیبانی محدود برای تست برنامه ترکیبی(Hybrid). به عنوان مثال، Switching Action برنامه از Web App به Native و vice-versa ممکن نیست
- هیچ پشتیبانی برای اجرای Appium Inspector در مایکروسافت ویندوز وجود ندارد
۵- توضیح دهید که چگونه میتوان عنصر DOM یا xPath را در یک برنامه موبایلی یافت؟
برای پیدا کردن عنصر DOM از “UIAutomateviewer” استفاده نمایید تا DOM element را بیابید.
۶- مفهوم طراحیِ Appium را توضیح دهید؟
- Appium یک “HTTP Server” است که با استفاده از پلتفرم Node.js ساخته شده و میتواند iOS Session و Android Session v را با استفاده از Webdriver JSON wire راهاندازی نماید. از این رو، قبل از راهاندازی سرور Appium، باید از قبل، Node.js بر روی سیستم نصب شده باشد.
- هنگامی که Appium دانلود و نصب شد، یک سرور در دستگاه ما ستاپ میشود که REST API را نشان میدهد
- سپس Receive Connectionها و Command Request را از Client دریافت کرده و این دستور را بر روی دستگاههای تلفن همراه(Android/iOS) اجرا میکند.
- بعد از آن با HTTP Responceها پاسخ را بر میگرداند. باز هم، برای اجرای این Request، از Mobile Test Automation Frameworkها برای مدیریت رابط کاربری برنامه استفاده میکند. چارچوبها مانند:
- Apple Instrumentها برای iOS(باید در نظر داشته باشید که Instrumentها فقط در Xcode 3.0 یا بالاتر با OS X v10.5 و بعد از آن در دسترس هستند)
- Google UIAutomator برای API API سطح ۱۶ یا بالاتر
- Selendroid برای Android API سطح ۱۵ یا کمتر
۷- کدام زبان Appium را پشتیبانی میکند؟
Appium از هر زبانی که HTTP Request را پشتیبانی نماید مانند جاوا، جاوا اسکریپت با Node.js، پایتون، Ruby، PHP، Perl، و غیره پشتیبانی میکند.
۸- جوانب مثبت و منفی Appium را توضیح دهید؟
جوانب مثبت:
- برای برنامهنویس، فارق از پلتفرم، برنامهنویس تمام پیچیدگیهایی که تحت یک Appium Server منفرد باقی میمانند(آندروید یا iOS) را اتومات مینماید.
- این ابزار دری را به روی Cross-Platform Mobile Testing باز میکند که این یعنی یک تست روی چندین پلتفرم کار خواهد کرد.
- Appium نیازمند کامپوننتهای اضافی در اپلیکیشن شما نیست تا آن را به صورت خودکار در اختیار شما قرار دهد
- این ابزار میتواند اپلیکیشنهای کاربردی تلفن همراه از انواع Hybrid، Web و Native را اتومات کند
جوانب منفی:
- اجرای اسکریپتها روی چندین شبیهساز iOS در یک زمان با Appium امکانپذیر است
- این ابزار از UIAutomator برای Android Automation استفاده میکند که تنها از پلتفرم Android SDK و API 16 یا بالاتر پشتیبانی مینماید. لذا برای پشتیبانی از APIهای قدیمی، آنها از یک Open Source Library دیگر به نام Selenroid استفاده میکنند.
۹- توضیح دهید که Appium Inspector چیست؟
مانند ابزار Record And Playback در Selenium IDE، ابزار Appium نیز برای Record And Playbak خود یک “Inspector” دارد. Inspector بواسطه Inspecting(بازرسی کردن) روی DOM و تولید Test Scriptها در زبان مورد نظر، رفتار اپلیکیشن Native(بومی) را رکورد کرده و پحش(Play) مینماید. با این حال، Appium Inspector از ویندوز پشتیبانی نمیکند و از گزینۀ UIAutomator viewer استفاده میکند.
تمام قسمتهای آموزش Appium، به صورت دستهبندی شده از اینجا در دسترس است.