Để tự động hoá quy trình kiểm thử giấy chứng nhận, bạn phải thiết lập thêm.
Tất cả các bước cài đặt và định cấu hình dưới đây đều diễn ra trên máy chạy Windows chạy phần mềm Khai thác kiểm tra Grl. Tải xuống và cài đặt phiên bản mới nhất Khai thác kiểm tra luồng GRL trước đây đang tiếp tục.
Sau khi cài đặt, có 2 phương thức tự động hoá cho thiết bị đang được kiểm thử (DUT):
Công cụ tự động hoá khai thác OpenThread
Cài đặt
- Cài đặt phần mềm sau:
- Python
- Git cho Windows (rất nên hỗ trợ Bash)
- Sao chép kho lưu trữ OpenThread để lấy các tập lệnh tự động hoá:
git clone https://github.com/openthread/openthread
- Các yêu cầu về 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 tệp cấu hình cho công cụ tự động hoá:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Cập nhật tệp cấu hình mới đó theo các hướng dẫn trong .
- Thêm tham số sau vào tệp cấu hình Khai thác kiểm thử, có tại
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
Giá đỡ thử nghiệm kết hợp
Công cụ tự động hoá khai thác cũng hỗ trợ các thử nghiệm hỗn hợp, trong đó tham chiếu thiết bị được sử dụng trong mỗi trường hợp kiểm thử là một tập hợp thiết bị kết hợp thay vì tất cả cùng một thiết bị. Ví dụ: thay vì sử dụng bo mạch 32 TI CC2538 đang chạy OpenThread cho tất cả các trường hợp kiểm thử, bạn có thể kết hợp và so khớp giữa cả 4 luồng thiết bị tham chiếu cho từng trường hợp kiểm thử mong muốn.
Để sử dụng thử nghiệm hỗn hợp, cần có cấu hình bổ sung:
- Thêm tham số bổ sung sau đây vào cấu hình Khai thác kiểm thử
tệp, được tìm thấy 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ừ Thread
Nhóm.
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 để sử dụng cho từng vai trò trong mỗi trường hợp kiểm thử.
Bạn có thể sửa đổi tệp cấu hình cấu trúc liên kết do Nhóm Thread cung cấp cho các cấu hình giường hỗn hợp khác, nhưng để chứng nhận chính thức thì bản gốc .
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 | Thiết bị tham chiếu khai thác kiểm thử |
---|---|
ARM |
ARM: NXP FRDM-K64F với Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale): USB-KW24D512 Đôngles |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: EM358x USB Stick |
Mỗi mục nhập trường hợp kiểm thử 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 và được định dạng thành các cặp role:device
như sau:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Chế độ DUT tự động khai thác khai thác
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 thực ngăn xếp tham chiếu Thread các nhà cung cấp khác.
OpenThread cung cấp một ví dụ Giao diện đơn vị kiểm soát của máy chủ lưu trữ luồng (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ể 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 của 115200 8-N-1, và thiết bị sẽ 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), sau đó 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 kiểm thử.
- Đóng Dây kiểm tra GRN, nếu dây đang mở.
- Gắn thiết bị vào máy chạy Windows.
- Tìm giá trị nhận dạng phần cứng cổng nối tiếp của thiết bị bằng mã pySerial Python
mô-đun:
- Cài đặt pySerial trên máy tính chạy Windows.
- Sử dụng Python trên dòng lệnh của Windows để liệt kê tất cả phần cứng
mã nhận dạng (VID và PID) cho các thiết bị kết nối với máy. Trong phần này
một thiết bị được kết nối với mã nhận dạng là 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. Cho
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ế độ 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ổ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 thiết bị thực đặt lại (xuất ra mã không đọc được trong vòng 3-6 giây kể từ khi đặt lại), sau đó chọn OpenThread THCI có thể được tuỳ chỉnh để coi thiết bị là một nền tảng mới trong công cụ Thử nghiệm Dây đeo.
Ví dụ: để tuỳ chỉnh THCI bằng công cụ Bắc Âu bán dẫn Nền tảng nRF52840:
- Đóng Dây kiểm tra GRN, nếu dây đ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. Nội dung sửa đổi có thể khác nhau giữa các thiết bị mục tiêu. Trong trường hợp nền tảng nRF52840 của Bắc Âu:- Đổi tên tệp
OpenThread.py
thànhnRF52840.py
. Thay đổi 3 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 tham 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 kết quả đầ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)
- Đổ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 mới về nền tảng vào Khai thác kiểm thử:
- Tạo biểu tượng (ở định dạng png hoặc jpg) để dễ phân biệt hơn
nền tảng của bạn rồi sao chép vào
C:\GRL\Thread1.1\Web\images
. Cập nhật
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
bằng một PhầnDEVICE
, 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>
- Tạo biểu tượng (ở định dạng png hoặc jpg) để dễ phân biệt hơn
nền tảng của bạn rồi sao chép vào
Gắn thiết bị vào máy chạy Windows.
Tìm giá trị nhận dạng phần cứng cổng nối tiếp của thiết bị bằng mã pySerial Python mô-đun:
- Cài đặt pySerial trên máy tính chạy Windows.
- Sử dụng Python trên dòng lệnh của Windows để liệt kê tất cả phần cứng
mã nhận dạng (VID và PID) cho các thiết bị kết nối với máy. Trong phần này
một thiết bị được kết nối với mã nhận dạng 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. Cho
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 trong 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ế độ DUT tự động
Sau khi hoàn tất một trong hai tuỳ chọn cấu hình ở trên:
- Mở Khai thác kiểm tra Grl, thiết bị/cổng giờ đây xuất hiện dưới dạng tham chiếu mới thiết bị.
- Chọn hộp kiểm Bật lựa chọn thiết bị DUT tự động bên dưới hộp Được hỗ trợ Danh sách phần cứng.
- Chọn nút chọn Set as DUT (Đặt làm DUT) bên dưới thiết bị/cổng mục tiêu để đặt thiết bị là DUT.