معرفی
اپیوم (Appium) یک چارچوب متنباز برای خودکارسازی تست اپلیکیشنهای موبایل است. این ابزار با پروتکل WebDriver کار میکند و به تیم تست اجازه میدهد سناریوهای کاربر را روی اپلیکیشنهای Native، Hybrid و وب موبایل اجرا کنند.
تفاوت اپیوم Android و iOS
اپیوم برای Android و iOS درایورهای جداگانه دارد. برای نمونه، در تست Android معمولا از درایور UiAutomator2 و در تست iOS از درایور XCUITest استفاده میشود. همین تفاوت باعث میشود راهاندازی محیط، انتخاب قابلیتهای نشست و شیوه شناسایی عناصر در دو پلتفرم کاملاً یکسان نباشد.
اجرای تست iOS، چه محلی باشد و چه روی سرور یا مزرعه دستگاه راهدور، به یک ماشین اجرای مجهز به macOS و Xcode نیاز دارد. اما نویسنده تست الزاما نباید روی رایانه macOS کار کند. میتواند تست را از محیط دیگر به ماشین اجرای iOS یا سرویس میزبانیشده ارسال کند.
کاربرد اپیوم
مهندسان تست نرمافزار، توسعهدهندگان موبایل و تیمهای تضمین کیفیت از اپیوم برای اجرای تکرارشونده سناریوهای حیاتی مانند ورود، ثبتنام، پرداخت، جستوجو و بررسی جریانهای اصلی محصول استفاده میکنند. تستها را میتوان با زبانهایی مانند Java، Python، JavaScript یا Kotlin نوشت و روی شبیهساز، امولاتور یا دستگاه واقعی اجرا کرد.
در آگهیهای شغلی، تجربه Appium معمولا ذیل عنوانهایی مانند QA Automation Engineer، Software Test Engineer یا Mobile QA مطرح میشود. در چنین موقعیتهایی، توانایی طراحی تست موبایل، انتخاب Locator پایدار، کار با Android Studio یا Xcode، کنترل نسخه با Git و اتصال تستها به فرایند یکپارچهسازی و تحویل مستمر اهمیت دارد. عنوان شغلی و ترکیب دقیق مهارتها بسته به شرکت و محصول متفاوت است.
نگهداری تستهای اپیوم فقط نوشتن سناریو نیست. تغییر شناسه عناصر، نسخه سیستمعامل یا رفتار رابط میتواند شکست تست ایجاد کند. بنابراین تیم باید علت شکست را تحلیل کند، باگ محصول را از مشکل محیط یا Locator جدا کند و کد تست را با Git بازبینی و نگهداری کند.
اپیوم جایگزین طراحی سناریوی تست و بررسی دستی تجربه کاربر نیست. ارزش آن زمانی بیشتر است که تیم، سناریوهای پایدار و تکراری، شناسههای قابل اتکای عناصر و فرایند مشخصی برای نگهداری تستها داشته باشد.
این ابزار را با نامهای دیگری نیز میشناسند:
- اپیوم ۲
- Appium 2
ویژگیهای کلیدی
برای آشنایی بهتر با این ابزار، توجه به موارد زیر میتواند مفید باشد.
-
پشتیبانی از Android و iOS
با درایورها و تنظیمات مخصوص هر پلتفرم، تست اپلیکیشنهای Android و iOS را پوشش میدهد. هرچند ابزارهای توسعه و تنظیمات اجرای دو سیستمعامل متفاوت هستند.
-
رابط استاندارد WebDriver
دستورهای تعامل با عناصر، پیمایش و مدیریت نشست را از طریق پروتکل WebDriver ارائه میکند و با بسیاری از کتابخانههای کلاینت سازگار است.
-
پوشش اپلیکیشنهای Native، Hybrid و وب موبایل
میتواند با رابط بومی برنامه، WebViewهای درون اپلیکیشن و مرورگر موبایل کار کند. اما راهبرد یافتن عنصر در هر محیط متفاوت است.
-
معماری مبتنی بر Driver
در Appium 2، درایورها و افزونهها جداگانه نصب میشوند. این معماری امکان انتخاب Driver متناسب با پلتفرم و نیاز تیم را فراهم میکند.
-
اجرای تست روی دستگاه واقعی و شبیهساز
تستها را میتوان روی Android Emulator، iOS Simulator یا دستگاههای واقعی اجرا کرد. دستگاه واقعی برای بررسی مجوزها، شبکه و رفتارهای وابسته به سختافزار مهم است.
-
بازرسی عناصر با Appium Inspector
Appium Inspector برای مشاهده ساختار رابط، بررسی ویژگیهای عناصر و آزمایش Locatorها پیش از نوشتن تست کاربرد دارد.
کاربردها
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
رگرسیون جریانهای حیاتی اپلیکیشن
اجرای خودکار سناریوهایی مانند ورود، ایجاد حساب، ثبت سفارش یا پرداخت پس از هر انتشار، برای یافتن خطاهای تکراری پیش از انتشار نسخه.
-
تست یک جریان مشترک در Android و iOS
بررسی یک فرایند کسبوکاری مشابه در دو پلتفرم، با لایهبندی مناسب تستها و مدیریت Locatorهای متفاوت هر سیستمعامل.
-
اعتبارسنجی اپلیکیشن Hybrid
تست بخشهای Native و WebView یک اپلیکیشن Hybrid و جابهجایی کنترلشده میان Contextهای بومی و وب.
-
اجرای تست روی دستگاههای واقعی
بررسی رفتار برنامه در شرایطی که شبیهساز بهخوبی بازنمایی نمیکند. مانند مجوزهای سیستم، دوربین، اعلانها یا تفاوت نسخههای سیستمعامل.
-
اتصال تست موبایل به فرایند تحویل مستمر
اجرای مجموعهای محدود و پایدار از تستهای موبایل در خط یکپارچهسازی و تحویل مستمر، پس از آمادهسازی دستگاهها و مدیریت زمان اجرای تست.
پرسشهای رایج درباره اپیوم
اگر درباره این ابزار پرسشی دارید، ممکن است پاسخ آن را در میان موارد زیر پیدا کنید.
آیا اپیوم برای تست Android و iOS به یک شکل پیکربندی میشود؟
خیر. ساختار کلی مشابه است، اما Driver، ابزارهای توسعه، قابلیتهای نشست و Locatorهای Android و iOS تفاوت دارند. اجرای تست iOS به ماشین اجرای مجهز به macOS و Xcode نیاز دارد. این ماشین میتواند سرور یا مزرعه دستگاه راهدور باشد و لزوما رایانه نویسنده تست نیست.
آیا برای کار با اپیوم باید برنامهنویسی بدانم؟
برای نوشتن و نگهداری تستهای پایدار، آشنایی با یک زبان برنامهنویسی، کنترل نسخه، Locatorها و اصول تست ضروری است. فقط ضبط تعاملها معمولا برای پروژه واقعی کافی نیست.
تست اپیوم را روی دستگاه واقعی اجرا کنم یا شبیهساز؟
برای پوشش رگرسیون اولیه و توسعه سریع تستها، شبیهساز یا امولاتور میتواند کافی باشد. برای جریانهای وابسته به مجوز، دوربین، اعلان، شبکه واقعی، سختافزار یا مدلهای هدف، بخشی از تستها را روی دستگاه واقعی اجرا کنید.
Appium Inspector چه کاربردی دارد؟
این ابزار ساختار رابط اپلیکیشن و ویژگیهای عناصر را نمایش میدهد تا بتوانید Locator مناسب انتخاب کنید و دستورهای تعامل را پیش از افزودن به تست بررسی کنید.
آیا اپیوم جای تست دستی موبایل را میگیرد؟
خیر. اپیوم برای سناریوهای تکراری و قابل پیشبینی مناسب است. ارزیابی تجربه کاربر، بررسیهای اکتشافی و سناریوهای تازه یا ناپایدار همچنان به تست دستی نیاز دارند.