Для автоматизации сертификационных испытаний требуется дополнительная настройка.
Все этапы установки и настройки, описанные ниже, выполняются на компьютере с ОС Windows, на котором запущено программное обеспечение GRL Test Harness. Прежде чем продолжить, загрузите и установите последнюю версию GRL Thread Test Harness .
После установки существует два метода автоматизации для тестируемого устройства (DUT):
- Инструмент автоматизации OpenThread Harness
- Тестовый жгут Автоматический режим тестируемого устройства
Инструмент автоматизации OpenThread Harness
Установить
- Установите следующее программное обеспечение:
- Питон 2.7
- Git для Windows (настоятельно рекомендуется поддержка Bash)
- Клонируйте репозиторий OpenThread, чтобы получить скрипты автоматизации:
git clone https://github.com/openthread/openthread
- Требования для установки Python:
cd tools/harness-automation
pip install -r requirements.txt
- Установите Google Chrome и ChromeDriver .
Настроить
- Создайте файл конфигурации для инструмента автоматизации:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Обновите этот новый файл конфигурации в соответствии с инструкциями в файле.
- Добавьте следующий параметр в файл конфигурации Test Harness, расположенный в
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
.
Поддержка смешанных тестовых стендов
Инструмент автоматизации Harness также поддерживает смешанные испытательные стенды, где эталонные устройства, используемые в каждом тестовом сценарии, представляют собой смешанный набор устройств, а не одно и то же устройство. Например, вместо использования 32 плат TI CC2538 с OpenThread для всех тестовых случаев вы можете смешивать и сопоставлять все четыре эталонных устройства Thread для каждого тестового примера по желанию.
Для использования смешанных тестовых стендов необходима дополнительная настройка:
- Добавьте следующий дополнительный параметр в файл конфигурации Test Harness, расположенный в
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
. - Загрузите файл конфигурации топологии из группы потоков . Добавьте этот файл как
TopologyConfig.txt
в папкуC:\GRL\Thread1.1\Thread_Harness\TestScripts
. В этом файле указано, какое эталонное устройство использовать для каждой роли в каждом тестовом примере.
Файл конфигурации топологии, предоставленный группой потоков, можно изменить для других конфигураций смешанного слоя, но для официальной сертификации необходимо использовать исходную конфигурацию.
Допустимые значения для эталонных устройств в файле конфигурации топологии:
Значение в файле конфигурации топологии | Эталонное устройство Test Harness |
---|---|
ARM | ARM: NXP FRDM-K64F с экраном Firefly 6LoWPAN |
NXP | NXP (Freescale): ключи USB-KW24D512 |
OpenThread | OpenThread: TI CC2538DK |
SiLabs | Silabs: USB-накопитель EM358x |
Каждая запись тестового примера в файле конфигурации топологии должна быть на отдельной строке и отформатирована в парах role:device
следующим образом:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Тестовый жгут Автоматический режим тестируемого устройства
Программное обеспечение GRL Test Harness предоставляет расширенную функцию автоматического обнаружения (Auto DUT), которая ускоряет процесс проверки для поставщиков эталонного стека потоков.
OpenThread предоставляет пример интерфейса хост-контроллера потока (THCI) , который позволяет Test Harness управлять вашим компонентом или продуктом, как если бы он был одной из эталонных платформ. В зависимости от характеристик последовательного порта конкретной платформы ваше тестируемое устройство может:
Действует как существующая эталонная платформа OpenThread.
Если последовательный порт тестируемого устройства работает в соответствии с настройками 115200 8-N-1, и устройство правильно отвечает после каждого физического сброса устройства (например, для подтверждения действительного подключения устройства к компьютеру Windows), то платформа может использовать Инструмент OpenThread THCI. Этот инструмент позволяет устройству выступать в качестве эталонной платформы OpenThread во время тестирования.
- Закройте тестовый жгут GRL, если он открыт.
- Подключите устройство к компьютеру с Windows.
- Найдите аппаратный идентификатор последовательного порта устройства, используя модуль Python pySerial:
- Установите pySerial на компьютер с Windows.
- Используйте Python в командной строке Windows для перечисления всех аппаратных идентификаторов (VID и PID) для устройств, подключенных к машине. В этом выводе одно устройство подключено с идентификатором VID=1366 и PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Если вы уже знаете 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']
- Обновите список золотых устройств:
- Откройте
C:\GRL\Thread1.1\Config\Configuration.ini
. - Обновите группу
GoldenDeviceHardwareIds
в массиве 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']}
- Откройте
- Включите автоматический режим тестируемого устройства .
Выступая в качестве новой эталонной платформы
Если последовательный порт тестируемого устройства не работает при правильных настройках последовательного порта или устройство не отвечает должным образом после физического сброса устройства (выводит нечитаемый код в течение 3–6 секунд после сброса), то OpenThread THCI можно настроить для обработки устройство в качестве новой платформы в Test Harness.
Например, чтобы настроить THCI с помощью платформы Nordic Semiconductor nRF52840 :
- Закройте тестовый жгут GRL, если он открыт.
Измените
/tools/harness-thci/OpenThread.py
на основе характеристик UART целевого устройства. Модификации могут различаться между целевыми устройствами. В случае платформы Nordic nRF52840:- Переименуйте файл
OpenThread.py
вnRF52840.py
. Измените первые три вхождения «OpenThread» на «nRF52840»:
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
Измените параметры последовательного порта:
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()
Измените время ожидания, чтобы устранить влияние нечитаемого кода после сброса устройства:
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)
- Переименуйте файл
Скопируйте измененный файл
nRF52840.py
в папкуC:\GRL\Thread1.1\Thread_Harness\THCI
Добавьте информацию о новой платформе в Test Harness:
- Создайте значок (в формате png или jpg), чтобы упростить различение вашей платформы, и скопируйте его в
C:\GRL\Thread1.1\Web\images
. Обновите
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>
- Создайте значок (в формате png или jpg), чтобы упростить различение вашей платформы, и скопируйте его в
Подключите устройство к компьютеру с Windows.
Найдите аппаратный идентификатор последовательного порта устройства, используя модуль Python pySerial:
- Установите pySerial на компьютер с Windows.
- Используйте Python в командной строке Windows для перечисления всех аппаратных идентификаторов (VID и PID) для устройств, подключенных к машине. В этом выводе одно устройство подключено с идентификатором VID=1366 и PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Если вы уже знаете 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']
Обновите список золотых устройств:
- Откройте
C:\GRL\Thread1.1\Config\Configuration.ini
. - Добавьте новую группу платформ в массив
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'}
- Откройте
Включить автоматический режим тестируемого устройства
После завершения одного из двух вышеуказанных вариантов конфигурации:
- Откройте GRL Test Harness, устройство/порт теперь отображается как новое эталонное устройство.
- Установите флажок « Включить автоматический выбор устройства DUT» под списком поддерживаемого оборудования.
- Выберите переключатель « Установить как тестируемое устройство » под целевым устройством/портом, чтобы установить устройство в качестве тестируемого устройства.