تقريبا. ترجم: لقد قمت بترجمة هذا المقال لمساعدة أولئك الذين يتخذون خطواتهم الأولى في التشغيل الآلي للاختبار ويريدون معرفة المزيد عن أداة Appium. يصف المبدأ العام لتشغيل برامج تشغيل Appium ، وكذلك أنواعها والغرض منها. في بداية الرحلة ، يفتقر العديد من المختبرين إلى معلومات منظمة ، وستساعد هذه المواد في تحديد اختيار الأداة المناسبة.
Appium عبارة عن أداة مشتركة تسمح لك بإجراء اختبارات تلقائية للجوال (iOS و Android) وتطبيقات سطح المكتب في نفس الوقت. تتمثل طريقة تطبيق هذا الطراز متعدد المنصات في استخدام برامج تشغيل متعددة. بشكل أساسي ، لدى Appium نفس البنية مثل Selenium WebDriver ، والذي يستخدم أيضًا عددًا من برامج التشغيل المستقلة لدعم التشغيل الآلي للاختبار عبر المستعرض.
هناك برامج تشغيل Appium منفصلة لأدوات التشغيل الآلي المختلفة ، مما يعني عادةً استخدام برنامج تشغيل واحد لكل منصة (واحد لنظام iOS ، والآخر لنظام Android ، وما إلى ذلك). ومع ذلك ، هناك استثناءات. إنها مرتبطة بحقيقة أنه في أتمتة اختبار التطبيقات لبعض المنصات (على سبيل المثال ، لنظام أندرويد) ، يتم استخدام العديد من الأدوات مع Appium. في الواقع ، هناك ثلاثة برامج تشغيل لنظام Android: تعتمد على UiAutomator و UiAutomator 2 و Espresso.
مبدأ تشغيل السائقين
ربما تكون برامج التشغيل أهم مكون للأداة بأكملها ، لأن مهمتها هي تنفيذ أوامر API Appium (المعروفة باسم WebDriver Protocol) على نظام أساسي محدد. في جوهرها ، برامج التشغيل هي مترجمين يحولون كود عميل Appium إلى شيء ينفذ الأوامر على iOS و Android وما إلى ذلك.
بالنسبة للبساطة المعمارية ، من بين أسباب أخرى ، يعد كل برنامج تشغيل فردي خادمًا متوافقًا مع WebDriver مستقل (على الرغم من أنه لا يحتوي على جميع الخيارات الموجودة في خادم Appium الرئيسي). داخل السائق ، تتم معالجة الأوامر المستلمة بطريقة غريبة. على سبيل المثال ، يمكن نقلها إلى عملية منفصلة تقوم بتشغيل تعليمات Java البرمجية على جهاز Android.
لدى السائقين أنفسهم بنية داخلية معقدة إلى حد ما ، تعتمد أحيانًا على مجموعة كاملة من التقنيات. يوجد أدناه رسم بياني يوضح مجموعة التقنيات المتضمنة في برنامج تشغيل XCUITest (برنامج تشغيل iOS الحالي):

كما ترون ، مبدأ برنامج XCUITest ليس بهذه البساطة. إنه متوفر كجزء من Appium ويبدأ عندما تبدأ جلسة iOS. داخل برنامج التشغيل ، يستخدم أداة أخرى ، تُعرف باسم WebDriverAgent ، وهي المسؤولة عن تحويل أوامر WebDriver Protocol إلى مكالمات مكتبة XCUITest.
تحتوي العديد من برامج التشغيل على بنية مشابهة ، على الرغم من أن كل واحد منهم يمكنه تطبيق نفسه ، لأنه في النهاية يتم نشر برنامج التشغيل في npm كفئة ترث فئة Appium BaseDriver. هذا يسمح للسائقين بالاتصال بسهولة بـ Appium.
أنواع السائقين
إذن كم عدد السائقين هناك؟ بصراحة ، من الصعب للغاية أن نقول ذلك بالتأكيد ، لأنه بالإضافة إلى سائقي Appium الرسميين ، يوجد أيضًا سائقون غير رسميين. ولكن إذا نظرنا إلى شفرة مصدر Appium ، فسنرى ما يلي:
const AUTOMATION_NAMES = { APPIUM: 'Appium', UIAUTOMATOR2: 'UiAutomator2', UIAUTOMATOR1: 'UiAutomator1', XCUITEST: 'XCUITest', YOUIENGINE: 'YouiEngine', ESPRESSO: 'Espresso', TIZEN: 'Tizen', FAKE: 'Fake', INSTRUMENTS: 'Instruments', WINDOWS: 'Windows', MAC: 'Mac', };
أسماء التنفيذ التلقائي هي مفاتيح لمختلف برامج التشغيل التي يستخدمها Appium. يحدد هذا القسم من التعليمات البرمجية الأسطر المسموح باستخدامها كقيم لقدرة automationName. كل سائق عادة ما يدعم منصة واحدة فقط. فيما يلي وصف موجز لكل برنامج تشغيل استنادًا إلى automationName الخاص به:
- يعد Appium مجرد مؤشر إلى برنامج التشغيل الافتراضي للنظام الأساسي المحدد وليس برنامج تشغيل منفصل ؛
- UiAutomator2 ( مستودع ) - برنامج التشغيل الحالي لنظام Android الأساسي ، يُستخدم افتراضيًا ويستند إلى أداة Google UiAutomator ؛
- UiAutomator1 ( مستودع ) هو برنامج تشغيل Android قديم يستند إلى إصدار أقدم من UiAutomator. لن يتم دعم برنامج التشغيل هذا في المستقبل ، لذلك من الأفضل التخلي عنه لصالح UiAutomator2 ؛
- XCUITest ( مستودع ) - برنامج التشغيل الافتراضي لنظام التشغيل iOS ، استنادًا إلى أداة Apple XCUITest ؛
- YouiEngine ( مستودع ) - برنامج تشغيل من المطورين من You.i Labs ، والذي يُستخدم لأتمتة اختبار التطبيقات لمختلف الأنظمة الأساسية التي تم إنشاؤها على أساس SDK الخاص بهم ؛
- Espresso ( مستودع ) - أحدث برنامج تشغيل لنظام Android ، استنادًا إلى أداة Google Espresso ؛
- Tizen ( مستودع ) - برنامج تشغيل من مطوري Samsung لأتمتة اختبار التطبيقات المستندة إلى Xamarin المستخدمة في Tizen OS ؛
- يستخدم Fake (الاسم يتحدث عن نفسه) كأداة اختبار داخلي لـ Appium. لن تضطر أبدًا لاستخدامه ؛
- الأدوات ( المستودع ) - برنامج تشغيل قديم يستخدم للتطبيقات التي تعمل بنظام iOS 9.3 وما دونه ؛
- Windows ( مستودع ) - قامت Microsoft بتجميع خادم متوافق مع Appium ، يطلق عليه WinAppDriver ، ويقوم برنامج التشغيل هذا بتوصيله بخادم Appium الرئيسي. مصممة مباشرة لأتمتة تطبيقات سطح المكتب لنظام التشغيل Windows ؛
- Mac ( مستودع ) - برنامج تشغيل يسمح لك بأتمتة اختبار تطبيقات سطح المكتب لنظام Mac.
كما ذكرنا سابقًا ، لكل من برامج التشغيل هذه بنية خاصة به ، والتي يمكن رؤيتها من خلال النظر إلى هذا المخطط:

التعليمات للسائقين
إذا كيف يمكنك معرفة أي سائق لاستخدام؟
حسنًا ، إذا كنت بحاجة إلى كتابة
الاختبارات التلقائية للتطبيقات الخاصة بنظام iOS أو Windows أو Mac أو Tizen ، فإن الخيار واضح - استخدم برنامج التشغيل الافتراضي لكل من هذه الأنظمة الأساسية. بالنسبة إلى Android ، هنا عليك أن تختار بين UiAutomator2 و Espresso. من الأفضل أن تعرف مقدمًا المزيد عن كل من هذه الأدوات وأن تفهم الأداة الأفضل لحالتك. تتشابه قدرات برنامجي UiAutomator2 و Espresso ، لكنهما غير متطابقين تمامًا.
هل تدعم جميع برامج التشغيل نفس الأوامر بالتساوي؟نعم ولا. على المستوى الأساسي ، نحن مقيدون بقدرات التشغيل الآلي التي يوفرها مزودي المنصات. اضغط على جهاز Android يعمل بنفس الطريقة التي يعمل بها جهاز iOS. ولكن قد تختلف عملية تنفيذ الأوامر الأخرى. يحاول مطورو Appium ، قدر الإمكان ، ضمان نفس سلوك برنامج التشغيل على منصات مختلفة.
هل يمكنني التبديل من برنامج تشغيل إلى آخر وتوقع فشل اختباراتي؟نعم ولا. كل هذا يتوقف على ما السائقين نتحدث عنه. تتمثل إحدى مزايا استخدام Appium في أنه يمكنك التبديل من أداة أتمتة إلى أخرى (على سبيل المثال ، من UiAutomator2 إلى Espresso) دون التضحية بمجموعة اختبار جاهزة. ومع ذلك ، يجب عليك الترحيل ببطء ومنهجية ، والتأكد من أن كل شيء يحدث كما تتوقع. ينشر فريق Appium أحيانًا إرشادات الترحيل للانتقال من سائق إلى آخر - يجب الانتباه إليها قبل الترحيل.
هل يمكنني إنشاء برنامج التشغيل الخاص بي؟نعم! لقد فعل الكثيرون هذا بالفعل ، على وجه الخصوص ، أنا
وجاسون هوجينز وأنا (في AppiumConf 2019). ولكن هناك برامج تشغيل خاصة أخرى ، مثل
برنامج تشغيل hbbtv من Christian Broman .
هل سيتغير السائقون في Appium 2.0؟هذا سؤال جيد جدا! أحد الجوانب السلبية لنظام تشغيل Appium هو أنها جميعًا مضمنة في تبعية خادم Appium. لكننا نتحرك لضمان وجود برامج التشغيل في نظام أقل تماسكًا ، حيث يمكنك اختيار برامج التشغيل المحددة لاستخدامها مع Appium. إذا قمت بحل هذه المشكلة ، فلن تضطر إلى تثبيت برنامج التشغيل UiAutomator2 القديم وتوصيل تبعياته عند استخدام Appium فقط لتشغيل اختبارات iOS. (هل تعرف أن هناك
اقتراح لتطوير Appium 2.0 ؟)
آمل أن يكون هذا المقال مفيدًا لك. سأكون سعيدًا لقراءة التعليقات حول تجربتك باستخدام برامج تشغيل Appium.