Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

إعداد أتمتة الشهادات

لأتمتة اختبارات الشهادة ، يلزم إعداد إضافي.

تحدث جميع خطوات التثبيت والتكوين أدناه على جهاز Windows الذي يقوم بتشغيل برنامج GRL Test Harness. قم بتنزيل وتثبيت أحدث أداة اختبار GRL Thread Test قبل المتابعة.

بمجرد التثبيت ، توجد طريقتان للتشغيل الآلي للجهاز قيد الاختبار (DUT):

  1. أداة أتمتة تسخير OpenThread
  2. اختبار تسخير وضع DUT التلقائي

أداة أتمتة تسخير OpenThread

تثبيت

  1. قم بتثبيت البرنامج التالي:
    • بايثون 2.7
    • Git for Windows (يوصى بشدة بدعم Bash)
  2. استنساخ مستودع OpenThread للحصول على نصوص الأتمتة:
    git clone https://github.com/openthread/openthread
    
  3. تثبيت متطلبات بايثون:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. قم بتثبيت كل من Google Chrome و ChromeDriver .

تهيئة

  1. قم بإنشاء ملف تكوين لأداة الأتمتة:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. قم بتحديث ملف التكوين الجديد هذا وفقًا للإرشادات الواردة في الملف.
  3. أضف المعلمة التالية إلى ملف تكوين أداة الاختبار ، الموجود في C:\GRL\Thread1.1\Config\Configuration.ini :
    BrowserAutoNavigate = False

دعم اختبار مختلط

تدعم أداة Harness Automation Tool أيضًا قواعد الاختبار المختلطة ، حيث تكون الأجهزة المرجعية المستخدمة في كل حالة اختبار عبارة عن مجموعة مختلطة من الأجهزة بدلاً من نفس الجهاز. على سبيل المثال ، بدلاً من استخدام 32 لوحة TI CC2538 تعمل على OpenThread لجميع حالات الاختبار ، يمكنك المزج والمطابقة بين جميع الأجهزة المرجعية للخيوط الأربعة لكل حالة اختبار حسب الرغبة.

لاستخدام فراش الاختبار المختلطة ، يلزم إجراء تكوين إضافي:

  1. أضف المعلمة الإضافية التالية إلى ملف تكوين أداة الاختبار ، الموجود في C:\GRL\Thread1.1\Config\Configuration.ini :
    EnableDeviceSelection = True
  2. قم بتنزيل ملف تكوين الهيكل من Thread Group . أضف هذا الملف كـ TopologyConfig.txt إلى C:\GRL\Thread1.1\Thread_Harness\TestScripts . يوضح هذا الملف تفاصيل الجهاز المرجعي الذي يجب استخدامه لكل دور في كل حالة اختبار.

يمكن تعديل ملف تكوين الهيكل الذي توفره مجموعة Thread Group لتكوينات الأسرة المختلطة الأخرى ، ولكن للحصول على شهادة رسمية ، يجب استخدام التكوين الأصلي.

القيم الصالحة لاستخدامها للأجهزة المرجعية في ملف تكوين الهيكل هي:

القيمة في ملف تكوين الهيكل اختبار الجهاز المرجعي تسخير
ARM ARM: NXP FRDM-K64F مع درع Firefly 6LoWPAN
NXP NXP (Freescale): USB-KW24D512 دونجل
OpenThread OpenThread: TI CC2538DK
SiLabs سيلابس: EM358x USB Stick

يجب أن يكون كل إدخال لحالة الاختبار في ملف تكوين الهيكل على سطر منفصل ومنسق في role:device أزواج role:device النحو التالي:

5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM

اختبار تسخير وضع DUT التلقائي

يوفر برنامج GRL Test Harness ميزة الاكتشاف التلقائي المتقدمة (Auto DUT) التي تعمل على تسريع عملية التحقق من صحة بائعي مكدس مرجع الخيط.

يوفر OpenThread مثالاً لواجهة وحدة تحكم مضيف مؤشر الترابط (THCI) التي تسمح لـ Test Harness بالتحكم في المكون أو المنتج الخاص بك كما لو كان أحد الأنظمة الأساسية المرجعية. وفقًا لخصائص المنفذ التسلسلي لمنصتك المحددة ، يمكن لـ DUT إما:

العمل كمنصة مرجعية OpenThread الحالية

إذا كان المنفذ التسلسلي لوظيفة DUT يعمل ضمن إعدادات 115200 8-N-1 ، وكان الجهاز يستجيب بشكل صحيح بعد كل إعادة تعيين جهاز مادي (على سبيل المثال ، لتأكيد اتصال الجهاز الصحيح بجهاز Windows) ، فيمكن للنظام الأساسي استخدام أداة OpenThread THCI. تسمح هذه الأداة للجهاز بالعمل كمنصة مرجعية OpenThread أثناء الاختبار.

  1. أغلق حزام اختبار GRL ، إذا كان مفتوحًا.
  2. قم بتوصيل الجهاز بجهاز Windows.
  3. ابحث عن معرف جهاز المنفذ التسلسلي للجهاز ، باستخدام وحدة Python pySerial:
    1. قم بتثبيت pySerial على جهاز Windows.
    2. استخدم Python في سطر أوامر Windows لتعداد جميع معرفات الأجهزة (VID و PID) للأجهزة المتصلة بالجهاز. في هذا الإخراج ، يتم توصيل جهاز واحد بمعرف VID = 1366 و PID = 1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. إذا كنت تعرف منفذ COM بالفعل ، فيمكنك استخدام أمر مختلف. على سبيل المثال ، إذا كان منفذ COM هو COM10 :
      python -c "import serial.tools.list_ports;print [ports[2] for ports in serial.tools.list_ports.comports() if ports[0] == 'COM10']"
      ['USB\VID_1366+PID_1015+MI_00']
  4. تحديث قائمة الأجهزة الذهبية:
    1. افتح C:\GRL\Thread1.1\Config\Configuration.ini .
    2. قم بتحديث مجموعة OpenThread في صفيف GoldenDeviceHardwareIds باستخدام VID و PID للجهاز (الأجهزة):
      GoldenDeviceHardwareIds = {
      'NXP': ['VID:PID=1FC9:0300','VID:PID=15A2:0300','VID:PID=1366:1015'],
      'SiLabs': 'VID:PID=10C4:8A5E',
      'ARM': 'VID:PID=0D28:0204',
      'OpenThread':['VID:PID=10C4:EA60','VID:PID=1366:1015']}
  5. تمكين وضع DUT التلقائي .

العمل كمنصة مرجعية جديدة

إذا كان المنفذ التسلسلي لـ DUT لا يعمل ضمن إعدادات المنفذ التسلسلي المناسبة ، أو إذا كان الجهاز لا يستجيب بشكل صحيح بعد إعادة تعيين الجهاز المادي (إخراج رمز غير قابل للقراءة في غضون 3-6 ثوانٍ من إعادة التعيين) ، فيمكن تخصيص OpenThread THCI للمعالجة الجهاز كمنصة جديدة في Test Harness.

على سبيل المثال ، لتخصيص THCI باستخدام منصة Nordic Semiconductor nRF52840 :

  1. أغلق حزام اختبار GRL ، إذا كان مفتوحًا.
  2. قم بتعديل /tools/harness-thci/OpenThread.py بناءً على خصائص UART للجهاز الهدف. قد تختلف التعديلات بين الأجهزة المستهدفة. في حالة منصة Nordic nRF52840:

    1. أعد تسمية ملف OpenThread.py إلى nRF52840.py .
    2. تغيير التكرارات الثلاثة الأولى لـ "OpenThread" إلى "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. قم بتغيير معلمات المنفذ التسلسلي:

      def _connect(self):
          print 'My port is %s' % self.port
          if self.port.startswith('COM'):
              self.handle = serial.Serial(self.port, 115200, timeout=0)
              time.sleep(1)
              self.handle.write('\r\n')
              time.sleep(0.1)
              self._is_net = False
          elif ':' in self.port:
              host, port = self.port.split(':')
              self.handle = socket.create_connection((host, port))
              self.handle.setblocking(0)
              self._is_net = True
          else:
              raise Exception('Unknown port schema')
          self.UIStatusMsg = self.getVersionNumber()
      
    4. قم بتغيير وقت السكون للتخلص من تأثير إخراج الكود غير المقروء بعد إعادة ضبط الجهاز:

      def powerDown(self):
          """power down the Thread device"""
          print '%s call powerDown' % self.port
          self._sendline('reset')
          self.isPowerDown = True
          time.sleep(8)  # New addition
      
      def reboot(self):
          """reset and rejoin to Thread Network without any timeout
      
          Returns:
              True: successful to reset and rejoin the Thread Network
              False: fail to reset and rejoin the Thread Network
          """
          print '%s call reboot' % self.port
          try:
              self._sendline('reset')
              self.isPowerDown = True
              time.sleep(8)  # Updated from 3 to 8
      
      def reset(self):
          """factory reset"""
          print '%s call reset' % self.port
          try:
              self._sendline('factoryreset')
              time.sleep(8)  # Updated from 3 to 8
              self._read()
      
      def resetAndRejoin(self, timeout):
          """reset and join back Thread Network with a given timeout delay
      
          Args:
              timeout: a timeout interval before rejoin Thread Network
      
          Returns:
              True: successful to reset and rejoin Thread Network
              False: fail to reset and rejoin the Thread Network
          """
          print '%s call resetAndRejoin' % self.port
          print timeout
          try:
              self._sendline('reset')
              self.isPowerDown = True
              time.sleep(timeout)
              if timeout < 8:      # Sleep a bit longer if the timeout is short
                  time.sleep(8 - timeout)
      
  3. انسخ ملف nRF52840.py المعدل إلى C:\GRL\Thread1.1\Thread_Harness\THCI

  4. أضف معلومات النظام الأساسي الجديد إلى Test Harness:

    1. قم بإنشاء رمز (بتنسيق png أو jpg) لتسهيل التمييز بين النظام الأساسي الخاص بك ونسخه إلى C:\GRL\Thread1.1\Web\images .
    2. تحديث C:\GRL\Thread1.1\Web\data\deviceInputFields.xml بقسم DEVICE جديد ، حيث تكون معلمة thumbnail هي ملف الرمز:

      <DEVICE name="nRF52840" thumbnail="nRF52840.jpg" description ="nRF52840: Nordic" THCI="nRF52840">
          <ITEM label="Serial Line"
                type="text"
                forParam="SerialPort"
                validation="COM"
                hint="eg: COM1">COM
          </ITEM>
          <ITEM label="Speed"
                type="text"
                forParam="SerialBaudRate"
                validation="baud-rate"
                hint="eg: 115200">115200
          </ITEM>
      </DEVICE>
      
  5. قم بتوصيل الجهاز بجهاز Windows.

  6. ابحث عن معرف جهاز المنفذ التسلسلي للجهاز ، باستخدام وحدة Python pySerial:

    1. قم بتثبيت pySerial على جهاز Windows.
    2. استخدم Python في سطر أوامر Windows لتعداد جميع معرفات الأجهزة (VID و PID) للأجهزة المتصلة بالجهاز. في هذا الإخراج ، يتم توصيل جهاز واحد بمعرف VID = 1366 و PID = 1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. إذا كنت تعرف منفذ COM بالفعل ، فيمكنك استخدام أمر مختلف. على سبيل المثال ، إذا كان منفذ COM هو COM10 :
      python -c "import serial.tools.list_ports;print [ports[2] for ports in serial.tools.list_ports.comports() if ports[0] == 'COM10']"
      ['USB\VID_1366+PID_1015+MI_00']
  7. تحديث قائمة الأجهزة الذهبية:

    1. افتح C:\GRL\Thread1.1\Config\Configuration.ini .
    2. أضف مجموعة منصة جديدة في مصفوفة GoldenDeviceHardwareIds مع VID و PID للجهاز:
      GoldenDeviceHardwareIds = {
      'NXP': ['VID:PID=1FC9:0300','VID:PID=15A2:0300','VID:PID=1366:1015'],
      'SiLabs': 'VID:PID=10C4:8A5E',
      'ARM': 'VID:PID=0D28:0204',
      'OpenThread':'VID:PID=10C4:EA60',
      'nRF52840': 'VID:PID=1366:1015'}
  8. تمكين وضع DUT التلقائي .

تفعيل وضع DUT التلقائي

بعد اكتمال أحد خياري التكوين أعلاه:

  1. افتح أداة اختبار GRL ، يظهر الجهاز / المنفذ الآن كجهاز مرجعي جديد.
  2. حدد خانة الاختيار Enable Auto DUT Device Selection أسفل قائمة الأجهزة المدعومة.
  3. حدد زر الاختيار تعيين كـ DUT تحت الجهاز / المنفذ الهدف لتعيين الجهاز ليكون DUT.
شهادة OT Auto DUT