توضّح هذه الصفحة طريقة ضبط اختبارات ACTS.
مصادر الضبط
تتضمّن حزمة اختبار التواصل من Android (ACTS) ثلاث المصادر الرئيسية للتهيئة وهي:
- واجهة سطر الأوامر (CLI)
- ملف إعداد ACTS
- متغيرات البيئة
ويتم دمج القيم من هذه المصادر في إعدادات واحدة يتم استخدامها لإجراء اختبار ACTS إذا تم تحديد القيم في مواقع متعددة، فإن القيم يتم استبدالها وفقًا للترتيب أعلاه (حيث تأخذ واجهة سطر الأوامر الأسبقية).
ملاحظة حول متغيرات البيئة
يُرجى توخّي الحذر عند استخدام متغيّرات البيئة لإجراء اختبارات ACTS. هذه القيم هي الأقل وضوحًا للمستخدم، ولا يُنصح باستخدامها. خارج محطة عمل المطور. يتم إيقاف متغيرات البيئة أثناء الاختبارات الآلية لنظام ACTS لمنع تسمم البيئة.
متغيّرات الضبط المطلوبة
يتطلب كل اختبار من اختبارات ACTS ضبط المتغيرات التالية.
مسارات اختبار ACTS
يتم تشغيل ACTS من موقع إدخال رئيسي واحد. ونتيجةً لذلك، قد يتم تحديد موقع مسار الاختبار غير معروف للعداء.
تحديد موقع مسار الاختبار باستخدام بيئة ACTS_TESTPATH
المتغير أو باستخدام العلامة -tp
/--testpaths
في
سطر الأوامر. يمكن أن تكون القيمة قائمة بالأدلة.
دورات اختبار ACTS
يجب أن يعرف ACTS صفوف الاختبار التي يجب إجراؤها. يمكن أن يكون تعبيرًا عاديًا أو قائمة لأسماء فئات الاختبار.
لضبط هذه القيمة، استخدِم العلامة -tc
/--test_class
في سطر الأوامر. ملاحظة
بأن هذه العلامة تقبل أيضًا قائمة بأسماء الفئات. يجب أن تتطابق أسماء الفئات
أسماء الملفات المقابلة لها، على سبيل المثال،
يجب العثور على SampleTest
في SampleTest.py
.
مسار سجلّ ACTS
يجب أن يحتوي ACTS على موقع لكتابة السجلات بخلاف STDOUT. كتابة ACTS بالكامل سجلات تصحيح الأخطاء التي تحتوي على بيانات يمكن أن تساعد في تحديد سبب إخفاق بعض الاختبارات. لمنع الفوضى، لا يكتب نظام ACTS هذه السجلّات في STDOUT.
لضبط مسار السجلّ، استخدِم متغيّر بيئة ACTS_LOGPATH
أو
العلامة -lp
/--logpath
في سطر الأوامر.
مسار إعداد ACTS
لإجراء الاختبار، يجب أن يعرف نظام ACTS النسخة المتوفّرة. نظام ACTS
تحتوي الإعدادات على جميع الأجهزة الموجودة في مختبر الاختبار، بالإضافة إلى أي اختبار أو
والبيئة المحيطة التي قد تكون مطلوبة. اضبط هذه القيمة على
سطر الأوامر باستخدام -c
/--config
.
إذا كانت هناك عدة اختبارات في الإعدادات، تجري ACTS الاختبارات
لكل اختبار. لإجراء اختبار لاختبار واحد فقط في القائمة، استخدِم
وسيطة سطر الأوامر -tb/--testbed <NAME>
.
مثال على محطة عمل محلية
يطوّر معظم مستخدمي ACTS في فرع واحد لمستودعات Android، ولديهم إعداد مشابه لما يلي:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'
# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
إذا كان مستخدمو ACTS يعملون في عدة فروع، غالبًا ما يشغّلون البرنامج من
دليل acts/framework
، واستخدام مسار نسبي لـ ACTS_TESTPATH
:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'
# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
ضبط إعدادات الأسِرّة الاختبارية
يوفّر ملف الإعداد ACTS جميع المعلومات اللازمة لإجراء الاختبارات. على الأجهزة:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
الوحدة الأساسية في هذه الإعدادات هي testbed. في نموذج الضبط
أعلاه، يتم إنشاء my_testbed
الاختبارية بقيمة اختبار واحدة. تشير رسالة الأشكال البيانية
الاختبار الثاني، another_testbed
، له إعداد خاص لوحدة التحكم تحمل
معلومات حول قائمة أجهزة Android. يتم تخزين هذه الأجهزة في
قائمة الأجهزة ضمن self.android_devices
. لاحظ أنه إذا تم اختبار الاختبار
لا يحدد كائن AndroidDevice
، وهي فئة اختبار تتوقع ظهور
يثير الكائن AndroidDevice
استثناءً. للحصول على قائمة كاملة بالأجهزة المتوافقة
بتهيئة وحدة التحكم التي تأتي مع ACTS، فراجع القائمة على
/acts/framework/acts/controllers/
جميع القيم الأخرى (والتي ليست قيمًا خاصة مذكورة في القسم أعلاه)
يتم تخزينها في self.user_params
كقاموس. هذا مكان جيد لعقد
بيئة اختبارية أو معلومات اختبار مثل ما إذا كانت الهواتف ضمن بيانات تفرض تكلفة استخدام
البيئة، أو المدة التي يتم خلالها جمع البيانات للاختبار.
حالات خاصة لجهاز Android
لتسهيل التطوير عندما تريد أن يكون لديك أجهزة متعددة مزودة بـ
تتوفّر مواقع مختلفة، يتميّز AndroidDevice
ببعض الخصائص الخاصة
الحالات.
تنسيق إعدادات JSON
يتم تعيين جميع أزواج المفتاح/القيمة في مثال JSON التالي على
عنصر AndroidDevice
المقابل. إذا حاولت التهيئة استبدال
محددة في السمة AndroidDevice
، تم طرح ControllerError
.
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
ثم في النص البرمجي للاختبار، يمكنك استخدام دالة تصفية لاسترداد البيانات الجهاز والوصول إلى معلَمات إضافية من كائن الجهاز:
def setup_class(self):
self.pub = next(filter(lambda ad: ad.label == 'publisher',
self.android_devices))
self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
self.android_devices))
مَعلمة اختيارية
في ما يلي مَعلمة اختيارية:
adb_logcat_param
: سلسلة ملحقة بالأمرadb logcat
من أجل جمع سجلات Adb. ويتم استخدامadb logcat -v threadtime -b all
تلقائيًا. وفي حال ضبط السياسةadb_logcat_param
، يتم استبدال القسم "-b all
". بالنسبة على سبيل المثال، يؤدي ضبطadb_logcat_param
على-b radio
إلى تغيير الأمر إلىadb logcat -v threadtime -b radio