The Monkey هو برنامج يتم تشغيله على المحاكي أو الجهاز ينشئ محتوى عشوائيًا زائفًا عمليات تدفق أحداث المستخدم مثل النقرات أو اللمسات أو الإيماءات، بالإضافة إلى عدد من مستويات النظام أحداث. يمكنك استخدام القرد لاختبار الإجهاد للتطبيقات التي تطورها، بشكل عشوائي بطريقة قابلة للتكرار.
نظرة عامة
Monkey عبارة عن أداة سطر أوامر يمكنك تشغيلها على أي محاكي المثيل أو الجهاز. يرسل تدفقًا عشوائيًا زائفًا من أحداث المستخدم في النظام، والتي تعمل كاختبار ضغط على البرنامج التطبيقي الذي النامية.
يشمل The Monkey عددًا من الخيارات، لكنه ينقسم إلى أربع مجموعات الفئات:
- خيارات الضبط الأساسية، مثل ضبط عدد الأحداث المراد تجربتها.
- القيود التشغيلية، مثل حصر الاختبار في حزمة واحدة.
- أنواع الفعاليات وفترات تكرارها.
- خيارات تصحيح الأخطاء.
عند تشغيل القرد، فإنه ينشئ الأحداث ويرسلها إلى النظام. إنّها ساعات أيضًا. كان النظام تحت الاختبار ويبحث عن ثلاثة حالات، يعالجها بشكل خاص:
- إذا كنت قد قيدت تشغيل Monkey في واحدة أو أكثر من الحزم المحددة، ومراقبة محاولات الانتقال إلى أي حزم أخرى وحظرها.
- فإذا تعطّل التطبيق أو تلقى أي استثناءات لم تتم معالجتها، قد سيتوقف والإبلاغ عن الخطأ.
- إذا تسبب التطبيق في ظهور الخطأ التطبيق لا يستجيب، فإن القرد سيتوقف والإبلاغ عن الخطأ.
واستنادًا إلى مستوى الإسهاب الذي اخترته، ستظهر لك أيضًا تقارير عن مستوى التقدّم. للقرد والأحداث التي يتم إنشاؤها.
الاستخدام الأساسي للقرد
يمكنك تشغيل Monkey باستخدام سطر أوامر على جهاز التطوير أو من برنامج نصي.
بما أنّ القرد يعمل في بيئة المحاكي أو الجهاز، عليك تشغيله من خلال واجهة أوامر
تلك البيئة. يمكنك إجراء ذلك من خلال توجيه adb shell
إلى كل أمر من الأوامر،
أو عن طريق إدخال واجهة الأوامر وإدخال أوامر Monkey مباشرةً.
بناء الجملة الأساسي هو:
$ adb shell monkey [options] <event-count>
مع عدم تحديد أي خيارات، سيتم تشغيل قرد في وضع هادئ (غير مطوَّل)، وسيرسل الأحداث لأي (وجميع) الحِزم المثبَّتة في هدفك. فيما يلي سطر أوامر أكثر شيوعًا، الذي سيطلق تطبيقك ويرسل 500 حدث عشوائي زائف إليه:
$ adb shell monkey -p your.package.name -v 500
مرجع خيارات الطلبات
يسرد الجدول أدناه جميع الخيارات التي يمكنك تضمينها في سطر الأوامر Monkey.
الفئة | Option | الوصف |
---|---|---|
بنود عامة | --help |
يطبع دليل الاستخدام البسيط. |
-v |
سيؤدي كل حرف v- في سطر الأوامر إلى زيادة مستوى الإسهاب. المستوى 0 (الافتراضي) يوفر القليل من المعلومات بخلاف إشعار بدء التشغيل وإكمال الاختبار والنتائج النهائية. يوفِّر المستوى 1 تفاصيل إضافية عن الاختبار أثناء تنفيذه، مثل الأحداث الفردية التي يتم إرسالها إليه. أنشطتك. يوفر المستوى 2 معلومات أكثر تفصيلاً عن الإعداد مثل الأنشطة التي تم تحديدها أو عدم اختيارها اختبار الفرضية. | |
الأحداث | -s <seed> |
القيمة الأساسية لمنشئ الأرقام العشوائية الزائفة إذا أعدت تشغيل Monkey بنفس البذرة فسيتم إنشاء نفس تسلسل الأحداث. |
--throttle <milliseconds> |
يدرج تأخيرًا ثابتًا بين الأحداث. يمكنك استخدام هذا الخيار لإبطاء أداء القرد. وإذا لم يتم تحديده، لن يحدث أي تأخير وسيتم إنشاء الأحداث في أسرع وقت ممكن. | |
--pct-touch <percent> |
ضبط النسبة المئوية لأحداث اللمس (أحداث اللمس هي حدث من أسفل في مكان واحد على الشاشة). | |
--pct-motion <percent> |
يمكنك ضبط النسبة المئوية لأحداث الحركة. (تتألف أحداث الحركة من حدث هبوط في مكان ما على الشاشة، وسلسلة من العشوائية الزائفة وحركات وحدث لأعلى). | |
--pct-trackball <percent> |
ضبط النسبة المئوية لأحداث كرة التعقب (تتكون أحداث كرة التعقب من حركة عشوائية واحدة أو أكثر، تتبعها نقرة في بعض الأحيان). | |
--pct-nav <percent> |
ضبط النسبة المئوية لـ "أساسية" أحداث التنقل. (تتألف أحداث التنقل من السهم المتجه للأعلى/للأسفل/لليسار/لليمين، كإدخال من جهاز إدخال الاتجاهات.) | |
--pct-majornav <percent> |
ضبط النسبة المئوية "الرئيسية" أحداث التنقل. (هذه هي أحداث التنقّل التي عادةً ما تؤدي إلى تنفيذ إجراءات ضمن واجهة المستخدم، مثل الزر الأوسط في لوحة ذات 5 اتجاهات أو مفتاح الرجوع أو مفتاح القائمة). | |
--pct-syskeys <percent> |
ضبط النسبة المئوية لـ "النظام" والأحداث الرئيسية. (هذه هي المفاتيح التي حجزها النظام بشكل عام لكي يستخدمها، مثل مفتاح "داخل المنزل" و"رجوع" و"بدء الاتصال" إنهاء المكالمة أو عناصر التحكم في مستوى الصوت) | |
--pct-appswitch <percent> |
يمكنك تعديل النسبة المئوية لعمليات إطلاق الأنشطة. في الفواصل الزمنية العشوائية، يُصدر القرد استدعاء startActivity() كوسيلة لزيادة الحد الأقصى تغطية لجميع الأنشطة داخل حزمتك. | |
--pct-anyevent <percent> |
تعديل النسبة المئوية لأنواع الأحداث الأخرى وهي عبارة عن مجموعة شاملة لجميع أنواع الأحداث الأخرى، مثل الضغط على المفاتيح وغيرها من الأحداث الأقل استخدامًا. على الجهاز وهكذا. | |
القيود | -p <allowed-package-name> |
إذا حددت حزمة واحدة أو أكثر بهذه الطريقة، سيسمح Monkey فقط للنظام لزيارة الأنشطة ضمن تلك الحزم. إذا كان طلبك يتطلب الدخول إلى أنشطة في الحزم الأخرى (على سبيل المثال لتحديد جهة اتصال) ستحتاج إلى تحديد هذه الحزم أيضًا. إذا لم تحدد أي حزم، فإن Monkey سيسمح للنظام ببدء الأنشطة في جميع الحزم. لتحديد حزم متعددة، استخدم الخيار -p عدة مرات — واحد -p لكل حزمة. |
-c <main-category> |
إذا حددت فئة واحدة أو أكثر بهذه الطريقة، فسيتيح القرد فقط إلى زيارة الأنشطة المدرجة بإحدى الفئات المحددة. إذا لم تحدّد أي فئات، سيختار "القرد" الأنشطة المدرَجة بالفئة Intent.CATEGORY_LAUNCHER أو Intent.CATEGORY_MONKEY لتحديد فئات متعددة، استخدم -c عدة مرات - خيار -c واحد لكل فئة. | |
تصحيح الأخطاء | --dbg-no-events |
عند تحديده، سيقوم القرد بإجراء الإطلاق الأولي في نشاط تجريبي، ولكن لن يؤدي إلى إنشاء أي أحداث أخرى. للحصول على أفضل النتائج، يمكن دمجها مع -v، وقيد أو أكثر للحزمة، وضبط قيمة غير صفرية للاحتفاظ بالقرد قيد التشغيل لمدة 30 ثانية أو أكثر. يوفّر ذلك بيئة يمكنك من خلالها مراقبة حِزم البيانات. عمليات النقل التي استدعاها تطبيقك. |
--hprof |
في حال ضبط هذا الخيار، سيتم إنشاء تقارير لتحديد الملفات الشخصية قبل تطبيق Monkey وبعده مباشرةً. تسلسل الأحداث. سيؤدي هذا إلى إنشاء ملفات كبيرة (حوالي 5 ميغابايت) في بيانات/مجموعات متنوعة، لذا استخدمها بحرص. بالنسبة معلومات عن تحليل تقارير إنشاء ملفات التعريف، راجع الملف الشخصي لتطبيقك أدائه. | |
--ignore-crashes |
في العادة، يتوقف القرد عندما يتعطل التطبيق أو يتعرض لأي نوع من استثناء غير معالج. إذا حدّدت هذا الخيار، سيستمر القرد في إرسال الأحداث إلى النظام، حتى يكتمل العدّ. | |
--ignore-timeouts |
عادةً، سيتوقف القرد عندما يواجه التطبيق أي نوع من أخطاء المهلة باعتباره "التطبيق لا يستجيب" . إذا حددت هذا الخيار، سيستمر القرد في إرسال الأحداث إلى النظام، حتى يكتمل العدّ. | |
--ignore-security-exceptions |
في العادة، يتوقف Monkey عندما يواجه التطبيق أي نوع من أخطاء الأذونات، على سبيل المثال، إذا حاول تشغيل نشاط يتطلب أذونات معينة. إذا حددت بهذا الخيار، سيستمر القرد في إرسال الأحداث إلى النظام حتى يصبح العدد مكتملة. | |
--kill-process-after-error |
في العادة، عندما يتوقف Monkey بسبب خطأ، يتم ترك التطبيق الذي أخفق الجري. عند تعيين هذا الخيار، سيتم إرسال إشارة إلى النظام بإيقاف العملية التي يحدث فيها الخطأ حدث. لاحظ أنه في ظل الاكتمال العادي (الناجح)، لا يتم إيقاف العملية(العمليات) التي تم إطلاقها، يتم ترك الجهاز ببساطة في الحالة الأخيرة بعد الحدث النهائي. | |
--monitor-native-crashes |
يتم رصد الأعطال التي تحدث في الرمز الأصلي لنظام Android والإبلاغ عنها. في حال ضبط --kill-process-after-error، سيتوقف النظام. | |
--wait-dbg |
لإيقاف تنفيذ القرد حتى يتم إرفاق برنامج تصحيح الأخطاء به. |