Penyiapan Otomatisasi Sertifikasi

Untuk mengotomatiskan pengujian sertifikasi, penyiapan tambahan diperlukan.

Semua langkah penginstalan dan konfigurasi di bawah terjadi di komputer Windows yang menjalankan software GRL Test Harness. Download dan instal G tingkat Thread Test Harness terbaru sebelum melanjutkan.

Setelah diinstal, ada dua metode otomatisasi untuk perangkat yang sedang diuji (DUT):

  1. Alat Otomatisasi Harness OpenThread
  2. Mode DUT Otomatis Harness Uji Coba

Fitur Otomatisasi OpenThread Harness

Instal

  1. Instal software berikut:
    • Python 2.7
    • Git untuk Windows (dukungan Bash sangat disarankan)
  2. Clone repositori OpenThread untuk mendapatkan skrip otomatisasi:
    git clone https://github.com/openthread/openthread
    
  3. Instal persyaratan Python:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Instal Google Chrome dan ChromeDriver.

Konfigurasi

  1. Buat file konfigurasi untuk alat otomatisasi:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Perbarui file konfigurasi baru tersebut sesuai petunjuk dalam file.
  3. Tambahkan parameter berikut ke file konfigurasi Test Harness, yang dapat ditemukan di C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Dukungan pengujian campuran

Harness Automation Tool juga mendukung testbed campuran, dengan perangkat referensi yang digunakan dalam setiap kasus pengujian adalah kumpulan perangkat campuran, bukan semua perangkat yang sama. Misalnya, daripada menggunakan 32 board TI CC2538 yang menjalankan OpenThread untuk semua kasus pengujian, Anda dapat mencampur dan mencocokkan keempat perangkat referensi Thread untuk setiap kasus pengujian sesuai keinginan.

Untuk menggunakan testbed campuran, konfigurasi tambahan diperlukan:

  1. Tambahkan parameter tambahan berikut ke file konfigurasi Test Harness, yang terdapat di C:\GRL\Thread1.1\Config\Configuration.ini:
    EnableDeviceSelection = True
  2. Download file konfigurasi topologi dari Grup Thread. Tambahkan file ini sebagai TopologyConfig.txt ke C:\GRL\Thread1.1\Thread_Harness\TestScripts. File ini menjelaskan referensi perangkat yang akan digunakan untuk setiap peran dalam setiap kasus pengujian.

File konfigurasi topologi yang disediakan oleh Grup Thread dapat dimodifikasi untuk konfigurasi tempat tidur campuran lainnya, tetapi untuk sertifikasi resmi, konfigurasi asal harus digunakan.

Nilai yang valid untuk digunakan sebagai perangkat referensi dalam file konfigurasi topologi adalah:

Nilai dalam file konfigurasi topologi Perangkat referensi Test Harness
ARM ARM: CVE FRDM-K64F dengan Firefly 6LoWPAN Shield
NXP CameraX(Freescale): Dongle USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Slab: Stik USB EM358x

Setiap entri kasus pengujian dalam file konfigurasi topologi harus berada di baris terpisah dan diformat dalam pasangan role:device sebagai berikut:

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

Uji mode DUT Otomatis Harness

Software GRL Test Harness menyediakan fitur penemuan otomatis lanjutan (Auto DUT) yang mempercepat proses validasi untuk vendor stack referensi Thread.

OpenThread menyediakan contoh Thread Host Controller Interface (THCI) yang memungkinkan Test Harness mengontrol komponen atau produk Anda seolah-olah itu adalah salah satu platform referensi. Berdasarkan karakteristik port serial platform tertentu, DUT Anda dapat:

Bertindak sebagai platform referensi OpenThread yang sudah ada

Jika port serial fungsi DUT menggunakan setelan 115.200 8-N-1, dan perangkat merespons dengan benar setelah setiap perangkat fisik direset (misalnya, untuk mengonfirmasi koneksi yang valid perangkat ke mesin Windows), maka platform dapat menggunakan alat OpenThread THCI. Alat ini memungkinkan perangkat untuk bertindak sebagai platform referensi OpenThread selama pengujian.

  1. Tutup GRL Test Harness, jika terbuka.
  2. Pasang perangkat ke komputer Windows.
  3. Temukan ID hardware port serial perangkat, menggunakan modul PpySerial Python:
    1. Instal pySerial di mesin Windows.
    2. Gunakan Python pada command line Windows untuk menghitung semua ID hardware (VID dan PID) untuk perangkat yang terhubung ke mesin. Dalam output ini, satu perangkat terhubung dengan ID VID=1366 dan PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Jika sudah mengetahui port COM, Anda dapat menggunakan perintah lain. Misalnya, jika port COM adalah 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. Perbarui daftar Perangkat Emas:
    1. Buka C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Perbarui grup OpenThread dalam array GoldenDeviceHardwareIds dengan VID dan PID perangkat:
      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. Aktifkan mode DUT Otomatis.

Bertindak sebagai platform referensi baru

Jika port serial DUT tidak berfungsi di bagian setelan port serial yang sesuai, atau perangkat tidak merespons dengan benar setelah perangkat direset secara fisik (menghasilkan kode yang tidak dapat dibaca dalam waktu 3-6 detik setelah direset), maka OpenThread THCI dapat disesuaikan untuk memperlakukan perangkat sebagai platform baru dalam Uji Utilitas.

Misalnya, untuk menyesuaikan THCI menggunakan platform Nordic Semiconductor nRF52840:

  1. Tutup GRL Test Harness, jika terbuka.
  2. Modifikasi /tools/harness-thci/OpenThread.py berdasarkan karakteristik UART perangkat target. Modifikasi dapat berbeda di antara perangkat target. Dalam kasus platform Nordic nRF52840:

    1. Ganti nama file OpenThread.py menjadi nRF52840.py.
    2. Ubah tiga kemunculan pertama dari "OpenThread" menjadi "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Mengubah parameter port serial:

      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. Ubah waktu tidur untuk menghilangkan dampak output kode yang tidak dapat dibaca setelah perangkat direset:

      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. Salin file nRF52840.py yang diubah ke C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Menambahkan informasi platform baru ke Test Harness:

    1. Buat ikon (dalam format png atau jpg) agar Anda dapat membedakan platform dengan mudah dan menyalinnya ke C:\GRL\Thread1.1\Web\images.
    2. Perbarui C:\GRL\Thread1.1\Web\data\deviceInputFields.xml dengan bagian DEVICE baru, dengan parameter thumbnail adalah file ikon:

      <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. Pasang perangkat ke komputer Windows.

  6. Temukan ID hardware port serial perangkat, menggunakan modul pySerial Python:

    1. Instal pySerial di mesin Windows.
    2. Gunakan Python pada command line Windows untuk menghitung semua ID hardware (VID dan PID) untuk perangkat yang terhubung ke mesin. Dalam output ini, satu perangkat terhubung dengan ID VID=1366 dan PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Jika sudah mengetahui port COM, Anda dapat menggunakan perintah lain. Misalnya, jika port COM adalah 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. Perbarui daftar Golden Device:

    1. Buka C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Tambahkan grup platform baru di array GoldenDeviceHardwareIds dengan VID dan PID perangkat:
      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. Aktifkan mode DUT Otomatis.

Aktifkan mode DUT Otomatis

Setelah salah satu dari dua opsi konfigurasi di atas selesai:

  1. Buka GRL Test Harness, perangkat/portnya kini akan muncul sebagai perangkat referensi baru.
  2. Pilih kotak centang Enable Auto DUT Device Selection di bawah daftar Hardware yang Didukung.
  3. Pilih tombol pilihan Tetapkan sebagai DUT di bawah perangkat/port target untuk menetapkan perangkat sebagai DUT.
DUT Otomatis Sertifikasi OT