인증 자동화 설정

인증 테스트를 자동화하려면 추가 설정이 필요합니다.

아래의 모든 설치 및 구성 단계는 Windows 컴퓨터에서 수행됩니다. 실행할 수 있습니다 최신 버전 다운로드 및 설치 GRL 스레드 테스트 하네스에서 계속됩니다.

설치가 완료되면 테스트 중인 기기에 두 가지 자동화 방법을 적용할 수 있습니다. (DUT):

  1. OpenThread 하네스 자동화 도구
  2. 테스트 하네스 자동 DUT 모드

OpenThread 하네스 자동화 도구

설치

  1. 다음 소프트웨어를 설치합니다. <ph type="x-smartling-placeholder">
      </ph>
    • Python 2.7
    • Windows용 Git (Bash 지원이 적극 권장됨)
  2. OpenThread 저장소를 클론하여 자동화 스크립트를 가져옵니다.
    git clone https://github.com/openthread/openthread
    
  3. Python 요구사항을 설치합니다.
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. ChromeChromeDriver.

구성

  1. 자동화 도구의 구성 파일을 만듭니다.
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. 아래의 안내에 따라 새 구성 파일을 업데이트합니다. 파일에서 참조됩니다.
  3. 다음 매개변수를 테스트 하네스 구성 파일에 추가합니다. C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

혼합 테스트베드 지원

하네스 자동화 도구는 혼합 테스트베드도 지원하며, 모든 테스트 사례가 아닌 혼합된 기기 세트입니다. 사용할 수 있습니다. 예를 들어 32개의 TI CC2538 보드를 사용하는 대신 모든 테스트 사례에 OpenThread, 4개의 모든 스레드 간에 혼합 및 매칭 가능 참조 기기를 사용할 수 있습니다.

혼합 테스트베드를 사용하려면 추가 구성이 필요합니다.

  1. 다음 추가 매개변수를 테스트 하네스 구성에 추가합니다. 파일(C:\GRL\Thread1.1\Config\Configuration.ini에 있음):
    EnableDeviceSelection = True
  2. 스레드에서 토폴로지 구성 파일 다운로드 그룹을 선택합니다. 이 파일을 TopologyConfig.txt(으)로 다음 위치에 추가 C:\GRL\Thread1.1\Thread_Harness\TestScripts 이 파일은 각 테스트 사례의 각 역할에 사용할 참조 기기입니다.

스레드 그룹에서 제공하는 토폴로지 구성 파일은 다음과 같이 수정할 수 있습니다. 혼합형 침대로 구성될 수 있지만 공식 인증을 위해 구성을 사용해야 합니다

토폴로지 구성 파일의 참조 기기에 사용할 유효한 값 다음과 같습니다.

토폴로지 구성 파일의 값 테스트 하네스 참조 기기
ARM ARM: Firefly 6LoWPAN Shield가 포함된 NXP FRDM-K64F
NXP NXP(프리스케일): USB-KW24D512 동글
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x USB 스틱

토폴로지 구성 파일의 각 테스트 사례 항목은 행을 생성하고 다음과 같이 role:device 쌍으로 형식을 지정합니다.

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

테스트 하네스 자동 DUT 모드

GRL 테스트 하네스 소프트웨어는 고급 자동 검색 기능을 제공합니다. (Auto DUT)로 스레드 참조 스택의 검증 프로세스를 가속화합니다. 있습니다.

예를 들어 OpenThread는 스레드 호스트 컨트롤러 인터페이스 (THCI) 그렇게 함으로써 테스트 하네스가 마치 그 구성 요소나 제품을 참조 플랫폼 중 하나입니다. 모든 포트의 직렬 포트 특성에 따라 DUT는 다음 중 하나를 수행할 수 있습니다.

기존 OpenThread 참조 플랫폼의 역할

DUT의 직렬 포트가 115200 8-N-1의 설정에서 작동하는 경우 기기가 초기화될 때마다 올바르게 응답 (예: Windows 시스템에 대한 장치의 유효한 연결을 확인), 플랫폼이 OpenThread THCI 도구를 사용할 수 있습니다. 이 도구를 사용하면 기기가 테스트 중 OpenThread 참조 플랫폼

  1. GRL 테스트 하네스가 열려 있으면 닫습니다.
  2. 기기를 Windows 시스템에 연결합니다.
  3. Python pySerial을 사용하여 기기 직렬 포트 하드웨어 식별자를 찾습니다. 모듈: <ph type="x-smartling-placeholder">
      </ph>
    1. pySerial 설치 일종의 장치입니다.
    2. Windows 명령줄에서 Python을 사용하여 모든 하드웨어 열거 기기에 연결된 장치에 대한 식별자 (VID 및 PID) 이 하나의 장치가 VID=1366의 식별자와 연결되어 있고 PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. 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']
  4. 골든 기기 목록 업데이트: <ph type="x-smartling-placeholder">
      </ph>
    1. C:\GRL\Thread1.1\Config\Configuration.ini를 엽니다.
    2. GoldenDeviceHardwareIds 배열에서 OpenThread 그룹 업데이트 기기의 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']}
  5. 자동 DUT 모드를 사용 설정합니다.

새로운 참조 플랫폼의 역할 수행

DUT의 직렬 포트가 올바른 직렬 포트에서 작동하지 않는 경우 기기가 제대로 반응하지 않을 때 재설정 (재설정 후 3~6초 이내에 읽을 수 없는 코드 출력), OpenThread THCI는 테스트에서 기기를 새 플랫폼으로 처리하도록 맞춤설정할 수 있습니다. 하네스.

예를 들어 Nordic Semiconductor의 경우 THCI를 nRF52840 플랫폼:

  1. GRL 테스트 하네스가 열려 있으면 닫습니다.
  2. /tools/harness-thci/OpenThread.py 수정 타겟 기기의 UART 특성에 기반합니다 수정사항은 차이가 있습니다. Nordic nRF52840 플랫폼의 경우:

    1. OpenThread.py 파일의 이름을 nRF52840.py로 바꿉니다.
    2. 처음 3개의 'OpenThread' 항목 변경 'nRF52840'으로 변환:

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. 직렬 포트 매개변수를 변경합니다.

      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. 절전 시간을 변경하여 읽을 수 없는 코드 출력의 영향을 제거합니다. 기기 초기화 후:

      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. 수정된 nRF52840.py 파일을 C:\GRL\Thread1.1\Thread_Harness\THCI에 복사

  4. 새 플랫폼 정보를 테스트 하네스에 추가합니다.

    1. 쉽게 구분할 수 있도록 png 또는 jpg 형식의 아이콘을 만드세요. C:\GRL\Thread1.1\Web\images에 복사합니다.
    2. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml을(를) 새 thumbnail 매개변수가 아이콘 파일인 DEVICE 섹션:

      <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. 기기를 Windows 시스템에 연결합니다.

  6. Python pySerial을 사용하여 기기 직렬 포트 하드웨어 식별자를 찾습니다. 모듈:

    1. pySerial 설치 일종의 장치입니다.
    2. Windows 명령줄에서 Python을 사용하여 모든 하드웨어 열거 기기에 연결된 장치에 대한 식별자 (VID 및 PID) 이 하나의 장치가 VID=1366의 식별자와 연결되어 있고 PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. 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']
  7. 골든 기기 목록 업데이트:

    1. C:\GRL\Thread1.1\Config\Configuration.ini를 엽니다.
    2. 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'}
  8. 자동 DUT 모드를 사용 설정합니다.

자동 DUT 모드 사용 설정

위의 두 구성 옵션 중 하나가 완료되면 다음을 수행합니다.

  1. GRL 테스트 하네스를 열면 이제 기기/포트가 새 참조로 표시됩니다. 있습니다.
  2. 지원됨 아래의 자동 DUT 기기 선택 사용 설정 체크박스를 선택합니다. 하드웨어 목록.
  3. 설정할 대상 기기/포트 아래에서 DUT로 설정 라디오 버튼을 선택합니다. DUT로 사용할 수 있습니다.
OT 인증 자동 DUT