Penyiapan Otomatisasi Sertifikasi

Untuk mengotomatiskan pengujian sertifikasi, penyiapan tambahan diperlukan.

Semua langkah penginstalan dan konfigurasi di bawah ini dilakukan di komputer Windows menjalankan perangkat lunak GRL Test Harness. Download dan instal aplikasi Memanfaatkan Pengujian Thread GL sebelumnya melanjutkan.

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

  1. Alat Otomatisasi OpenThread Harness
  2. Menguji mode DUT Otomatis Harness

Alat Otomatisasi OpenThread Harness

Instal

  1. Instal software berikut:
    • Python 2.7
    • Git untuk Windows (dukungan Bash sangat direkomendasikan)
  2. Buat 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 dengan petunjuk dalam .
  3. Tambahkan parameter berikut ke file konfigurasi Test Harness, yang ditemukan di C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Dukungan pengujian campuran

Alat Otomatisasi Harness juga mendukung pengujian campuran, dengan referensi perangkat yang digunakan dalam setiap kasus pengujian adalah satu set perangkat campuran, bukan semua perangkat yang sama. Misalnya, alih-alih menggunakan 32 {i>motherboard<i} TI CC2538 yang OpenThread untuk semua kasus pengujian, Anda dapat mencampur dan mencocokkan keempat Thread untuk setiap kasus pengujian sesuai keinginan.

Untuk menggunakan tempat pengujian campuran, konfigurasi tambahan diperlukan:

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

File konfigurasi topologi yang disediakan oleh {i>Thread Group<i} dapat dimodifikasi untuk konfigurasi tempat tidur campuran lainnya, namun untuk sertifikasi resmi, 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: NXP FRDM-K64F dengan Firefly 6LoWPAN Shield
NXP NXP(skala bebas): Dongle USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x USB Stick

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

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

Mode DUT Otomatis Test Harness

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

OpenThread memberikan contoh Thread Host Controller Interface (THCI) yang memungkinkan Test Harness mengontrol komponen atau produk Anda seolah-olah salah satu platform referensi. Sesuai dengan karakteristik porta serial dari platform tertentu, DUT Anda dapat:

Bertindak sebagai platform referensi OpenThread yang ada

Jika port serial DUT berfungsi dalam pengaturan 115200 8-N-1, perangkat merespons dengan benar setelah setiap kali perangkat fisik direset (misalnya, mengonfirmasi koneksi valid perangkat ke komputer Windows), lalu 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. Menemukan ID hardware port serial perangkat, menggunakan Python pySerial :
    1. Menginstal pySerial komputer Windows.
    2. Menggunakan Python pada command line Windows untuk menghitung semua hardware (VID dan PID) untuk perangkat yang terhubung ke komputer. Di sini , satu perangkat terhubung dengan pengidentifikasi 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 Anda sudah mengetahui porta COM, Anda dapat menggunakan perintah yang berbeda. Sebagai 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 Golden Device:
    1. Buka C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Perbarui grup OpenThread 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','VID:PID=1366:1015']}
  5. Mengaktifkan mode DUT Otomatis.

Bertindak sebagai platform referensi baru

Jika port serial DUT tidak berfungsi dalam port serial yang benar pengaturan awal, atau perangkat tidak merespons dengan benar setelah menggunakan perangkat fisik reset (menghasilkan kode yang tidak dapat dibaca dalam waktu 3-6 detik setelah reset), lalu OpenThread THCI dapat disesuaikan untuk memperlakukan perangkat sebagai platform baru dalam Pengujian Tali Harness.

Misalnya, untuk menyesuaikan THCI menggunakan komponen Nordic Semiconductor nRF52840 berikut:

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

    1. Ganti nama file OpenThread.py menjadi nRF52840.py.
    2. Mengubah tiga kemunculan pertama "OpenThread" ke "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Ubah 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. Mengubah 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. Tambahkan informasi platform baru ke Test Harness:

    1. Buat ikon (dalam format png atau jpg) agar lebih mudah dibedakan platform Anda dan salin ke C:\GRL\Thread1.1\Web\images.
    2. Update C:\GRL\Thread1.1\Web\data\deviceInputFields.xml dengan yang baru DEVICE, 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. Menemukan ID hardware port serial perangkat, menggunakan Python pySerial :

    1. Menginstal pySerial komputer Windows.
    2. Menggunakan Python pada command line Windows untuk menghitung semua hardware (VID dan PID) untuk perangkat yang terhubung ke komputer. Di sini output, satu perangkat terhubung dengan pengidentifikasi 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 Anda sudah mengetahui porta COM, Anda dapat menggunakan perintah yang berbeda. Sebagai 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. Menambahkan 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. Mengaktifkan mode DUT Otomatis.

Mengaktifkan mode DUT Otomatis

Setelah salah satu dari dua opsi konfigurasi di atas selesai:

  1. Buka GRL Test Harness, perangkat/port sekarang muncul sebagai referensi baru perangkat seluler.
  2. Centang kotak Enable Auto DUT Device Selection di bawah kotak Didukung Daftar hardware.
  3. Pilih tombol pilihan Tetapkan sebagai DUT di bawah perangkat/port target untuk ditetapkan perangkat sebagai DUT.
DUT Otomatis Sertifikasi OT