Robotium البرنامج التعليمي: Android إطار عمل للاختبار مع مثال

⚡ ملخص ذكي

Robotium هو مصدر مفتوح Android إطار عمل لأتمتة الاختبارات يُشغّل التطبيقات الأصلية والهجينة من خلال واجهة المستخدم الخاصة بها، مما يسمح للمختبِر بكتابة سيناريوهات وظيفية ونظامية وقبولية تغطي عدة جوانب. Android الأنشطة.

  • 🔘 الفصل الدراسي الأساسي: يكشف Solo عن طرق النقر والبحث والسحب والتأكيد التي يستخدمها كل Robotium استدعاءات حالات الاختبار.
  • ☑️ مناسب للصندوق الأسود: ترتبط الاختبارات بمكونات واجهة المستخدم في وقت التشغيل، لذا فإن الحد الأدنى من المعرفة المطلوبة بمصدر التطبيق مطلوب.
  • ✅ إجراء من أربع خطوات: صمم مواصفات الاختبار، واكتب برنامج الاختبار، وقم بتنفيذه على جهاز، ثم اجمع النتيجة.
  • 🧪 مثال عملي: مرحباً كاملاًAndroidتتحقق فئة الاختبار من النص المرئي والنشاط الحالي وزر البدء.
  • 🛠️ وضعان للجري: قم بتشغيل الاختبارات من بيئة التطوير المتكاملة أو من طرفية باستخدام الأمر adb shell am instrument.
  • ⚙️ الوضع الحالي: Robotium لا يزال الإصدار 5.6.3 هو الإصدار الأخير، لذا فهو جديد Android عادةً ما تقوم المشاريع بإقرانه أو استبداله بـ Espresso.

Robotium البرنامج التعليمي

ما هي تفاصيل Robotium?

Robotium هو Android إطار عمل للاختبارات يُؤتمت حالات الاختبار للتطبيقات الأصلية والهجينة. باستخدام Robotiumيمكن للمطور إنشاء حالات اختبار واجهة المستخدم الرسومية الآلية القوية لـ Android يمكن للمطور أيضًا كتابة سيناريوهات اختبار وظيفية ونظامية وقبولية تغطي عدة تطبيقات. Android الأنشطة.

Robotium إطار الاختبار

المعيار Android يحمل إطار الاختبار القيود المذكورة أدناه.

  • غير قادر على التعامل مع أنشطة متعددة
  • أداء تنفيذ الاختبار بطيء
  • حالات الاختبار معقدة ويصعب تنفيذها

استخدم Robotium يُعد الإطار الخيار الأفضل لإجراء الاختبارات على Android التطبيق.

Robotium هو إطار عمل مفتوح المصدر ويُعتبر امتدادًا لـ Android إطار عمل الاختبار. باستخدام Robotiumيمكن للمطور إنشاء حالات اختبار واجهة المستخدم الرسومية الآلية القوية لـ Android التطبيقات. علاوة على ذلك، يمكن للمطور كتابة سيناريوهات اختبار وظيفية ونظامية واختبار قبول تغطي تطبيقات متعددة. Android الأنشطة.

يلخص الجدول أدناه الميزات المتقدمة التي تميز Robotium من إطار عمل الأجهزة البسيطة.

الميزات المتقدمة لـ Robotium بالمقارنة بالمعيار Android إطار الأجهزة

الميزات المتقدمة لـ Robotium

Robotium فئات حالة الاختبار

Robotium تُرسل مجموعة صغيرة من الفئات للاختبار، ويستورد مثال المقالة الإصدار القديم com.jayway.android.robotium.solo حزمة. تدعم هذه الفئات حالات الاختبار التي تشمل أنشطة متعددة، و Solo تم دمج مع ActivityInstrumentationTestCase2.

ملاحظة: تيار Robotium تُعرَض الإصدارات نفس الفئة تحت اسم أقصر com.robotium.solo الحزمة، بينما بقيت إحداثيات Maven com.jayway.android.robotium:robotium-soloقم بتعديل عملية الاستيراد لتتوافق مع إصدار ملف JAR الذي تضيفه فعليًا إلى المشروع.

يوضح الرسم البياني أدناه كيف يتم وضع فئة Solo فوق حالة اختبار الأجهزة.

تم دمج فئة Solo مع ActivityInstrumentationTestCase2 في Robotium حالة اختبار

الاندماج في Robotium و ActivityInstrumentationTestCase2

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

كيف تعمل Robotium

لاستخدام Robotium في الخاص Android في مشروع الاختبار، عليك اتباع الخطوات التالية.

الخطوات المطلوبة للإضافة والاستخدام Robotium داخل Android مشروع اختبار

طريقة الاستخدام Robotium

لضمان جودة Android لتقديم الطلب، اتبع الإجراء المكون من أربع مراحل أدناه.

  • صمم مواصفات الاختبار
  • قم بتطوير برنامج الاختبار
  • قم بتنفيذ حالة الاختبار على الجهاز المستهدف
  • اجمع نتيجة الاختبار

يوضح المخطط الانسيابي أدناه ترتيب هذه المراحل الأربع.

مخطط انسيابي للمراحل الأربع Android إجراءات اختبار التطبيق

Android إجراءات اختبار التطبيق

الخطوة 1) تصميم مواصفات الاختبار

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

  • خطط لأنواع الاختبارات التي يجب إجراؤها (اختبار الوحدة، الاختبار الوظيفي، اختبار النظام).
  • صمم كل منها حالة اختبار للحصول على أقصى تغطية مع الحفاظ علىping عدد حالات الاختبار قليل. كلما زاد عدد التعليمات البرمجية التي تختبرها، زادت فرصة اكتشاف الأخطاء مبكراً.

الخطوة الثانية: كتابة برنامج الاختبار

يرشدك هذا القسم خلال عملية كتابة Android برنامج الاختبار باستخدام Android JUnit الاختبارات و Robotiumافترض أنك قد طورت بالفعل Android برنامج اسمه HelloAndroidيحتوي هذا البرنامج على الوظائف الموضحة أدناه.

  • اعرض النص "Hello world!" على الشاشة.
  • اعرض رسالة ترحيبAndroid رسالة تظهر عند ضغط المستخدم على زر "ابدأ".

تُظهر لقطة الشاشة أدناه التطبيق قيد الاختبار وهو يعمل على جهاز.

مرحباAndroid التطبيق قيد الاختبار يعرض نص "مرحباً بالعالم" وزر "ابدأ".

مرحباAndroid استمارتنا

متطلبات النظام

  • استخدم Android تأتي المنصة مزودة بـ JUnit إطار العمل الثالث، وهو ما ActivityInstrumentationTestCase2 يبني على.
  • لإنشاء Android مشروع اختبار من Eclipseيحتاج جهازك إلى جهاز يعمل Android تثبيت حزمة تطوير البرامج (SDK).
  • قم بتثبيت الإصدار الحالي Android حزمة تطوير البرامج (SDK) الخاصة بالمنصة بدلاً من إصدار أقدم مثبت.

تستخدم لقطات الشاشة في هذا الدليل الإرشادي Eclipse باستخدام المكون الإضافي ADT، والذي كان سلسلة الأدوات القياسية عند كتابة المثال. Eclipse لم يعد نظام ADT مدعومًا، لذا على جهاز حديث ستفعل بإمكانك تحميله Android Studio بدلاً من ذلك، أعد استخدام نفس رمز الاختبار داخل Gradle وحدة.

بالنسبة Robotium إطار الاختبار، قم بتنزيله Robotium مكتبة من Robotium صفحة المشروع.

خلق Android اختبار المشروع

  • انقر فوق ملف -> جديد -> أخرى
  • اختار Android -> Android اختبر المشروع كما هو موضح في الشكل أدناه، ثم اختر التالي

Eclipse معالج مشروع جديد مع Android تم اختيار مشروع الاختبار

إنشاء جديد Android مشروع اختبار

اكتب اسم مشروع الاختبار الخاص بك. وفقًا لاتفاقية التسمية، يجب تسمية مشروع الاختبار "Hello".Androidامتحان".

Eclipse حوار مع مشروع الاختبار المسمى HelloAndroidاختبر وفقًا لاتفاقية التسمية

أضف اسم مشروع الاختبار بناءً على اصطلاح التسمية

اختر التطبيق المستهدف قيد الاختبار. في هذه الحالة، هو تطبيق Hello.Androidثم انقر فوق "إنهاء".

Eclipse خطوة المعالج: اختيار مرحباًAndroid باعتباره التطبيق المستهدف قيد الاختبار

اختر التطبيق المستهدف قيد الاختبار

إنشاء أجنحة الاختبار

بناءً على مواصفات الاختبار الخاصة بك، يمكنك الآن إنشاء مجموعات اختبار لبرنامج الاختبار الخاص بك. يمكنك الاختيار من بين مجموعات متنوعة. اختبار البرمجيات الأطر. يستخدم هذا البرنامج التعليمي الأطر القياسية Android إطار الاختبار ActivityInstrumentationTestCase2للاختبار مع Robotium، أضف ال Robotium ملف المكتبة إلى libs دليل داخل مجلد مشروعك.

تُعرّف حالة الاختبار الإطار المستخدم لتشغيل عدة اختبارات. لتعريف حالة اختبار، اتبع بنية البرنامج الموضحة أدناه.

  • قم بتنفيذ فئة فرعية من TestCase.
  • قم بتعريف متغيرات النسخة التي تخزن حالة الجهاز.
  • قم بتهيئة حالة التركيب عن طريق تجاوز الدالة setUp().
  • قم بالتنظيف بعد الاختبار عن طريق تجاوز دالة tearDown().

يوضح الرسم البياني أدناه كيفية ربط هذا الهيكل ببرنامج الاختبار الذي أنت بصدد كتابته.

هيكل Robotium برنامج اختبار يوضح الإعداد وطرق الاختبار والتفكيك

هيكل برنامج الاختبار

package com.example.helloandroid.test;

import com.example.helloandroid.HelloAndroid;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> {
    
	private HelloAndroid mActivity;
	private TextView mView;
	private String resourceString;
	private Solo solo;
	
	public HelloAndroidTest () {
		// TODO Auto-generated constructor stub
		super("com.example.helloandroid",HelloAndroid.class);	
	}
	
	 @Override
	protected void setUp() throws Exception {
		// TODO Auto-generated method stub
	//	super.setUp();
		 
	 	mActivity = this.getActivity();
		solo = new Solo(getInstrumentation(),getActivity());
		mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2);
		resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world);
		
	}
	 
	 @Override
	protected void tearDown() throws Exception {
		// TODO Auto-generated method stub
		//super.tearDown();
		solo.finishOpenedActivities();
	}
	
	public void testPrecondition() {
		assertNotNull(mView);
	}
	
	/* test Target application contains a text display "Hello World!"*/
	public void testSearchText() {
		assertEquals(resourceString,(String) mView.getText());
	}
	
	/* test HelloAndroid Activity on target application is exist*/
	public void testCurrentActivity() throws Exception  {
    	solo.assertCurrentActivity("wrong activity", HelloAndroid.class);
    }
    
	/* test Application UI contains "Start" button */
	/* send event click button to target application */
    public void testSearchButton() throws Exception {
    	boolean found = solo.searchButton("Start");
    	solo.clickOnButton("Start");
    	assertTrue(found);
    }

	

}

إضافة حالات الاختبار

  • قم بإنشاء فئات TestCase في نفس حزمة مجموعة الاختبار.
  • لاختبار نشاط معين، على سبيل المثال مرحباًAndroidأنشئ حالة اختبار تمتد من ActivityInstrumentationTestCase2Android>.
  • داخل تلك الفئة، يحصل المختبر على النشاط قيد الاختبار من خلال طريقة getActivity().
  • أنشئ اختبارًا للنشاط بحرية عن طريق إضافة طريقة باسم "اختبار + اسم الطريقة الأصلية".
  • داخل طريقة الاختبار، يمكن للمختبِر استخدام Android JUnit تُستخدم هذه الدوال لمقارنة القيمة الفعلية بالقيمة المتوقعة. وتُعرض هذه الطرق أدناه.

يسرد الجدول أدناه أساليب التأكيد والتفاعل الأكثر استخدامًا في الإطارين.

أمثلة على طرق Robotium الفصل الفردي و Android إطار الاختبار

أمثلة على طرق Robotium و مبادئ السلوك Android إطار الاختبار

تتحقق مجموعة الاختبارات أعلاه من أن واجهة المستخدم الرسومية للتطبيق تعرض النص "Hello World!" وتحتوي على زر باسم "ابدأ".

الخطوة 3) تشغيل الاختبار

بعد الانتهاء من كتابة برنامج الاختبار الخاص بك، قم بتشغيل الاختبار باستخدام الخطوات التالية.

  • توصيل Android قم بتوصيل الجهاز بجهاز الكمبيوتر الخاص بك، أو قم بتشغيل برنامج محاكاة إذا لم يكن هناك جهاز حقيقي متاح.
  • في بيئة التطوير المتكاملة (IDE)، انقر بزر الماوس الأيمن على مشروع الاختبار واختر تشغيل كـ → Android اختبار الوحدة.

تُظهر لقطة الشاشة أدناه عملية تشغيل الاختبار من بيئة التطوير المتكاملة (IDE).

إطلاق Robotium برنامج اختبار كـ Android اختبار الوحدة من بيئة التطوير المتكاملة

تشغيل برنامج الاختبار

إلى جانب تشغيل الاختبار من بيئة التطوير المتكاملة، يمكنك تشغيله من سطر الأوامر. في برنامج الاختبار هذا، حزمة الاختبار هي com.example.helloandroid.testفي طرفية لينكس، استخدم الأمر التالي لتشغيل كل اختبار في تلك الحزمة.

$ adb shell am instrument -w -e package com.example.helloandroid.test

الخطوة الرابعة: الحصول على نتيجة الاختبار

بعد تنفيذ الاختبار، تقوم بجمع نتائج الاختبار.

في برنامج الاختبار هذا، يتم تنفيذ أربع طرق اختبار. في التشغيل أدناه، اجتازت جميع حالات الاختبار بنجاح.

أظهرت نتائج الاختبار جميع العناصر الأربعة. Robotium اجتياز حالات الاختبار

يتم عرض نتائج الاختبار عند اجتياز جميع حالات الاختبار.

في حالة فشل حالة اختبار، يتم عرض المخرجات وتوضح لك حالات الاختبار التي فشلت.

مخرجات نتائج الاختبار التي تعرض ما يلي: Robotium حالات الاختبار التي فشلت

إخراج نتائج الاختبار عند فشل حالة اختبار

مصدر Code أمثلة

تتضمن هذه المقالة أمثلة على التعليمات البرمجية المصدرية التي تساعدك على متابعة البرنامج التعليمي بشكل أوضح واستيعاب التفاصيل التقنية بسرعة.

إذا كنت تريد المقارنة Robotium للاطلاع على الخيارات الأخرى المتاحة في هذا المجال، انظر إلى اختبار تطبيقات الهاتف المحمول دليل، Appium البرنامج التعليمي وملخص لـ أدوات اختبار تطبيقات الجوال.

الأسئلة الشائعة

Robotium لا يزال الإصدار 5.6.3 هو آخر إصدار منشور، وقد توقف التطوير النشط منذ سنوات. لا يزال إطار العمل يعمل، ولا يزال الملف موجودًا على Maven Central، ولكن الإصدارات الجديدة Android تختار المشاريع عادة Espresso، التي Google يحافظ.

Robotium هو إطار عمل ذو صندوق أسود يرتبط بالأدوات في وقت التشغيل ولا يحتاج إلا إلى معرفة قليلة بالمصدر. Espresso is Googleأداة ذات صندوق أبيض تتزامن مع واجهة المستخدم وتتوقع الوصول إلى كود التطبيق.

Robotium يُشغّل تطبيقًا واحدًا في كل مرة، ولا يستطيع التعامل مع محتوى Flash أو محتوى الويب خارج WebView بشكل موثوق، ولا يوفر تسجيلًا مدمجًا في ملف JAR مفتوح المصدر، كما أن اعتماده على فئات أدوات القياس المهملة يُعقّد التطبيقات الحديثة Gradle يبني.

أعلن androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' في ملف بناء الوحدة، أو قم بإسقاط ملف robotium-solo JAR إلى libs وقم بالإشارة إليه كملف تابع.

نعم. Robotium تُعدّ هذه الاختبارات اختبارات قياس أداء عادية، لذا يتم تشغيل ملف APK نفسه على محاكي أو جهاز حقيقي. يُفضّل استخدام جهاز حقيقي لإجراء فحوصات الإيماءات والمستشعرات والأداء، حيث قد يختلف توقيت المحاكي.

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

تُستخدم تقنيات التعلّم الآلي لإنشاء مُحدِّدات مواقع ذاتية الإصلاح تتكيف مع تغييرات التصميم، ومقارنة بصرية تُشير إلى تراجع الأداء، واكتشاف الاختبارات غير المستقرة وترتيب عمليات إعادة التشغيل. تُقلل هذه الأدوات من الصيانة، لكن يبقى القرار النهائي بشأن السلوك المهم بيد الإنسان.

مساعد الطيار جيثب يمكن إنشاء هيكل Solo setup و tearDown وطرق التأكيد من فئة النشاط. Revانظر إلى الاقتراح بعناية، لأنه قد يصدر استيراد حزمة قديمة أو تأكيدات لا يفي بها التطبيق أبدًا.

تلخيص هذه التدوينة بـ: