جزئیات درباره Appium and It’s Architecture
اپیوم چیست؟
Appium مجموعهای رایگان و منبع باز از ابزارها و چارچوبهای آزمایشی است که میتوانید از آن برای خودکارسازی تستهای موبایل (وب بومی، ترکیبی و تلفن همراه)، دسکتاپ (ویندوز، مک) و برنامههای تلویزیون هوشمند استفاده کنید.
فلسفه آپین
غیر وابسته به زبان: برای جلوگیری از قفل شدن در زبان های برنامه نویسی فروشندگان پلتفرم، Appium به شما امکان می دهد از هر زبانی که دوست دارید استفاده کنید، از جمله جاوا، کاتلین، پایتون، جاوا اسکریپت، روبی و سی شارپ.
نیاز به شروع از صفر را از بین می برد: برای فعال کردن اتوماسیون تست موثر Appium یک API ساده ارائه میکند که مطابق با پروتکل درایور وب است، که کتابخانههای اتوماسیون فروشنده (Google UIAutomator2/Espresso، Apple XCUITest/UIAutomation، و Windows WinApp) را در بر میگیرد و به شما امکان میدهد آزمایشهایی را طراحی کنید که بر روی چندین پلتفرم اجرا میشوند.
نیازی به به روز رسانی SDK برنامه یا کامپایل مجدد آن نیست: آزمایش موبایل Appium نیازی به مرحله کامپایل برنامه ندارد، اما می تواند برنامه را از تجربه کاربری جعبه خاکستری دور کند.
کراس پلتفرم: توسعه دهندگان می توانند تست اتوماسیون Appium موثر انجام دهند زیرا Appium برنامه ها را در چندین پلتفرم هدایت می کند. اگر برنامهها منطق تجاری یکسانی دارند، میتوانید از یک تست چند پلتفرمی برای ارزیابی آنها استفاده کنید.
معماری Appium
Appium یک سرور HTTP مبتنی بر Node.js است که مسئول مدیریت جلسات WebDriver و دریافت درخواستهای HTTP با فرمت JSON از کتابخانههای سرویس گیرنده است. سپس درخواست ها بر اساس پلتفرم برنامه به طور متفاوتی پردازش می شوند.
از الگوی طراحی معماری مشتری-سرور پیروی می کند. سه جزء در آن وجود دارد:
برنامه مشتری
سرور برنامه
پایان دستگاه
برنامه مشتری
کد اسکریپت شده برای اتوماسیون به عنوان Appium Client شناخته می شود.
توسعه دهندگان می توانند کد را به هر زبان برنامه نویسی مانند PHP، جاوا یا پایتون بنویسند. این اسکریپت اتوماسیون حاوی اطلاعات پیکربندی دستگاه تلفن همراه و برنامه و منطق/کد مورد نیاز برای اجرای موارد آزمایشی برنامه است.
سرور برنامه
توسعه دهندگان از زبان برنامه نویسی Node.js برای ایجاد سرور Appium استفاده می کنند. درخواست های اتصال و فرمان را با فرمت JSON از کلاینت Appium دریافت می کند و آن دستورات را در دستگاه های تلفن همراه انجام می دهد. سرور باید بر روی دستگاه نصب شده و قبل از اجرای کد اتوماسیون راه اندازی شود.
این سرور با چندین پلتفرم از جمله iOS و Android ارتباط برقرار می کند. این یک جلسه برای برقراری ارتباط با نقاط پایانی برنامه تلفن همراه ایجاد می کند. این یک سرور HTTP مبتنی بر Node.js است که درخواست های HTTP را از کتابخانه های مشتری می خواند و آنها را به پلتفرم مربوطه ارسال می کند.
کاربران برای راه اندازی سرور باید کد را از Npm دانلود یا نصب کنند. همچنین رابط کاربری گرافیکی سرور را فراهم می کند. می توانید آن را از وب سایت Appium دانلود کنید.
پایان دستگاه
«دستگاه پایانی» عمدتاً یک دستگاه تلفن همراه یا شبیه ساز است. سرور Appium اسکریپت های اتوماسیون را در دستگاه نهایی در پاسخ به دستورات مشتری اجرا می کند.
گردش کار معماری Appium
Appium Client که حاوی اطلاعات راه اندازی و اسکریپت اتوماسیون مورد آزمایشی است، دستورات JSON را به سرور ارسال می کند. فایل های jar یکپارچه در کلاینت اسکریپت اتوماسیون را به فرمت JSON تبدیل می کند.
سپس Appium Server فرمان را تشخیص داده و به دستگاه پایانی مرتبط متصل می شود. هنگامی که اتصال را برقرار کرد، موارد آزمایشی را در دستگاه نهایی اجرا می کند. دستگاه پایان با یک پاسخ HTTP به درخواست Appium پاسخ می دهد. Appium گزارش را با تمام اقدامات انجام شده روی دستگاه پر می کند، زیرا آزمایش کنندگان هر مورد آزمایشی را تکمیل می کنند. اجرای Appium در مورد Android و iOS کمی متفاوت است.
Appium در اندروید
Appium در اندروید با استفاده از چارچوب UIAutomator خودکار می شود. اندروید چارچوب UIAutomator را به دلایل اتوماسیون توسعه داد. بنابراین بیایید ببینیم Appium دقیقاً چگونه بر روی Android کار می کند.
کلاینت Appium (c/Java/Python و غیره) با Appium Server ارتباط برقرار می کند و با استفاده از پروتکل JSON Wire تعامل می کند.
سپس سرور Appium یک جلسه اتوماسیون برای مشتری ایجاد می کند و قابلیت های مورد نظر مشتری را تأیید می کند. سپس به چارچوبهای مربوطه ارائهشده توسط فروشنده، مانند UIAutomator، پیوند مییابد.
UIAutomator با bootstrap.jar برای فعالیت های کلاینت که بر روی شبیه ساز/شبیه ساز/دستگاه واقعی کار می کنند، متصل می شود.
در اینجا bootstrap.jar به عنوان یک سرور TCP عمل می کند که از طریق آن می توانیم دستور تست را با استفاده از UIAutomator به دستگاه اندرویدی ارسال کنیم.
Appium با iOS
Appium از XCUI Test API اپل برای تعامل با عناصر UI در دستگاه های iOS استفاده می کند. XCUITest چارچوبی برای اتوماسیون همراه با XCode اپل است.
-
کلاینت Appium (c/Java/Python و غیره) با Appium Server ارتباط برقرار می کند و با استفاده از پروتکل JSON Wire تعامل می کند.
-
سپس Appium Server یک جلسه اتوماسیون برای مشتری ایجاد می کند، قابلیت های مورد نیاز مشتری را تایید می کند و به چارچوب ارائه شده توسط فروشنده مربوطه مانند XCUI Test متصل می شود.
-
برای عملیات سرویس گیرنده، XCUI Test با bootstrap.js که روی یک شبیه ساز/شبیه ساز/دستگاه واقعی اجرا می شود، ارتباط برقرار می کند.
-
Bootstrap.js این عمل را روی برنامه تحت آزمایش انجام می دهد. پس از اجرای دستور، کلاینت پیامی را به سرور Appium برمیگرداند که حاوی اطلاعات لاگ فرمان است.
نتیجه
Appium ابزار جامعی است که می تواند به شما در توسعه اپلیکیشن های با کیفیت کمک کند. این بهترین بستر را برای نوشتن اسکریپت های آزمایشی برای اندروید و iOS در اختیار شما قرار می دهد. با این حال، تلاش برای کار با Appium بدون کمک چالش برانگیز است. یک پلتفرم تست برنامه تلفن همراه مانند HeadSpin که از جزئیات Appium آگاه است، میتواند به شما در رفع نیازهای آزمایشی خود کمک کند. تماس گرفتن!
منبع اصلی: https://www.europeanbusinessreview.com/details-on-appium-and-its-architecture/