Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Thiết lập tự động hóa chứng nhận

Để tự động hóa các bài kiểm tra chứng nhận, cần phải thiết lập bổ sung.

Tất cả các bước cài đặt và cấu hình bên dưới diễn ra trên máy Windows chạy phần mềm GRL Test Harness. Tải xuống và cài đặt Khai thác kiểm tra luồng GRL mới nhất trước khi tiếp tục.

Sau khi cài đặt, có hai phương pháp tự động hóa cho thiết bị đang thử nghiệm (DUT):

  1. Công cụ tự động hóa khai thác OpenThread
  2. Kiểm tra khai thác chế độ DUT tự động

Công cụ tự động hóa khai thác OpenThread

Tải về

  1. Cài đặt phần mềm sau:
    • Python 2.7
    • Git dành cho Windows (rất nên hỗ trợ Bash)
  2. Sao chép kho lưu trữ OpenThread để lấy các tập lệnh tự động hóa:
    git clone https://github.com/openthread/openthread
    
  3. Yêu cầu cài đặt Python:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Cài đặt cả Google ChromeChromeDriver .

Cấu hình

  1. Tạo tệp cấu hình cho công cụ tự động hóa:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Cập nhật tệp cấu hình mới đó theo hướng dẫn trong tệp.
  3. Thêm thông số sau vào tệp cấu hình Khai thác Kiểm tra, được tìm thấy tại C:\GRL\Thread1.1\Config\Configuration.ini :
    BrowserAutoNavigate = False

Hỗ trợ thử nghiệm hỗn hợp

Công cụ Tự động hóa Khai thác cũng hỗ trợ các nền thử nghiệm hỗn hợp, trong đó các thiết bị tham chiếu được sử dụng trong mỗi trường hợp thử nghiệm là một tập hợp các thiết bị hỗn hợp thay vì tất cả cùng một thiết bị. Ví dụ: thay vì sử dụng 32 bo mạch TI CC2538 chạy OpenThread cho tất cả các trường hợp thử nghiệm, bạn có thể trộn và kết hợp giữa tất cả bốn thiết bị tham chiếu Chủ đề cho mỗi trường hợp thử nghiệm như mong muốn.

Để sử dụng các tấm thử nghiệm hỗn hợp, cần có cấu hình bổ sung:

  1. Thêm tham số bổ sung sau vào tệp cấu hình Khai thác thử nghiệm, được tìm thấy tại C:\GRL\Thread1.1\Config\Configuration.ini :
    EnableDeviceSelection = True
  2. Tải xuống tệp cấu hình cấu trúc liên kết từ Nhóm Chủ đề . Thêm tệp này dưới dạng TopologyConfig.txt vào C:\GRL\Thread1.1\Thread_Harness\TestScripts . Tệp này nêu chi tiết thiết bị tham chiếu nào sẽ sử dụng cho từng vai trò trong mỗi trường hợp thử nghiệm.

Tệp cấu hình cấu trúc liên kết do Nhóm chủ đề cung cấp có thể được sửa đổi cho các cấu hình giường hỗn hợp khác, nhưng để được chứng nhận chính thức, cấu hình gốc phải được sử dụng.

Các giá trị hợp lệ để sử dụng cho các thiết bị tham chiếu trong tệp cấu hình cấu trúc liên kết là:

Giá trị trong tệp cấu hình cấu trúc liên kết Kiểm tra thiết bị tham chiếu khai thác
ARM ARM: NXP FRDM-K64F với Firefly 6LoWPAN Shield
NXP NXP (Freescale): USB-KW24D512 Dongles
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: Thanh USB EM358x

Mỗi mục nhập trường hợp kiểm tra trong tệp cấu hình cấu trúc liên kết phải nằm trên một dòng riêng biệt và được định dạng theo role:device cặp role:device như sau:

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

Kiểm tra khai thác chế độ DUT tự động

Phần mềm Khai thác Kiểm tra GRL cung cấp tính năng tự động khám phá nâng cao (Auto DUT) giúp tăng tốc quá trình xác nhận cho các nhà cung cấp ngăn xếp tham chiếu Chủ đề.

OpenThread cung cấp một ví dụ về Giao diện điều khiển máy chủ lưu trữ (THCI) cho phép Khai thác thử nghiệm kiểm soát thành phần hoặc sản phẩm của bạn như thể nó là một trong những nền tảng tham chiếu. Theo đặc điểm cổng nối tiếp của nền tảng cụ thể của bạn, DUT của bạn có thể:

Hoạt động như nền tảng tham chiếu OpenThread hiện có

Nếu cổng nối tiếp của DUT hoạt động theo cài đặt 115200 8-N-1 và thiết bị phản hồi chính xác sau mỗi lần đặt lại thiết bị vật lý (ví dụ: để xác nhận kết nối hợp lệ của thiết bị với máy Windows), thì nền tảng có thể sử dụng Công cụ OpenThread THCI. Công cụ này cho phép thiết bị hoạt động như nền tảng tham chiếu OpenThread trong quá trình thử nghiệm.

  1. Đóng Khai thác Kiểm tra GRL, nếu nó đang mở.
  2. Gắn thiết bị vào máy Windows.
  3. Tìm mã định danh phần cứng cổng nối tiếp thiết bị, sử dụng mô-đun Python pySerial:
    1. Cài đặt pySerial trên máy Windows.
    2. Sử dụng Python trên dòng lệnh Windows để liệt kê tất cả các số nhận dạng phần cứng (VID và PID) cho các thiết bị được kết nối với máy. Trong đầu ra này, một thiết bị được kết nối với số nhận dạng VID = 1366 và PID = 1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Nếu bạn đã biết cổng COM, bạn có thể sử dụng một lệnh khác. Ví dụ, nếu cổng COM là 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. Cập nhật danh sách Thiết bị Vàng:
    1. Mở C:\GRL\Thread1.1\Config\Configuration.ini .
    2. Cập nhật nhóm OpenThread trong mảng GoldenDeviceHardwareIds với VID và PID của (các) thiết bị:
      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. Bật chế độ DUT tự động .

Hoạt động như một nền tảng tham chiếu mới

Nếu cổng nối tiếp của DUT không hoạt động theo cài đặt cổng nối tiếp thích hợp hoặc thiết bị không phản hồi chính xác sau khi đặt lại thiết bị vật lý (xuất mã không đọc được trong vòng 3-6 giây sau khi đặt lại), thì OpenThread THCI có thể được tùy chỉnh để xử lý thiết bị như một nền tảng mới trong Khai thác thử nghiệm.

Ví dụ: để tùy chỉnh THCI bằng cách sử dụng nền tảng Nordic Semiconductor nRF52840 :

  1. Đóng Khai thác kiểm tra GRL, nếu nó đang mở.
  2. Sửa đổi /tools/harness-thci/OpenThread.py dựa trên các đặc điểm UART của thiết bị đích. Các sửa đổi có thể khác nhau giữa các thiết bị mục tiêu. Trong trường hợp của nền tảng Nordic nRF52840:

    1. Đổi tên tệp OpenThread.py thành nRF52840.py .
    2. Thay đổi ba lần xuất hiện đầu tiên của "OpenThread" thành "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Thay đổi thông số cổng nối tiếp:

      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. Thay đổi thời gian ngủ để loại bỏ tác động của đầu ra mã không đọc được sau khi đặt lại thiết bị:

      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. Sao chép tệp nRF52840.py đã sửa đổi vào C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Thêm thông tin nền tảng mới vào Khai thác thử nghiệm:

    1. Tạo một biểu tượng (ở định dạng png hoặc jpg) để giúp bạn dễ dàng phân biệt nền tảng của mình hơn và sao chép nó vào C:\GRL\Thread1.1\Web\images .
    2. Cập nhật C:\GRL\Thread1.1\Web\data\deviceInputFields.xml với phần DEVICE mới, trong đó tham số thumbnail là tệp biểu tượng:

      <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. Gắn thiết bị vào máy Windows.

  6. Tìm mã định danh phần cứng cổng nối tiếp thiết bị, sử dụng mô-đun Python pySerial:

    1. Cài đặt pySerial trên máy Windows.
    2. Sử dụng Python trên dòng lệnh Windows để liệt kê tất cả các số nhận dạng phần cứng (VID và PID) cho các thiết bị được kết nối với máy. Trong đầu ra này, một thiết bị được kết nối với số nhận dạng VID = 1366 và PID = 1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Nếu bạn đã biết cổng COM, bạn có thể sử dụng một lệnh khác. Ví dụ, nếu cổng COM là 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. Cập nhật danh sách Thiết bị Vàng:

    1. Mở C:\GRL\Thread1.1\Config\Configuration.ini .
    2. Thêm một nhóm nền tảng mới trong mảng GoldenDeviceHardwareIds với VID và PID của thiết bị:
      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. Bật chế độ DUT tự động .

Bật chế độ DUT tự động

Sau khi một trong hai tùy chọn cấu hình trên hoàn tất:

  1. Mở GRL Test Harness, thiết bị / cổng bây giờ xuất hiện như một thiết bị tham chiếu mới.
  2. Chọn hộp kiểm Bật tính năng chọn thiết bị tự động DUT bên dưới danh sách Phần cứng được hỗ trợ.
  3. Chọn nút radio Đặt làm DUT bên dưới thiết bị / cổng đích để đặt thiết bị làm DUT.
Chứng nhận OT tự động DUT