Để tự động hóa các bài kiểm tra cấp giấy chứng nhận, bạn cần thiết lập thêm.
Tất cả các bước cài đặt và định cấu hình bên dưới xảy ra trên máy Windows chạy phần mềm Kiểm tra GRL. Tải và cài đặt Kiểm tra chuỗi 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 được thử nghiệm (DUT):
Công cụ tự động hóa chuỗi chủ đề OpenThread
Cài đặt
- Cài đặt phần mềm sau:
- Python
- Git cho Windows (Bạn nên hỗ trợ Ash)
- Sao chép kho lưu trữ OpenThread để nhận tập lệnh tự động hóa:
git clone https://github.com/openthread/openthread
- Yêu cầu cài đặt Python:
cd tools/harness-automation
pip install -r requirements.txt
- Cài đặt cả Google Chrome và ChromeDriver.
Định cấu hình
- Tạo một tệp cấu hình cho công cụ tự động:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Cập nhật tệp cấu hình mới đó theo hướng dẫn trong tệp.
- Thêm thông số sau vào tệp cấu hình Kiểm tra độ mạnh, đượ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 sức mạnh cũng hỗ trợ các thử nghiệm hỗn hợp, trong đó các thiết bị tham chiếu được dùng trong mỗi trường hợp thử nghiệm là một tập hợp các thiết bị thay vì tất cả các thiết bị giống nhau. Ví dụ: thay vì sử dụng 32 bảng TI CC2538 chạy OpenThread cho tất cả các trường hợp thử nghiệm, bạn có thể kết hợp và khớp giữa tất cả 4 thiết bị tham chiếu Thread cho từng trường hợp thử nghiệm như mong muốn.
Để sử dụng thử nghiệm hỗn hợp, bạn cần phải định cấu hình thêm:
- Thêm thông số bổ sung sau vào tệp cấu hình Kiểm tra dây chuyền, có tại
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
- Tải tệp cấu hình cấu trúc liên kết xuống từ Nhóm
chuỗi.
Thêm tệp này dưới dạng
TopologyConfig.txt
vàoC:\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.
Bạn có thể sửa đổi tệp cấu hình cấu trúc liên kết do Nhóm chuỗi cung cấp cho các cấu hình giường hỗn hợp khác, nhưng để sử dụng chứng nhận chính thức, bạn phải sử dụng cấu hình gốc.
Các giá trị hợp lệ để sử dụng cho 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 | Thiết bị tham chiếu thử nghiệm |
---|---|
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 thử nghiệm 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 và được định dạng trong các cặp role:device
như sau:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Kiểm tra chế độ Tự động DUT ở chế độ Tự động
Phần mềm GRL Test Harness 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 thực cho các nhà cung cấp ngăn xếp tham chiếu chuỗi.
OpenThread cung cấp một ví dụ Giao diện bộ điều khiển máy chủ lưu trữ (THCI) cho phép Kiểm tra quy trình kiểm soát thành phần hoặc sản phẩm của bạn như thể đây là một trong các 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ể, DUT của bạn có thể:
Đóng vai trò là 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 trong phần 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ị thực (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ị đóng vai trò là nền tảng tham chiếu OpenThread trong quá trình thử nghiệm.
- Đóng dây Kiểm tra GRL (nếu đang mở).
- Đính kèm thiết bị vào máy Windows.
- Tìm giá trị nhận dạng phần cứng của cổng nối tiếp thiết bị, bằng mô-đun
Python pySerial:
- Cài đặt pySerial trên máy Windows.
- Sử dụng Python trên dòng lệnh Windows để liệt kê tất cả giá trị nhận dạng phần cứng (VID và PID) cho các thiết bị đã kết nối với máy. Trong dữ liệu đầu ra này, một thiết bị được kết nối với một giá trị nhận dạng của VID=1366 và
PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Nếu đã 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']
- Cập nhật danh sách Thiết bị Vàng:
- Mở
C:\GRL\Thread1.1\Config\Configuration.ini
. - Cập nhật nhóm OpenThread trong mảng
GoldenDeviceHardwareIds
bằng 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']}
- Mở
- Bật chế độ Tự động ghi nhớ.
Đóng vai trò là 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 trong chế độ 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ị thực (bạn có thể đọc mã trong vòng 3-6 giây sau khi đặt lại), thì OpenThread THCI có thể được tùy chỉnh để coi thiết bị là một nền tảng mới trong tính năng Kiểm tra độ mạnh.
Ví dụ: để tùy chỉnh THCI bằng nền tảng Nordic Semiconductor nRF52840:
- Đóng dây Kiểm tra GRL (nếu đang mở).
Sửa đổi
/tools/harness-thci/OpenThread.py
dựa trên các đặc điểm UART của thiết bị mục tiêu. Các tùy chọn sửa đổi có thể khác nhau giữa các thiết bị mục tiêu. Đối với nền tảng Nordic nRF52840:- Đổi tên tệp
OpenThread.py
thànhnRF52840.py
. 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):
Thay đổi các 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()
Thay đổi thời gian ngủ để loại bỏ tác động của mã đầu ra 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)
- Đổi tên tệp
Sao chép tệp
nRF52840.py
đã sửa đổi vàoC:\GRL\Thread1.1\Thread_Harness\THCI
Thêm thông tin nền tảng mới vào tính năng Kiểm tra kết hợp:
- Hãy 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 bạn và sao chép sang
C:\GRL\Thread1.1\Web\images
. Cập nhật
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
bằng một phầnDEVICE
mới, trong đó thông 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>
- Hãy 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 bạn và sao chép sang
Đính kèm thiết bị vào máy Windows.
Tìm giá trị nhận dạng phần cứng của cổng nối tiếp thiết bị, bằng mô-đun Python pySerial:
- Cài đặt pySerial trên máy Windows.
- Sử dụng Python trên dòng lệnh Windows để liệt kê tất cả giá trị nhận dạng phần cứng (VID và PID) cho các thiết bị đã kết nối với máy. Trong dữ liệu đầu ra này, một thiết bị được kết nối với một giá trị nhận dạng của VID=1366 và
PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Nếu đã 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']
Cập nhật danh sách Thiết bị Vàng:
- Mở
C:\GRL\Thread1.1\Config\Configuration.ini
. - Thêm một nhóm nền tảng mới vào mảng
GoldenDeviceHardwareIds
bằng 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'}
- Mở
Bật chế độ Tự động ghi nhớ
Sau khi hoàn tất một trong hai tùy chọn cấu hình nêu trên:
- Mở biểu tượng Kiểm tra GRL, thiết bị/cổng hiện xuất hiện dưới dạng một thiết bị tham chiếu mới.
- Chọn hộp đánh dấu Bật tự động Bộ nhớ DUT bên dưới danh sách Phần cứng được hỗ trợ.
- Chọn nút Đặt làm DUT bên dưới thiết bị/cổng đích để đặt thiết bị làm DUT.
