البرنامج التعليمي UIAutomatorViewer: المفتش لـ Android الاختبار
⚡ ملخص ذكي
UIAutomatorViewer هو أداة فحص رسومية مدمجة مع Android مجموعة تطوير برمجية (SDK) تلتقط لقطة شاشة للجهاز، وتعرض التسلسل الهرمي للعرض، وتُظهر السمات. Appium يحتاج إلى تحديد مواقع الأزرار والحقول والملصقات بشكل موثوق.
ما هو UIAutomatorViewer؟
UIAutomatorViewer هي أداة واجهة مستخدم رسومية لمسح وتحليل مكونات واجهة المستخدم الخاصة بـ Android تطبيق. لأتمتة أي Android التطبيق باستخدام Appiumيحتاج المستخدم إلى تحديد العناصر في التطبيق قيد الاختبار (AUT). باستخدام UIAutomatorViewer، يمكنك فحص واجهة المستخدم الخاصة بـ Android تطبيق لمعرفة التسلسل الهرمي وعرض الخصائص المختلفة (المعرف، النص، إلخ) للعنصر.
أثناء تنفيذ البرامج النصية للأتمتة، Appium يستخدم هذا البرنامج أداة UIAutomatorViewer لتحديد خصائص الكائن المختلفة، ثم يستخدم هذه الخصائص لتحديد الكائن المطلوب. هذه الفكرة الأساسية - قراءة السمة في نافذة الخصائص، ثم إعادة استخدامها كمحدد موقع في البرنامج النصي - هي ما يشرحه باقي هذا المقال.
تُظهر لقطة الشاشة أدناه الأداة في حالة عملها الطبيعية: شاشة الجهاز الملتقطة على اليسار، وشجرة العقدة في أعلى اليمين، وصفحة خصائص العقدة المحددة أسفلها.
المتطلبات الأساسية لاستخدام UIAutomatorViewer
يقوم برنامج الفحص بقراءة الشاشة المباشرة لجهاز هاتف حقيقي أو جهاز محاكاة، لذلك يجب أن يكون هناك قدر ضئيل من الإعداد قبل أن تعرض النافذة أي شيء على الإطلاق.
- A Java مجموعة تطوير: uiautomatorviewer هو Java تطبيق سطح المكتب الذي يتم تشغيله بواسطة برنامج نصي دفعي، لذلك يجب تثبيت JDK وأن يكون متاحًا في مسار النظام.
- استخدم Android SDK: يتم عرض السفن داخل SDK أدوات المجلد، لذلك يجب تثبيت SDK قبل وجود المشغل على القرص.
- أدوات المنصة و adb: يتحدث المشاهد إلى الجهاز من خلال Android جسر التصحيح، لذلك بنك التنمية الآسيوي يجب تثبيته وأن يكون قادراً على رؤية الهاتف.
- خيارات المطور وتصحيح أخطاء USB: يجب تشغيل كليهما في إعدادات الجهاز، وإلا فلن يقوم adb بإدراج الجهاز.
- كابل USB مزود بإمكانية نقل البيانات وبرنامج تشغيل: كابل شحن فقط، أو برنامج تشغيل من الشركة المصنعة مفقود Windows، ينتج قائمة أجهزة فارغة.
- التطبيق قيد الاختبار: يجب تثبيت التطبيق وفتحه على الجهاز، لأن أداة الفحص تلتقط كل ما هو معروض على الشاشة حاليًا.
مع وجود هذه العناصر الستة، تصبح خطوة التنزيل قصيرة.
كيفية تنزيل وتثبيت UIAutomatorViewer
يُعد UIAutomatorViewer جزءًا من Android مدير SDK، وسيكون متاحًا بمجرد تثبيته. قم بتنزيله وتثبيته. Android مجموعة تطوير البرامج (SDK) من المسؤول Android Studio تحميل الصفحة.
بمجرد Android تم تثبيت حزمة تطوير البرامج (SDK)، انتقل إلى هذا المسار:
c:\users\<username>\AppData\Local\Android\sdk\tools
ستلاحظ وجود ملف دفعي بهذا الاسم:
uiautomatorviewer.bat
Double انقر عليه لتشغيل واجهة المستخدم الرسومية لبرنامج UIAutomatorViewer. ستظهر قائمة المجلدات كما هو موضح أدناه، حيث يوجد ملف الدُفعة بجانب أدوات SDK الأخرى.
⚠️ ملاحظة حول الإصدار: Androidلا تزال وثائق UI Automator القديمة الخاصة بـ 's تصف كيفية تشغيل الأداة من /أدوات/، ولكن النظام المستقل القديم Android أدوات SDK لم يعد مدير SDK يقدم هذه الحزمة في الإصدار الحالي Android Studio الإصدارات. لا تزال عمليات التثبيت القديمة وأرشيفات SDK القديمة تحتوي على المشغل؛ أما في التثبيت الجديد، فعادةً ما يكون الملف غير موجود، و Appium يُعدّ برنامج Inspector البديل العملي. وقد تم الإبقاء على الخطوات الأصلية المذكورة أعلاه لأنها لا تزال صحيحة لأي جهاز لا يزال يحتوي على مجلد الأدوات.
كيفية استخدام UIAutomatorViewer للعثور على الكائنات في تطبيقك
تسلسل الالتقاط هو نفسه دائمًا: قم بإعداد الجهاز، وضع الشاشة التي تهمك أمام الكاميرا، ثم التقط الصورة.
- تفعيل خيارات المطور على جهازك. اقرأ Androidدليل لتكوين خيارات المطور على الجهاز لمعرفة كيفية تفعيل خيارات المطور على Android الأجهزة.
- قم بتوصيل Android توصيل الجهاز بالكمبيوتر عبر كابل USB.
- حدد "Guruتطبيق 99" من قائمة التطبيقات، كما هو موضح أدناه.
- انقر على لقطة شاشة للجهاز زر لتحديث UIAutomatorViewer ولتحميل Guruقم بإدخال واجهة المستخدم الرسومية للتطبيق رقم 99 في الأداة. يوجد الزر في شريط الأدوات الموضح أدناه.
- بعد اكتمال التحديث، سيتم التقاط لقطة شاشة لـ Guruيتم فتح تطبيق 99 في الجزء الأيسر.
- كما ترون في الصورة أعلاه، يوجد على الجانب الأيمن من النافذة لوحتان.
تحتوي اللوحة العلوية على التسلسل الهرمي للعقد - أي الطريقة التي يتم بها ترتيب مكونات واجهة المستخدم واحتوائها. يؤدي النقر على كل عقدة إلى عرض خصائص عنصر واجهة المستخدم هذا في اللوحة السفلية.
- حدد زر "الاختبار" في الصورة أعلاه لعرض خصائصه المختلفة (النص، معرف المورد ...).
كيفية استخدام هذه الخصائص لتحديد عناصر الأتمتة
حسنًا، لا يمكنك استخدام الخصائص مباشرةً، فلكل خاصية اسم مختلف في واجهة برمجة تطبيقات التشغيل الآلي. دعونا نرى كيفية استخدام قيم هذه الخصائص. يمكن استخدام السمات التالية لتحديد زر "الاختبار" في Guru99 تطبيق.
| السمة في UIAutomatorViewer | اسم المحدد في البرنامج النصي | الاستخدام النموذجي |
|---|---|---|
| نص | الاسم | تسمية مرئية على زر أو حقل ثابت |
| معرف المورد | id | الخيار الأكثر استقرارًا عندما يحدد المطور واحدًا |
| فئة | اسم_الفئة | تحديد مجموعة من الأدوات من نفس النوع |
| وصف المحتوى | معرف إمكانية الوصول | محدد مواقع متعدد المنصات يساعد أيضًا قارئات الشاشة |
كل خريطةping يظهر مباشرةً في لوحة تفاصيل العقدة. نص يمكن استخدام السمة كـ "اسم"، كما هو موضح في صف الخاصية أدناه.
استخدم معرف المورد يمكن استخدام السمة كـ "معرف".
استخدم فئة يمكن استخدام السمة كـ "className".
استخدم وصف المحتوى يمكن استخدام السمة كـ "AccessibilityId".
إلى جانب السمات المذكورة أعلاه، يمكننا كتابة مسارات XPath لتحديد الكائنات. أسماء هذه السمات هي أيضًا ما يتم تمريره. القدرات المطلوبة واستراتيجيات تحديد المواقع بمجرد تشغيل البرنامج النصي.
كيفية إنشاء محددات XPath من سمات UIAutomatorViewer
يُعدّ XPath الخيار البديل عندما لا تكون أي سمة فريدة بحد ذاتها. توفر لك لوحة تفاصيل العقدة جميع القيم التي يحتاجها التعبير، لذا فإن XPath هو في الواقع السمة التي قرأتها بالفعل، مكتوبة بصيغة شرطية.
اتبع هذا الترتيب في حل اللوحة:
- حدد العقدة في اللوحة العلوية واقرأها فئة, نص, معرف المورد و وصف المحتوى القيم في اللوحة السفلية.
- يُفضّل استخدام سمة واحدة ثابتة. إذا كانت قيمة resource-id موجودة، فاستخدمها وتوقف - لا حاجة إلى XPath.
- إذا لم يكن هناك شيء فريد، فقم بدمج سمتين في مسند واحد.
- إذا تغيرت التسمية أثناء التشغيل، فقم بتغيير اختبار المساواة للحصول على تطابق جزئي.
تستخدم الأنماط أدناه أسماء السمات تمامًا كما يعرضها برنامج UIAutomatorViewer.
<!-- match on the visible label --> //*[@text='Quiz'] <!-- match on the resource-id reported by the viewer --> //*[@resource-id='com.example.app:id/quiz_button'] <!-- match on the widget class --> //android.widget.Button[@text='Quiz'] <!-- partial match when the label is dynamic --> //*[contains(@text,'Qui')] <!-- two attributes combined for a unique match --> //*[@class='android.widget.Button' and @content-desc='Quiz']
تمنع بعض القواعد هذه التعبيرات من أن تصبح هشة. تتعطل المسارات المطلقة التي تجوب الشجرة بأكملها بمجرد أن يقوم المطور بتغليف تخطيط في حاوية أخرى، لذا ابدأ كل تعبير بشرطتين مائلتين وقم بالمطابقة على سمة بدلاً من ذلك. تتصرف المسندات القائمة على الفهرس بنفس الطريقة - فهي تبقى حتى تكتسب الشاشة صفًا. وقد يتطابق تعبير فريد على شاشة الهاتف مع عدة عقد على تخطيط الجهاز اللوحي، لذا أعد فحص نفس الشاشة على كلا عاملي الشكل قبل ترقية المحدد إلى مجموعة. وينطبق نفس الانضباط على XPath في Selenium، حيث تكون الشجرة عبارة عن نموذج كائن المستند (DOM) بدلاً من تسلسل هرمي للعرض.
الأخطاء التي قد يواجهها المستخدم أثناء استخدام UIAutomatorViewer
تحدث معظم حالات الفشل قبل رسم عقدة واحدة، وتعود جميعها تقريبًا إلى الاتصال بين محطة العمل والهاتف المحمول.
- أرى الخطأ — "لا" Android تم اكتشاف الأجهزة بواسطة adb — كما هو موضح في لقطة الشاشة أدناه. كيف يمكنني حل هذه المشكلة؟
حل: تأكد من توصيل جهازك بالكمبيوتر.
يوضح الجدول أدناه تلك الإجابة لتشمل الرسائل الأخرى التي يصادفها المختبرون في أغلب الأحيان.
| عرض | سبب محتمل | حل |
|---|---|---|
| لا Android تم اكتشاف الأجهزة بواسطة adb | الجهاز غير متصل، أو تم إيقاف تصحيح أخطاء USB، أو كابل الشحن فقط | أعد الاتصال باستخدام كابل البيانات، وقم بتمكين تصحيح أخطاء USB، ثم تأكد من ظهور الهاتف في قائمة أجهزة adb |
| تم إدراج الجهاز على أنه غير مصرح به | لم يتم قبول طلب بصمة الإصبع RSA على الهاتف المحمول | افتح قفل الشاشة، وأعد توصيل الجهاز، ثم انقر على "السماح بتصحيح أخطاء USB". |
| ملف uiautomatorviewer.bat مفقود | لم يتم تثبيت حزمة أدوات SDK القديمة | استخدم تثبيت SDK موجودًا لا يزال يحتوي عليه، أو انتقل إلى Appium مفتش |
| التسلسل الهرمي فارغ أو فشلت عملية الالتقاط | تغيرت الشاشة أثناء عملية التفريغ، أو أن التطبيق يحظر التقاط الشاشة | ثبّت الشاشة والتقط الصورة مرة أخرى؛ لا يمكن التقاط الشاشات الآمنة. |
| يظهر محتوى WebView كعقدة واحدة | يعرض البرنامج وجهات النظر الأصلية فقط | افحص محتوى الويب باستخدام أدوات مطوري المتصفح أو أداة فحص تدعم سياق الويب |
UIAutomatorViewer مقابل Appium مفتش مقابل مفتش تخطيط
يتم استخدام ثلاثة مفتشين بشكل شائع ضد Android الشاشات، وهي تحل مشاكل مختلفة قليلاً.
| معيار | UIAutomatorViewer | Appium مفتش | Android Studio مفتش التخطيط |
|---|---|---|---|
| يشحن مع | الإرث Android حزمة أدوات SDK | تطبيق مكتبي مستقل | Android Studio |
| تم فحص المنصات | Android فقط | Android و iOS | Android فقط |
| يحتاج إلى خادم قيد التشغيل | لا، إنه يتصل بـ adb مباشرة | نعم، إنه يتصل بـ Appium جلسة واحدة | لا، إنه يرتبط بعملية قابلة للتصحيح |
| يقوم بإنشاء رمز تحديد الموقع | لا، يتم نسخ القيم يدويًا | نعم، يقترح البرنامج مواقع الأجهزة ويمكنه تسجيل الإجراءات. | لا، إنها شاشة عرض لتصحيح الأخطاء |
| أفضل مناسب لـ | بحث سريع عن السمات في إعداد قديم | بناء وتحديد مواقع الأجنحة | تشخيص مشاكل التخطيط والعرض |
لجناح يمتد بالفعل Appiumيُعدّ برنامج Inspector الوريث الطبيعي له: فهو يقرأ نفس السمات، ويشغل نفس برنامج تشغيل UiAutomator2 في الخلفية، ويعمل مع نظام iOS أيضاً. Appium مشروع المفتش يتم إصدارها بشكل مستمر، لذا فهي الخيار الأكثر أمانًا للمشاريع الجديدة، بينما يظل Layout Inspector مفيدًا عندما يكون السؤال هو سبب عرض واجهة المستخدم بشكل غريب بدلاً من كيفية معالجة المشكلة. إذا كنت لا تزال بصدد اختيار مجموعة أدوات، فستجد مقارنة أوسع في دليلنا لـ أدوات اختبار تطبيقات الجوال إنها خطوة جيدة تالية، و نماذج لحالات اختبار الهواتف المحمولة أظهر إلى ماذا تؤدي هذه المحددات في النهاية.







