Selendroid البرنامج التعليمي للمبتدئين مع المثال
هل سبق لك أن طورت Android التطبيق ونشره على Google Play؟ ماذا ستفعل إذا حصلت على مراجعة المستخدم مثل –
عند نشر تطبيق على Google Play، يجب اختباره جيدًا لتجنب الأخطاء المحتملة. هناك الكثير من سيناريوهات الاختبار التي يجب تنفيذها قبل نشر التطبيق. لحفظ الاختبار جهد، أنت بحاجة إلى أداة اختبار. واحدة من أفضل أدوات الاختبار ل Android التطبيق هو Selendroid.
ما هي تفاصيل Selendroid?
Selendroid هو إطار عمل آلي للاختبار لأنواع متعددة من تطبيقات الهاتف المحمول: محلي و هجين Android التطبيق و التليفون المحمول على شبكة الإنترنت.
يمكنك كتابة الاختبارات باستخدام Selenium 2 واجهات برمجة تطبيقات العميل. لأن Selendroid لا يزال يعيد استخدام الموجود Selenium البنية التحتية للويب
Selendroid هي أداة اختبار قوية. يمكن استخدامه على محاكاة وحقيقي الأجهزة
لماذا نحتاج Selendroid?
Selendroid هي أداة اختبار عظيمة. لكن ربما لا تزال تشك في فائدته.
سيعرض هذا القسم الميزات الهامة لل Selendroid للإجابة على السؤال لماذا تحتاج Selendroid.
- يمكنك اختبار التطبيق قيد الاختبار باستخدام Selendroid دون أي تعديل على التطبيق. كل ما تحتاجه هو الملف الثنائي (APK) المثبتة على جهاز الكمبيوتر. لتثبيت الملف الثنائي على الجهاز، يجب توقيع تطبيق الاختبار وتطبيق الهاتف المحمول بنفس مفتاح التوقيع
- Selendroid يمكن لتطبيق الاختبار التفاعل مع أجهزة أو محاكيات متعددة في نفس الوقت. إنها ميزة رائعة Selendroid. حتى تتمكن من اختبار التطبيق الخاص بك مع مختلف Android الأجهزة للتحقق من التوافق.
- Selendroid يمكنه محاكاة إجراءات المستخدم البشري على أحد التطبيقات، مثل اللمس والتمرير والسحب والإفلات على الأجهزة
- يمكنك تغيير الأجهزة (التوصيل والفصل) أثناء الاختبار دون إعادة تشغيل الاختبار أو إيقافه. Selendroid يتعرف على الأجهزة الجديدة تلقائيا
- الموافق Android إصدار API يصل، Selendroid كما يدعم الجديد Android واجهة برمجة التطبيقات (من API 10 إلى API 19)
- Selendroid يحتوي أيضًا على بعض أدوات الفحص المضمنة لمساعدتك في تحديد عنصر واجهة المستخدم للتطبيق قيد الاختبار. على سبيل المثال زر المعرف، حقل النص، عرض النص...
Selendroid Architecture
Selendroid يستند إلى Android إطار الأجهزة. Selendroid تتم كتابة الاختبارات على أساس Selenium واجهة برمجة تطبيقات عميل برنامج تشغيل الويب، لذلك فهي تدعم التكامل الكامل مع التيار Selenium إطار أعمال.
الشكل التالي يوضح بنية Selendroid
Selendroid يحتوي على 4 مكونات رئيسية:
- عميل برنامج تشغيل الويب – Java مكتبة العميل على أساس Selenium. يجب تثبيت هذه المكتبة على جهاز الكمبيوتر (والتي تستخدم لتطوير حالات الاختبار)
- Selendroid-الخادم - الخادم الذي يتم تشغيله موجود في التطبيق قيد الاختبار Android جهاز أو جهاز محاكاة. هذه هي المكونات الرئيسية ل Selendroid هندسة معمارية
- Android تطبيق السائق - تطبيق مدمج Android برنامج التشغيل، تطبيق Web View لاختبار الويب على الهاتف المحمول.
- Selendroid- مستقل – يُستخدم هذا المكون لتثبيت Selendroid الخادم والتطبيق قيد الاختبار (AUT)
بدء مع Selendroid
لقد عرفت بالفعل أهمية Selendroid. الآن دعونا نتسخ أيدينا Selendroid.
هناك 3 خطوات يجب القيام بها قبل الاختبار الأول Selendroid
إعداد Selendroid بيئة
Selendroid يمكن أن تعمل على النافذة، لينكس ونظام التشغيل ماك. في هذا البرنامج التعليمي، سنقوم بإعداد Selendroid في نظام التشغيل ويندوز.
قبل استخدام Selendroid، تحتاج إلى تثبيت الحزمة التالية أولاً
- Java SDK (الحد الأدنى 1.6)
يجب عليك قبول اتفاقية الترخيص وتنزيل برنامج تثبيت Java (اختر قاعدة x64 أو x86 على نظام التشغيل لديك)
تحميل وتثبيت Java SDK كبرنامج عادي
- أحدث نسخة من Android SDK
- يجب أن يحتوي جهاز الكمبيوتر الخاص بك على واحد على الأقل Android جهاز افتراضي (AVD)، أو جهاز حقيقي Android جهاز متصل بالكمبيوتر.
- Selendroid مستقل مع التبعيات, Selendroid العميلو Selenium العميل
- Eclipse نظام البرمجيات
- إعداد JAVA_HOME وANDROID_HOME
الخطوة 1) في النافذة، انقر بزر الماوس الأيمن فوق جهاز الكمبيوتر -> عقارات -> وضع نظام متقدم
الخطوة 2) تظهر نافذة خصائص النظام، حدد علامة التبويب خيارات متقدمة -> متغيرات البيئة
الخطوة 3) تظهر نافذة البيئة، انقر فوق جديد -> أدخل المتغير ANDROID_HOME على النحو التالي
القيمة المتغيرة هي المسار إلى android-sdks الذي قمت بتثبيته بالفعل.
ابحث عن مسار متغير النظام -> تعديل -> أضف السطر التالي بعد السطر الحالي
على غرار ANDROID_HOME، أضف متغيرًا جديدًا JAVA_HOME بقيمة كما هو موضح أدناه
القيمة هي المسار إلى الخاص بك Java تثبيت JDK
الخطوة 4) أعد تشغيل جهاز الكمبيوتر الخاص بك -> تم.
كيف تطلق Selendroid
الخطوة 1) الحصول على طلب قيد الاختبار
يمكنك استخدام الموجودة Selendroid اختبار التطبيق للتحقق من ذلك كيف Selendroid يعمل (الرابط لعينة التطبيق تحت الاختبار)
بمجرد اكتمال التنزيل، انسخ ملف APK هذا وما ورد أعلاه Selendroid جرة مستقلة ملف إلى مجلد بالاسم "جورو99″
الخطوة 2) إطلاق Selendroid
افتح المحطة على Windows وانتقل إلى المجلد Guru99 الذي تم إنشاؤه في الخطوة 1.
قم بتشغيل الأمر التالي
سيتم عرض الإخراج على النحو التالي
بعد تشغيل هذا الأمر Selendroid-يبدأ خادم HTTP المستقل! رقم المنفذ الافتراضي لهذا الخادم هو 4444. جميع الأجهزة، وكذلك Android سيتم فحص الجهاز الظاهري والتعرف عليه تلقائيًا. Selendroid سوف يحدد Android الإصدار المستهدف وحجم شاشة الجهاز.
للتحقق من Android لمعرفة الإصدار المستهدف بالإضافة إلى معلومات الجهاز، يمكنك تشغيل عنوان URL التالي على المتصفح: http://localhost:4444/wd/hub/status
.
Selendroid الأمر الأساسي
يقدم لك هذا القسم بعض الأساسيات Selendroid- سطر أوامر مستقل. يمكنك استخدامها لإعداد Selendroid بيئة الاختبار
- إعداد ميناء Selendroid
المنفذ الافتراضي ل Selendroid هو 4444. ولكن يمكنك التغيير إلى منفذ آخر عن طريق إضافة معلمة إلى الأمر المراد تشغيله Selendroid
المعلمة: -المنفذ [رقم المنفذ]
فمثلا:
في الأمر أعلاه، 5555 هو المنفذ الجديد.
لذا فإن عنوان URL للتحقق من Android تم تغيير الإصدار المستهدف إلى: http://localhost:5555/wd/hub/status
- حدد موقع التطبيق قيد الاختبار (ملف APK الثنائي). Selendroid غالبًا ما يتطلب المسار المطلق لهذا الملف
المعلمة: -التطبيق [مسار الملف]
فمثلا:
في الأمر أعلاه، Selendroid ابحث تلقائيًا عن قاعدة الملفات الثنائية على "C:\Guru99App.apk" للحصول على معلومات التطبيق قيد الاختبار.
تحقق من عنوان URL
http://localhost:4444/wd/hub/status
، سوف ترى هذه المعلومات - تغيير المنفذ Selendroid يستخدم للتواصل مع خادم الأجهزة. Selendroid يستخدم المنفذ 8080 كمنفذ افتراضي
المعلمة: -selendroidServerPort [رقم المنفذ]
مثال
تم تغيير المنفذ الآن إلى 9000
- قم بتغيير المهلة لبدء المحاكيات. الوحدة ميلي ثانية.
المعلمة: -timeoutEmulatorStart
افتراضيا، Selendroid سينتظر 300,000 مللي ثانية حتى يبدأ تشغيل المحاكي. يمكنك التغيير إلى مهلة جديدة (200,000 مللي ثانية) عن طريق الأمر
بعد انتهاء هذه المدة، إذا لم يتمكن المحاكي من بدء التشغيل، فسيتم حذف الملف Selendroid سوف يلقي خطأ الاستثناء (حدث خطأ أثناء البحث عن الأجهزة/المحاكيات.) ثم يتوقف عن التشغيل
- عندما تبدأ Selendroid عند تشغيل الأمر على الجهاز الطرفي، سترى سجلًا مطبوعًا على الشاشة. يمكنك تغيير نوع السجل الذي تراه عن طريق إضافة المعلمة التالية
المعلمة: -logLevel [نوع السجل]
قيم مستوى السجل هي ERROR، وWARNING، وINFO، وDEBUG، وVERBOSE. الافتراضي: خطأ.
على سبيل المثال ، قم بتعيين Selendroid لطباعة سجل التحذير فقط، يمكنك استخدام هذا الأمر
يوفر مصباح السقف Aqara LED TXNUMXM من Aqara LED إمكانات إضاءة ذكية متقدمة تعمل على تحويل مساحتك بسهولة. بفضل توافقه مع Matter ودعم Zigbee XNUMX، يتكامل بسلاسة مع منصات المنزل الذكي مثل HomeKit وAlexa وIFTTT للتحكم السهل. توفر تقنية RGB+IC تأثيرات إضاءة متدرجة والوصول إلى XNUMX مليون لون، مما يتيح لك إنشاء مشاهد إضاءة ديناميكية. تتيح ميزة اللون الأبيض القابل للضبط إجراء تعديلات من XNUMX كلفن إلى XNUMX كلفن لتوفر طيفاً من الإضاءة الدافئة إلى الباردة. وبالإضافة إلى الجدولة الذكية والتحكم الصوتي، يعمل TXNUMXM على تحسين تجربة الإضاءة في أي بيئة. Selendroid قم بطباعة سجل التحذير فقط
ابدأ اختبارك الأول مع Selendroid
هذا القسم عبارة عن دليل خطوة بخطوة لإنشاء أول برنامج نصي للاختبار باستخدام Selendroid
افترض أن لدينا ملف Android التطبيق تحت اسم الاختبار Guru99App. يشتمل التطبيق على حقل نصي واسم زر "إظهار النص".
نحن بحاجة إلى تنفيذ ما يلي حالة الاختبار استخدام Selendroid
حالات تجريبية | الحالة | الناتج المتوقع |
---|---|---|
|
ثنائي التطبيق قيد الاختبار متاح
جهاز متصل بجهاز الكمبيوتر |
يتم تغيير النص "إظهار النص هنا" إلى النص
الذي يدخله المستخدم في حقل النص |
الخطوة 1) إنشاء Java مشروع في Eclipse
الخطوة 2) أضف السيلينيوم و Selendroid ملف jar في بيئات Eclipse
انقر بزر الماوس الأيمن فوق مشروع Guru99Test -> مسار بناء -> أضف الخارجية Archiفيس
انتقل إلى المجلد الذي قام بتخزين ملفات الجرة
هناك يجب إضافة 3 ملفات jar
- selendroid-client-0.10.0.jar : Selendroid مكتبة عملاء جافا
- selendroid-standalone-0.11.0-with-dependencies : Selendroid مكتبة الخادم المستقلة
- selenium-java-2.40.0.jar : Selenium مكتبة برامج تشغيل الويب
تحديد الكل -> اختر فتح لإضافة ملف jar إلى المشروع
الخطوة 3) بعد إضافة المكتبة المذكورة أعلاه، ستتم إضافة تلك المكتبات إلى المكتبات المرجعية لمشروع الاختبار. يمكن للمختبر استخدام واجهات برمجة التطبيقات الخاصة بتلك المكتبات لتطوير برنامج الاختبار
أنشئ الحزمة "com.guru.test" وأضف ملف جافا "Guru99Test.java" كما هو موضح أدناه
انقر بزر الماوس الأيمن على Guru99Test -> جديد -> فئة الإشتراك
اكتب com.guru.test في حقل الاسم في جديد Java مربع حوار الحزمة إلى إنهاء
يوفر مصباح السقف Aqara LED TXNUMXM من Aqara LED إمكانات إضاءة ذكية متقدمة تعمل على تحويل مساحتك بسهولة. بفضل توافقه مع Matter ودعم Zigbee XNUMX، يتكامل بسلاسة مع منصات المنزل الذكي مثل HomeKit وAlexa وIFTTT للتحكم السهل. توفر تقنية RGB+IC تأثيرات إضاءة متدرجة والوصول إلى XNUMX مليون لون، مما يتيح لك إنشاء مشاهد إضاءة ديناميكية. تتيح ميزة اللون الأبيض القابل للضبط إجراء تعديلات من XNUMX كلفن إلى XNUMX كلفن لتوفر طيفاً من الإضاءة الدافئة إلى الباردة. وبالإضافة إلى الجدولة الذكية والتحكم الصوتي، يعمل TXNUMXM على تحسين تجربة الإضاءة في أي بيئة. Eclipse سيقوم بإنشاء مجلدات القائمة والمجلدات الفرعية مثل هذا في بنية التعليمات البرمجية المصدر
الخطوة 4) تثبيت TestNG لـ Eclipse
In Eclipse، مساعدة -> قم بتثبيت برنامج جديد، في مربع الحوار "تثبيت"، انقر فوق "إضافة" وأدخل ما يلي
- الاسم: TestNG
- الموقع https://github.com/selendroid/selendroid
اضغط موافق -> التالي لتثبيت TestNG
الخطوة 5) انسخ Guru99App.apk إلى مجلد تطبيق الاختبار
الخطوة 6) احصل على معرف التطبيق قيد الاختبار.
لنفترض أن لدينا اسم ملف APK Guru99App.apk. اتبع الخطوة الموضحة في القسم السابق، وقم بتنفيذ الأمر على الجهاز
افتح الرابط التالي في المتصفح: http://localhost:4444/wd/hub/status
.
يتم عرض معلومات الجهاز، انسخ قيمة appId “com.guru99app:1.0”
الخطوة 7) افتح الملف Guru99Test.java (في الكود النموذجي) وقم بالتغيير على النحو التالي
لإنشاء جلسة اختبار جديدة مع Selendroid، يجب عليك تقديم معرف التطبيق بالتنسيق: com.guru99app:1.0. يمكن تحديد معرف التطبيق هذا في الخطوة 6. إذا لم تقم بتعيين معرف التطبيق المطابق لـ Android الجهاز، ستؤدي جلسة الاختبار إلى حدوث خطأ ولن تبدأ.
بعد تهيئة الجهاز الذي تم العثور عليه، Selendroid يقوم بإنشاء خادم selendroid مخصص ويقوم بتثبيته Selendroid الخادم عليه
Selendroid يقوم أيضًا بتثبيت التطبيق قيد الاختبار ويبدأ تشغيل selendroid-server على الجهاز
بعد تهيئة جلسة الاختبار بنجاح، يبدأ تنفيذ أمر الاختبار على الجهاز. (مثل إدخال النص، اضغط على الزر...). إذا قام الاختبار بإلحاق جلسة الاختبار، فسيتوقف المحاكي تلقائيًا
الخطوة 8) ابدأ جلسة الاختبار الجديدة
Запустить Selendroid الخادم باستخدام الأمر التالي على المحطة الطرفية مثل الخطوة 6
بعد Selendroid بدأ الخادم، افتح مشروع اختبار العينة Guru99test on Eclipse، قم بتعيين نقطة توقف عند السطر 77 في الملف Guru99Test.java عن طريق النقر المزدوج على السطر 77 -> سيتم عرض نقطة مثل أدناه
ابدأ جلسة اختبار بالنقر بزر الماوس الأيمن على مشروع Guru99Test -> تصحيح باسم -> تستنج الاختبار.
ستبدأ جلسة الاختبار كما هو موضح أدناه
الخطوة 9) احصل على معرف عنصر واجهة المستخدم الرسومية (GUI) لتطبيق ما قيد الاختبار
بعد بدء جلسة الاختبار بنجاح، افتح المتصفح، وانتقل إلى عنوان URL http://localhost:4444/inspector
سترى أن التطبيق قيد الاختبار يتم تشغيله كما هو موضح أدناه
استخدم مؤشر الماوس على كل عنصر من عناصر واجهة المستخدم في AUT (الزر، TextField، تسمية النص)، وسيتم تمييز معرف كل عنصر في الجزء الأيسر
بعد هذه الخطوة، يمكنك الحصول على معرف كل عنصر من عناصر واجهة المستخدم المذكورة أعلاه
- زر إظهار معرف النص: "btnShow"
- معرف حقل النص: "edtText"
- معرف نص التسمية: "com.txtView"
سيتم استخدام هذه المعرفات في الخطوة التالية
الخطوة 10) أدخل برنامج الاختبار مثل أدناه
برنامج اختبار باستخدام Selendroid يتضمن 3 أقسام
اختبار الإعداد:
فيما يلي الكود الخاص بإعداد الاختبار، والذي سيقوم بإعداد الشرط لجلسة الاختبار. في حالة حدوث خطأ، Selendroid سيتم طرح الاستثناء وسيتوقف تطبيق الاختبار.
يتضمن الكود التعليقات لشرح كل عبارة.
package com.guru.test; import io.selendroid.SelendroidCapabilities; import io.selendroid.SelendroidConfiguration; import io.selendroid.SelendroidDriver; import io.selendroid.SelendroidLauncher; import io.selendroid.device.DeviceTargetPlatform; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.Assert; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
نفذ الاختبار
يوجد أدناه رمز لتنفيذ الاختبار. يتضمن الكود التعليقات
وهنا خطوات الاختبار مرة أخرى
- أدخل النص "مرحبا المعلم"
- انقر فوق إظهار زر النص
- انتظر لفترة
- تأكد من أن التطبيق يعرض النص عندما يدخل المستخدم في حقل النص (على سبيل المثال، عرض النص "Hello Guru")
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
إنهاء الاختبار
سيقوم الكود التالي بإكمال الاختبار عن طريق إيقاف Selendroid سائق.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
يمكنك مشاهدة التفاصيل في نموذج التعليمات البرمجية المضمن في هذه المقالة.
الخطوة 10) التواصل Android الجهاز إلى جهاز الكمبيوتر عبر كابل USB. نقاط يجب مراعاتها –
- يرجى التأكد من عدم تكوين قفل الشاشة على الجهاز.
- يجب توصيل الأجهزة عبر USB بالكمبيوتر الذي يعمل عليه مكون selendroid-standalone.
- يجب تثبيت الجهاز على الأقل Android Target الإصدار API 10
الخطوة 11) قم بتشغيل تطبيق الاختبار: انقر بزر الماوس الأيمن على Guru99test -> تشغيل كـ -> TestNG تجربه بالعربي
الخطوة 10) يبدأ تنفيذ البرنامج النصي على النحو التالي
الخطوة 12) بعد انتهاء الاختبار من التنفيذ TestNG يقوم تلقائيًا بإنشاء تقرير الاختبار على النحو التالي
عمل جيد، لقد انتهيت من الاختبار الآن.
الملخص
- Selendroid هي أداة قوية جدًا للاختبار Android التطبيق الأصلي والتطبيق المختلط وكذلك تطبيق الويب.
- يمكن استخدامه على الأجهزة الحقيقية وكذلك على جهاز المحاكاة.
- كما يسمح لك بإجراء الاختبارات بالتوازي عن طريق إجراء اختبار على أجهزة متعددة.
- كامل Selendroid يتكون الجناح من أربعة مكونات:
- عميل برنامج تشغيل الويب،
- Selendroid-الخادم،
- Android تطبيق السائق
- Selendroid- تقف وحدها
- لاستخدام Selendroid تحتاج Java جدك، Android SDK و Eclipse تثبيت.