توضّح هذه الصفحة كيفية ضبط اختبارات ACTS.
مصادر الإعدادات
تتضمّن مجموعة اختبارات الاتصالات على Android (ACTS) ثلاثة مصادر رئيسية للضبط:
- واجهة سطر الأوامر
- ملف إعدادات ACTS
- متغيّرات البيئة
ويتم دمج القيم من هذه المصادر في إعدادات واحدة تُستخدم لإجراء اختبار ACTS. إذا تم تحديد القيم في عدة مواقع، يتم استبدال القيم بناءً على الترتيب أعلاه (حيث تكون الأولوية لـ CLI).
ملاحظة حول متغيرات البيئة
يُرجى توخي الحذر عند استخدام متغيّرات البيئة لاختبارات ACTS. وهذه القيم هي الأقل وضوحًا للمستخدم، ولا يُنصح باستخدامها خارج محطة عمل المطوّر. يتم إيقاف متغيّرات البيئة أثناء الاختبارات المبرمَجة في ACTS لمنع تلويث البيئة.
متغيّرات الضبط المطلوبة
يتطلّب كل اختبار من اختبارات ACTS ضبط المتغيّرات التالية.
مسارات اختبار ACTS
يتم تشغيل "عملية معالجة الطلبات في الوقت الفعلي" من موقع إدخال رئيسي واحد. ونتيجةً لذلك، لن يعرف المشغِّل موقع مسار الاختبار.
حدِّد موقع مسار الاختبار باستخدام متغيّر البيئة ACTS_TESTPATH
أو باستخدام العلامة -tp
/--testpaths
في سطر الأوامر. يمكن أن تكون القيمة قائمة بأدلة.
دورات اختبار ACTS
يجب أن يعرف ACTS فئات الاختبار التي يجب إجراؤها. يمكن أن يكون هذا تعبيرًا عاديًا أو قائمة بأسماء فئات الاختبار.
لضبط هذه القيمة، استخدِم العلامة -tc
/--test_class
في سطر الأوامر. تجدر الإشارة
إلى أنّ هذه العلامة تقبل أيضًا قائمة بأسماء الفئات. ويجب أن تتطابق أسماء الفئات مع أسماء الملفات المقابلة لها. على سبيل المثال، يجب العثور على SampleTest
في SampleTest.py
.
مسار سجلّ ACTS
يجب أن يحتوي ACTS على موقع لكتابة السجلات بخلاف STDOUT. تُسجِّل أداة ACTS سجلات debugging كاملة تحتوي على بيانات يمكن أن تساعد في تحديد سبب تعذُّر إجراء بعض الاختبارات. لتجنُّب حدوث فوضى، لا تُسجِّل أداة 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 من دليل
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"
}
الوحدة الأساسية لهذا الإعداد هي منصة الاختبار. في مثال الإعداد
أعلاه، تم إنشاء منصة الاختبار my_testbed
باستخدام قيمة منصة اختبار واحدة. يحتوي
جهاز الاختبار الثاني، another_testbed
، على إعدادات خاصة لوحدة التحكّم تحفظ
معلومات عن قائمة بأجهزة Android. تم حفظ هذه الأجهزة في قائمة
الأجهزة ضمن self.android_devices
. يُرجى العلم أنّه إذا لم يحدِّد اختبار الأداء
جسم AndroidDevice
، تُثير فئة الاختبار التي تتوقّع استخدام جسم
AndroidDevice
استثناءً. للحصول على قائمة كاملة بإعدادات وحدة التحكّم المتوافقة التي تتوفّر مع تفعيل ACTS، يمكنك الاطّلاع على القائمة على /acts/framework/acts/controllers/
.
يتم تخزين جميع القيم الأخرى (التي ليست قيمًا خاصة مذكورة في القسم أعلاه)
في self.user_params
بصفتها قاموسًا. وهو مكان جيد للاحتفاظ بمعلومات البيئة أو الاختبار مثل ما إذا كانت الهواتف في بيئة بيانات تفرض تكلفة استخدام، أو المدة التي يتم خلالها جمع البيانات للاختبار.
الحالات الخاصة لفئة AndroidDevice
لتسهيل عملية التطوير عندما تريد توفُّر أجهزة متعددة تتضمّن
سمات مختلفة، تتضمّن AndroidDevice
بعض الحالات الخاصة.
تنسيق إعدادات JSON
يتم ضبط كل أزواج المفتاح/القيمة في مثال JSON التالي على كائن AndroidDevice
المقابل. إذا حاولت config استبدال ملفparamter تم تحديده في سمة 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
.