فتح ندوة عبر الإنترنت "مقدمة لاختبار أتمتة تطبيقات الهاتف المحمول على السيلينيوم و Appium"



مرحبا بالجميع! عشية إطلاق دورة Mobile QA Engineer ، كان لدينا درس تقليدي مفتوح. كان هناك الكثير من المعلومات لدرجة أن ندوة استمرت لمدة يومين ( اليوم 1 ، اليوم 2 ). في الواقع ، لقد كانت عبارة عن خدمة QA مكثفة حقيقية لمدة يومين ، والتي ستكون مفيدة لكل من ينوي أن يصبح محترفًا في اتجاه الاختبار الآلي لتطبيقات الأجهزة المحمولة على Android و iOS.



محاضر - ديمتري ياريجين ، مهندس ضمان الجودة مع 8 سنوات من الخبرة ، عمل 5 منها على عقد مع Google .

في ندوة عبر الإنترنت نظرت:

  • ما هو الاختبار بشكل عام ولماذا هناك حاجة إلى الأتمتة ؛
  • أدنى أساسيات Java للتشغيل الآلي (المتغيرات ، الكائنات ، الفئات ، OOP) ؛
  • ما هو Webdriver و Appium ؛
  • كيفية العثور على كائنات في تطبيق ويب باستخدام محددات مواقع مختلفة ؛
  • أتمتة تطبيق ويب (تسجيل الدخول على Facebook) باستخدام Appium ومحاكي Android والمزيد.

بالمناسبة ، إذا كنت ترغب في الحصول على أقصى قدر من التفاعل من ندوات الويب هذه ، فقم بتثبيت التطبيقات التالية قبل البدء في المشاهدة:

  1. أندرويد ستوديو
  2. Appium سطح المكتب .

تاريخ وميزات اختبار المحمول


ظهر اختبار الأجهزة المحمولة كصف دراسي في حوالي عام 2007 - في هذا الوقت تم الإعلان عن أول جهاز iPhone ، والذي غير الصناعة بالكامل. نعم ، كانت الاختبارات المتنقلة موجودة حتى عام 2007 ، لكن تطبيقات تلك الأوقات كانت بسيطة وبدائية. بعد عام 2007 ، أصبح التطوير على نظامي التشغيل iOS و Android نشطًا بشكل خاص ، وهذا بدوره لا يمكن أن يؤثر على الاختبار.

بالطبع ، يمتاز اختبار الأجهزة المحمولة بتفاصيله الخاصة ويختلف عن سطح المكتب:



على الرغم من البساطة الظاهرة والحجم الصغير للأدوات المستخدمة ، في Mobile QA ، تحتاج إلى تغطية الكثير من الأشياء مع الاختبار (في بعض الأحيان يكون هناك المزيد منها عند مقارنتها باختبار سطح المكتب). ومن قال إنه سيكون سهلاً؟

أنواع تطبيقات المحمول


تطبيقات الهاتف المحمول هي:

  1. الأم (الأم).
  2. هجين (هجين).
  3. تطبيقات الويب (الويب).

الآن انظر إلى التطبيق التالي:



وقل لي ، ما هو: تطبيق مختلط أو أصلي أو على شبكة الإنترنت؟

الجواب هو:
النص المخفي
هذا هو تطبيق ويب

في البداية ، من المفهوم أن تطبيق الويب يتم تشغيله وتشغيله في المتصفح ، على التوالي ، يتم تنفيذ جميع عناصر الواجهة ، كما يقولون ، بأسلوب ويب.
أما بالنسبة للتطبيقات الهجينة ، فهي في الأساس محاولة "لحشر" تطبيق ويب في حاوية خاصة وتشغيله في هذه الحاوية ، "تزينها" قليلاً لتبدو وكأنها أصلية.

أمثلة على التطبيقات الهجينة :



لا تختلف التطبيقات المختلطة في جمال معين: لا تزال الأزرار قائمة على الويب ، ويتم عرض الروابط بتنسيق ويب ، إلخ.

دعونا نلقي نظرة على ميزات التطبيقات الهجينة:



والآن مثال على تطبيق "أصلي" من AppStore:



انتبه لجودة واجهة هذا التطبيق وحقيقة أن جميع العناصر تبدو "أصلية" ، لأن الوظيفة مدمجة بالكامل في نظام التشغيل. بمعنى تقريبي ، التطبيق الأصلي هو تطبيق تم تطويره مع مراعاة التقنيات "الأصلية" ، وفي حالتنا ، فهو Xcode لنظام التشغيل iOS.

المعالم الرئيسية للتطبيقات النقالة


المعلمات هي كما يلي:

  • الأداء،
  • التوافق
  • الشاشة (المنعطفات ، الأوضاع) ،
  • تحديد الموقع الجغرافي،
  • وضع غير متصل بالشبكة
  • تفاعل نظام الملفات ،
  • العمل مع جهات الاتصال
  • التزامن،
  • العمل مع الذاكرة
  • البطارية.

ميزات اختبار تطبيقات الهاتف المحمول


الآن دعونا نتعرف على ميزات اختبار التطبيقات للأجهزة المحمولة:



تفاعل المختبرين والمطورين


من حيث المبدأ ، لا يختلف التفاعل عملياً عن التفاعل في بيئة طبيعية عندما يتعلق الأمر باختبار سطح المكتب. كل نفس:

  1. المطور يخلق وظائف جديدة ؛
  2. اختبار الاختبارات الميزات على الأجهزة المختلفة.
  3. كما تم العثور على الأخطاء ، يختبر المختبر تقارير الأخطاء ويظهر مناطق مشكلة المطور ؛
  4. المطور إصلاح الخلل.
  5. إرجاع مطور التطبيق للاختبار إضافية؛
  6. إذا لم تكن هناك مشكلة ، فسيكون التطبيق جاهزًا للإصدار.



OOP للاختبار


والآن OOP في 5 دقائق )). لذلك ، إذا كنت تخطط لإجراء اختبار تلقائي ، فيجب أن تعرف:

  • الطبقات ، الكائنات ، الأساليب ؛
  • الميراث.
  • سلاسل ، أعداد صحيحة.
  • تعدد الأشكال.
  • المصفوفات.
  • إعادة تعريف / الزائد.
  • المصممين.
  • الواجهات.

إذا كان باختصار وبدون شروط معقدة ، فإن OOP (البرمجة الموجهة للكائنات) هي مزيج من البيانات والرمز لمعالجتها في كائن واحد.



الوراثة هي آلية لغة تتيح لك إنشاء فئة جديدة بناءً على فئة موجودة.

التغليف عبارة عن آلية لغة تقيد الوصول إلى مكونات كائن ما (المتغيرات والأساليب) وتجعلها قابلة للوصول فقط داخل الكائن (خاص). بمعنى آخر ، إخفاء تطبيق الفصل.

تعددية الأشكال هي قدرة الطبقة المنحدرة على تغيير تنفيذ الفئة الأصل ، مع الحفاظ على الواجهة.

الآن دعنا ننتقل من النظرية إلى الممارسة ، مما سيساعدك على فهم أساسيات OOP.

متفاعل


بادئ ذي بدء ، افتح الرابط التالي . لدينا شفرة جافا التالية التي توجد بها ثلاث فئات رئيسية:

1. الرئيسية:

public class Main { public static void main (String[]args) { Cat cat = new Cat (); cat.setAge (5); cat.setName ("Alisa"); System.out.println (cat.getName ()); System.out.println (cat.getAge ()); } } 

2. الحيوان:

 public class Animal { private String name; private int age; public Animal() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 

3.Cat:

 public class Cat extends Animal { private String name; public String getName() { return "Cat name is: " + name; } public void setName(String name) { this.name = name; } } 

الرئيسية هي الفئة الرئيسية اللازمة لتشغيل الفئات الأخرى. يسرد صف الحيوان صفات مثل عمر واسم الحيوان. ترث فئة Cat جميع خصائص الفئة Animal (تمدد Cat Animal) ، ولكنها تتخطى الطرق الحالية للعمل مع الفصل الخاص بنا.



حاول الآن حل المشكلة التالية بنفسك:

  • جعل فئة Dog ، وراثة الطبقة Animal ؛
  • إنشاء طريقة getName() في فئة Dog تعرض “Dog name is: [ ]” ؛
  • إنشاء أسلوب setName() في فئة Dog بإرجاع الاسم ؛
  • في الفئة Main ، قم بإنشاء مثيل لفئة Dog ، وقم بتعيين الاسم باستخدام setName() وقم بتشغيل طريقة getName() للحصول على الاسم.

حل المشكلة .

التنفيذ. متى تكون هناك حاجة إليها ، ومتى لا تكون هناك حاجة إليها؟


نحتاج الأتمتة في الحالات التالية:

  • تطبيق معقد مع عدد كبير من الشاشات ؛
  • ترسانة كبيرة من الأجهزة.
  • تحديثات متكررة
  • عدد كبير من المستخدمين
  • يعمل التطبيق في العديد من البلدان وأسواق التطبيق ؛
  • اختبار السرعة هو المهم.
  • هناك حاجة لاختبار الأداء.

عندما لا تكون هناك حاجة إلى الأتمتة:

  • واحد أو شاشتين في التطبيق ؛
  • يعمل التطبيق في بلد واحد ، في سوق واحد ؛
  • تحديثات نادرة
  • عدد قليل من المستخدمين.
  • تكاليف الأتمتة سوف تتجاوز الميزانية.

الأتمتة: المبادئ والوسائل


مبادئ الأتمتة:

  1. ابحث عن كائن على شاشة التطبيق الحالية.
  2. تحقق من حالتها ، تأكد من توفرها.
  3. تنفيذ الإجراءات مع الكائن.

تصنيف الأتمتة:

  1. أدوات التشغيل التلقائي التي لا تحتاج إلى الوصول إلى التعليمات البرمجية المصدر (Webdriver ، Appium).
  2. أدوات التشغيل الآلي التي تتطلب الوصول إلى التعليمات البرمجية المصدر (Espresso ، KIF).

الأتمتة رائعة بالطبع ، لكن يجب أن تتذكر دائمًا أنه ليس كل شيء "تلقائيًا".

أتمتة مع Appium


Appium هو خادم يستند إلى بروتوكول WebDriver (WebDriver هو إطار عمل لأتمتة تطبيقات الويب). يقبل Appium الطلبات من جانب العميل ، ويقوم بتحويلها ونقلها إلى المحاكي أو الجهاز.



عند التشغيل ، يسمح لك Appium بمشاهدة جميع الطلبات التي تحدث من العميل إلى الخادم:





كيف يبدو إعداد نظام بيئة Appium:



الأصدقاء ، تحدثنا فقط عن الجزء الأول من الويبينار ، لذلك نوصيك بمشاهدة الفيديو بالتأكيد في التسجيل حتى لا تفوت أي شيء. سيكون هناك أيضًا نقاش حول التعليقات التوضيحية في الاختبارات ، وتهيئة Appium للتطبيقات الأصلية ، والبحث عن العناصر التي تستخدم Appium على Android. بالإضافة إلى ذلك ، تأكد من إطلاعك على الجزء الثاني من الدرس المفتوح ، والذي سيوفر المزيد من المعرفة العملية المتعمقة في مجال الأتمتة بشكل عام و Appium بشكل خاص.

وبالطبع ، اشترك في دورة Mobile QA Engineer ، والتي ستبدأ قريبًا!

Source: https://habr.com/ru/post/ar472736/


All Articles