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):
Alat Otomatisasi OpenThread Harness
Instal
- Instal software berikut:
- Python 2.7
- Git untuk Windows (dukungan Bash sangat direkomendasikan)
- Buat 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 dengan petunjuk dalam .
- 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:
- Tambahkan parameter tambahan berikut ke konfigurasi Test Harness
file, ditemukan di
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
- Download file konfigurasi topologi dari Thread
Grup.
Tambahkan file ini sebagai
TopologyConfig.txt
keC:\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.
- Tutup GRL Test Harness, jika terbuka.
- Pasang perangkat ke komputer Windows.
- Menemukan ID hardware port serial perangkat, menggunakan Python pySerial
:
- Menginstal pySerial komputer Windows.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
- Perbarui daftar Golden Device:
- Buka
C:\GRL\Thread1.1\Config\Configuration.ini
. - 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']}
- Buka
- 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:
- Tutup GRL Test Harness, jika terbuka.
Mengubah
/tools/harness-thci/OpenThread.py
berdasarkan karakteristik UART dari perangkat target. Modifikasi mungkin berbeda di antara perangkat target. Dalam kasus platform nRF52840 Nordic:- Ganti nama file
OpenThread.py
menjadinRF52840.py
. Mengubah tiga kemunculan pertama "OpenThread" ke "nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
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()
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)
- Ganti nama file
Salin file
nRF52840.py
yang diubah keC:\GRL\Thread1.1\Thread_Harness\THCI
Tambahkan informasi platform baru ke Test Harness:
- Buat ikon (dalam format png atau jpg) agar lebih mudah dibedakan
platform Anda dan salin ke
C:\GRL\Thread1.1\Web\images
. Update
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
dengan yang baruDEVICE
, 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 lebih mudah dibedakan
platform Anda dan salin ke
Pasang perangkat ke komputer Windows.
Menemukan ID hardware port serial perangkat, menggunakan Python pySerial :
- Menginstal pySerial komputer Windows.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
Perbarui daftar Golden Device:
- Buka
C:\GRL\Thread1.1\Config\Configuration.ini
. - 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'}
- Buka
Mengaktifkan mode DUT Otomatis
Setelah salah satu dari dua opsi konfigurasi di atas selesai:
- Buka GRL Test Harness, perangkat/port sekarang muncul sebagai referensi baru perangkat seluler.
- Centang kotak Enable Auto DUT Device Selection di bawah kotak Didukung Daftar hardware.
- Pilih tombol pilihan Tetapkan sebagai DUT di bawah perangkat/port target untuk ditetapkan perangkat sebagai DUT.