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):
Fitur Otomatisasi OpenThread Harness
Instal
- Instal software berikut:
- Python 2.7
- Git untuk Windows (dukungan Bash sangat disarankan)
- Clone repositori OpenThread untuk mendapatkan skrip otomatisasi:
git clone https://github.com/openthread/openthread
- Instal persyaratan Python:
cd tools/harness-automation
pip install -r requirements.txt
- Instal Google Chrome dan ChromeDriver.
Konfigurasi
- Buat file konfigurasi untuk alat otomatisasi:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Perbarui file konfigurasi baru tersebut sesuai petunjuk dalam file.
- 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:
- Tambahkan parameter tambahan berikut ke file konfigurasi Test Harness, yang terdapat di
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
- Download file konfigurasi topologi dari Grup Thread.
Tambahkan file ini sebagai
TopologyConfig.txt
keC:\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.
- Tutup GRL Test Harness, jika terbuka.
- Pasang perangkat ke komputer Windows.
- Temukan ID hardware port serial perangkat, menggunakan modul
PpySerial Python:
- Instal pySerial di mesin Windows.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
- Perbarui daftar Perangkat Emas:
- Buka
C:\GRL\Thread1.1\Config\Configuration.ini
. - 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']}
- Buka
- 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:
- Tutup GRL Test Harness, jika terbuka.
Modifikasi
/tools/harness-thci/OpenThread.py
berdasarkan karakteristik UART perangkat target. Modifikasi dapat berbeda di antara perangkat target. Dalam kasus platform Nordic nRF52840:- Ganti nama file
OpenThread.py
menjadinRF52840.py
. Ubah tiga kemunculan pertama dari "OpenThread" menjadi "nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
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()
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)
- Ganti nama file
Salin file
nRF52840.py
yang diubah keC:\GRL\Thread1.1\Thread_Harness\THCI
Menambahkan informasi platform baru ke Test Harness:
- Buat ikon (dalam format png atau jpg) agar Anda dapat membedakan
platform dengan mudah dan menyalinnya ke
C:\GRL\Thread1.1\Web\images
. Perbarui
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
dengan bagianDEVICE
baru, dengan parameterthumbnail
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>
- Buat ikon (dalam format png atau jpg) agar Anda dapat membedakan
platform dengan mudah dan menyalinnya ke
Pasang perangkat ke komputer Windows.
Temukan ID hardware port serial perangkat, menggunakan modul pySerial Python:
- Instal pySerial di mesin Windows.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
Perbarui daftar Golden Device:
- Buka
C:\GRL\Thread1.1\Config\Configuration.ini
. - 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'}
- Buka
Aktifkan mode DUT Otomatis
Setelah salah satu dari dua opsi konfigurasi di atas selesai:
- Buka GRL Test Harness, perangkat/portnya kini akan muncul sebagai perangkat referensi baru.
- Pilih kotak centang Enable Auto DUT Device Selection di bawah daftar Hardware yang Didukung.
- Pilih tombol pilihan Tetapkan sebagai DUT di bawah perangkat/port target untuk menetapkan perangkat sebagai DUT.