اختبار أتمتة iOS مع Xcode إطار واجهة المستخدم
⚡ ملخص ذكي
اختبار أتمتة نظام التشغيل iOS باستخدام Xcode يقوم بتسجيل وإعادة تشغيل إجراءات واجهة المستخدم مقابل تطبيق قيد الاختبار، باتباع دورة تعتمد على الاختبار من التصميم والاختبار والتنفيذ والاختبار مرة أخرى حتى تجتاز كل حالة الاختبار.
اختبار أتمتة iOS باستخدام Xcode
لضمان جودة تطبيق iOS الخاص بك، يجب عليك اتباع عملية التطوير القائمة على الاختبار الموضحة في الشكل أدناه.
التطوير القائم على الاختبار (TDD) هو أ تجريب نموذج يُطبق على اختبار تطبيقات iOS، وهو يندرج ضمن الممارسة الأوسع لـ اختبار المحمولفي هذا النموذج، يتعين على المختبر اتباع المراحل الأربع التالية:
- تصميم: حدد ما تريد اختباره وصمم حالات الاختبار الخاصة بك.
- اختبار: قم بتشغيل جميع الاختبارات وتحقق مما إذا كانت أي من حالات الاختبار تفشل.
- تنفيذ: Revاستخدم الكود الخاص بك وقم بإصلاح الأخطاء التي تسببت في فشل الاختبار.
- أعد الاختبار: إذا فشل أحد الاختبارات، فارجع إلى التصميم الأصلي. أما إذا نجحت جميع حالات الاختبار، فإن الكود يفي بجميع المتطلبات المختبرة.
اعداد Xcode مشروع لاختبار واجهة المستخدم
لإنشاء برنامج اختبار لنظام iOS، أنت بحاجة إلى جهاز Mac. يجب أن يكون مثبتًا على جهاز Mac الخاص بك البرامج التالية:
- OS X — نظام التشغيل الخاص بجهاز ماك.
- Xcode IDE — أداة تطوير تطبيقات نظام التشغيل iOS.
- إطار عمل للاختبار الآلي — أتمتة واجهة المستخدم، وOCUnit، وما إلى ذلك.
- حزمة تطوير البرامج لنظام التشغيل iOS 4 أو ما يفوقها.
⚠️ ملاحظة حول الإصدار: تصف المتطلبات المذكورة أعلاه مجموعة الأدوات المستخدمة في الحقبة التي كُتبت فيها الإرشادات التالية. على جهاز ماك حديث، Xcode يأتي البرنامج مزودًا بإطاري عمل XCTest وXCUITest، ولم تعد أداة أتمتة واجهة المستخدم جزءًا من التثبيت. تم الاحتفاظ بالخطوات الأصلية أدناه لأنها توثق كيفية عمل إطار العمل، وسيتم شرح البديل الحديث لاحقًا.
كيفية إنشاء أتمتة iOS باستخدام UI Automation Framework
تقوم الخطوات الثمانية التالية بتسجيل نص برمجي باستخدام أداة التشغيل الآلي وإعادة تشغيله على التطبيق قيد الاختبار.
الخطوة 1) إطلاق الأدوات
افتح XCode -> افتح أداة المطور -> أداة القياس
الخطوة 2) إضافة أداة الأتمتة
في نافذة الأدوات، حدد أداة التشغيل الآلي.
لإنشاء نص برمجي للاختبار، يمكنك إما تسجيل سيناريو الاختبار أو يمكنك برمجته يدويًا.
الخطوة 3) اضغط على الزر الأحمر
يتم تشغيل آلة موسيقية - أوقف التسجيل فوراً. إذا كنت ترغب في بدء التسجيل، فاضغط على الزر الأحمر.
الخطوة 4) إنشاء برنامج نصي جديد
في نافذة البرامج النصية، انقر فوق إضافة > إنشاء لإنشاء برنامج نصي جديد.
الخطوة 5) اختر الهدف
أنت الآن في Tracنافذة e. استخدم خيار الاختيار Target اسحب للأسفل للانتقال إلى نسخة تصحيح الأخطاء من تطبيقك.
في هذه الحالة، عينة أبل SimpleDrillDown يُستخدم التطبيق كتطبيق قيد الاختبار. ويحتوي على واجهة المستخدم الرسومية الموضحة أدناه.
الخطوة 6) ابدأ بتسجيل البرنامج النصي الخاص بك
قم بتسجيل البرنامج النصي الخاص بك عن طريق الضغط على زر التسجيل في أعلى أو أسفل الأداة.
الآن يمكنك تنفيذ بعض إجراءات واجهة المستخدم على تطبيقك قيد الاختبار، وسيتم تسجيل البرنامج النصي الخاص بك.
الخطوة 7) انظر البرنامج النصي الخاص بك
لرؤية النص الخاص بك، اضغط على Tracانقر على القائمة المنسدلة "سجل / سجل المحرر" ثم انتقل إلى عرض سجل البرنامج النصي.
سترى البرنامج النصي المسجل الخاص بك.
الخطوة 8) تشغيل البرنامج النصي الخاص بك
اضغط على زر التشغيل. سيتم تشغيل البرنامج النصي، ويمكنك إيقافه بعد ظهور السجلات.
⚠️ ملاحظة تاريخية: تم إيقاف استخدام أداة الأتمتة المستخدمة في هذه الخطوات الثماني في Xcode تمت إزالة الإصدار 8 وما بعده، لذلك لم يعد موجودًا في الإصدار الحالي Xcode عمليات التثبيت. تم الاحتفاظ بالخطوات هنا كسجل لكيفية عمل الإطار؛ بالنسبة للعمل الجديد، استخدم دليل XCUITest الموجود أسفل هذه الصفحة.
كيفية إنشاء أتمتة iOS باستخدام إطار عمل OCUnit
أما المسار الثاني فيضع الاختبارات داخل Xcode المشروع نفسه بدلاً من أن يكون داخل الأدوات.
الخطوة 1) ابدأ Xcode بيئة التطوير المتكاملة، إضافة هدف حزمة اختبار الوحدة
الخطوة الثانية: اكتب اسم حزمة اختبار الوحدة الجديدة كما هو موضح في الشكل أعلاه، ثم انقر فوق "إنهاء".
الخطوة 3) اجعل اختبار الوحدة هو الهدف النشط
الخطوة الرابعة) أضف مجموعة لفصول الاختبار
الخطوة 5) إضافة فئة اختبار الوحدة
الخطوة السادسة) ابدأ الآن بتنفيذك
يستخدم OCUnit لغة Objective-C لإنشاء برنامج الاختبار، لذا يجب على المطور معرفة هذه اللغة. Xcode إصدارات الشحن وحدة التجارب بدلاً من ذلك، يتم ذلك عبر XCTest، الذي يدعم كلاً من Objective-C و Swift، لكن بنية الهدف والفئة الموضحة في هذه الخطوات الست لم تتغير.
UIAutomation مقابل XCUITest: ما الذي تغير؟
لأن كلا الإطارين المستخدمين أعلاه ينتميان إلى جيل سابق من مجموعة أدوات Apple، فمن الجدير بالذكر أن نكون دقيقين بشأن ما حل محلهما ولماذا.
| البعد | أتمتة واجهة المستخدم (الأدوات) | اختبار XCUIT |
| الحالة | تم إيقافها في Xcode 8 وتم حذفها من الإصدارات اللاحقة | إطار عمل اختبار واجهة المستخدم المدعوم من Apple |
| حيث توجد الاختبارات | البرامج النصية داخل أداة tracوثيقة إلكترونية | هدف حزمة اختبار واجهة المستخدم داخل Xcode تنفيذ المشاريع |
| اللغة | Javaسيناريو | Swift أو Objective-C |
| عداء الاختبار | أداة الأتمتة | XCTest، وهو نفس برنامج تشغيل اختبارات الوحدة |
| التكامل المستمر | محرج - يتم تشغيله من خلال الأدوات | يتم تشغيله من سطر الأوامر جنبًا إلى جنب مع اختبارات الوحدة |
| تسجيل | زر التسجيل في شريط أدوات الآلات الموسيقية | زر التسجيل في Xcode محرر، والذي يصدر Swift |
والنتيجة العملية لذلك هي أن مجموعة اختبارات XCUITest هي عبارة عن شفرة مصدرية عادية للمشروع. تتم مراجعتها وترقيم إصداراتها وتنفيذها مثل بقية قاعدة الشفرة، وهذا هو السبب الرئيسي لتسجيلها.tracاختفى النموذج الإلكتروني.
كيفية كتابة اختبار واجهة مستخدم لنظام iOS باستخدام XCUITest
إنّ المكافئ الحديث لخطوات الآلات الثمانية مختصر. يعكس الهيكل أدناه فكرة التسجيل ثم إعادة التشغيل نفسها، لكن الناتج هو ملف مصدر بدلاً من trace.
- أضف الهدف. In Xcode اختر ملف > جديد > Target ثم اختر قالب حزمة اختبار واجهة المستخدم، أو حدد خيار تضمين الاختبارات عند إنشاء مشروع جديد.
- افتح فئة الاختبار التي تم إنشاؤها. Xcode يقوم بإنشاء فئة فرعية من XCTestCase مع طرق إعداد واختبار فارغة.
- قم بتشغيل التطبيق قيد الاختبار. قم بإنشاء مثيل XCUIApplication وقم باستدعاء launch عليه، مما يؤدي إلى بدء تشغيل التطبيق في عملية منفصلة.
- استفسر وتصرف. يمكنك الوصول إلى العناصر من خلال استعلامات العناصر - الأزرار والجداول والنصوص الثابتة - واستدعاء وظائف النقر أو الكتابة أو التمرير عليها.
- أكد. استخدم XCTAssert للتحقق من وجود العنصر المتوقع بعد الإجراء.
- يركض. قم بتنفيذ الاختبار من Xcode مستكشف الاختبار، أو من سطر الأوامر بحيث يتم تشغيل نفس المجموعة في التكامل المستمر.
يتبع الاختبار البسيط هذا الشكل:
import XCTest final class AppUITests: XCTestCase { func testTappingFirstRowShowsDetail() { let app = XCUIApplication() app.launch() // act on the first row of the list app.tables.cells.element(boundBy: 0).tap() // verify that the next screen appeared XCTAssertTrue(app.staticTexts.firstMatch.waitForExistence(timeout: 5)) } }
لا يزال المُسجِّل موجودًا: فوضع المؤشر داخل دالة اختبار والضغط على زر التسجيل في المحرر يُولِّد هذه الاستعلامات تلقائيًا، وهو نتاج مباشر للخطوة 6 المذكورة أعلاه. المبادئ الأوسع لـ اختبار الأتمتة يُطبق دون تغيير.
نموذج أتمتة واجهة المستخدم Code
تتضمن هذه المقالة بعض الأمثلة على شفرة المصدر. وهي تساعدك على فهم البرنامج التعليمي بشكل أوضح وأسرع.
نموذج أتمتة واجهة المستخدم — نص اختبار لعرض توضيحي لأتمتة واجهة المستخدم.















