ضبط اختبارات ACTS

توضّح هذه الصفحة طريقة ضبط اختبارات 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