Trang này hướng dẫn cách thiết lập và chạy các bài kiểm thử Android 16 QPR2 và Android 17 phía máy chủ của Trình xác minh CTS (CTS-V). Có hai loại kiểm thử phía máy chủ: kiểm thử nhiều thiết bị (được giới thiệu trước Android 17) và kiểm thử tương tác (mới trong Android 17):
- Kiểm thử nhiều thiết bị là các kiểm thử hoàn toàn tự động.
- Kiểm thử tương tác là kiểm thử bán tự động, yêu cầu bạn thực hiện một số bước thủ công trên thiết bị được kiểm thử (DUT).
Ngoài các bài kiểm thử tương tác mới, các bài kiểm thử độ chính xác của dải tần thủ công và bài kiểm thử viễn thông hiện là các bài kiểm thử nhiều thiết bị phía máy chủ và bắt buộc phải có bài kiểm thử kết nối Wi-Fi.
Thiết lập kiểm thử phía máy chủ lưu trữ
Hãy làm theo các bước sau để thiết lập kiểm thử phía máy chủ (kiểm thử nhiều thiết bị cần thiết lập thêm):
Xác minh rằng máy tính của bạn đáp ứng yêu cầu về hệ điều hành cho CTS.
Làm theo bước 2 và 5 của phần Cài đặt phần mềm cho máy tính để cài đặt và xác minh rằng adb, AAPT2 và Python đã được cài đặt đúng cách trên máy tính của bạn.
Phiên bản Python trên máy tính phải từ 3.11 trở lên. Để xác định phiên bản Python, hãy chạy
python3 --version. Nếu phiên bản thấp hơn 3.11, hãy cài đặt bản phát hành Python chính thức mới nhất. Để biết thông tin chi tiết, hãy xem phần Tải xuống củapython.org.Một số chương trình kiểm thử yêu cầu máy chủ lưu trữ phải có mô-đun
venvcủa Python. Trên các hệ thống Debian và Ubuntu, mô-đun này có thể không được cài đặt theo mặc định. Để xác định xem phiên bản Python dành cho máy tính có mô-đunvenvhay không, hãy chạypython3 -m venv venv. Nếu lệnh này không thành công, thông báo lỗi sẽ xuất hiện. Làm theo lời nhắc để cài đặt góipython3.x-venv.
Nếu bạn chỉ chạy các kiểm thử tương tác phía máy chủ lưu trữ, hãy chuyển đến phần Chạy kiểm thử phía máy chủ lưu trữ. Tuy nhiên, nếu bạn muốn chạy kiểm thử nhiều thiết bị, hãy chuyển sang phần Thiết lập kiểm thử nhiều thiết bị phía máy chủ.
Thiết lập kiểm thử nhiều thiết bị phía máy chủ lưu trữ
Hãy làm theo các bước sau để thiết lập kiểm thử nhiều thiết bị phía máy chủ:
Xác minh rằng máy tính của bạn đáp ứng các yêu cầu về hệ điều hành cho CTS.
Làm theo bước 2 và 5 của phần Cài đặt phần mềm cho máy tính để cài đặt và xác minh rằng adb, AAPT2 và Python đã được cài đặt đúng cách trên máy tính của bạn.
Phiên bản Python trên máy tính phải từ 3.11 trở lên. Để xác định phiên bản Python, hãy chạy
python3 --version. Nếu phiên bản thấp hơn 3.11, hãy cài đặt bản phát hành Python chính thức mới nhất. Để biết thông tin chi tiết, hãy xem phần Tải xuống củapython.org.- Một số chương trình kiểm thử yêu cầu máy chủ lưu trữ phải có mô-đun
venvcủa Python. Trên các hệ thống Debian và Ubuntu, mô-đun này có thể không được cài đặt theo mặc định. Để xác định xem phiên bản Python dành cho máy tính có mô-đunvenvhay không, hãy chạypython3 -m venv venv. Nếu lệnh này không thành công, thông báo lỗi sẽ xuất hiện. Làm theo lời nhắc để cài đặt góipython3.x-venv.
- Một số chương trình kiểm thử yêu cầu máy chủ lưu trữ phải có mô-đun
Chuẩn bị hai DUT phù hợp, mỗi DUT đều được thiết lập CTS-V.
- Để biết thông tin chi tiết về cách thiết lập DUT, hãy xem phần Thiết lập DUT.
- Để biết thông tin chi tiết về cách thiết lập CTS-V, hãy xem phần Thiết lập.
Chuyển đến phần thiết lập cho loại thử nghiệm của bạn:
- Đối với các thử nghiệm NFC, hãy chuyển đến phần Thiết lập thử nghiệm NFC.
- Đối với các bài kiểm tra kết nối điểm truy cập Wi-Fi, hãy chuyển đến phần Thiết lập bài kiểm tra kết nối điểm truy cập Wi-Fi.
- Đối với các bài kiểm thử độ chính xác của tính năng đo khoảng cách, hãy chuyển đến phần Thiết lập bài kiểm thử độ chính xác của tính năng đo khoảng cách.
- Để kiểm thử mô-đun CDM, hãy chuyển đến phần Thiết lập quy trình kiểm thử tiêu chuẩn trên hai thiết bị, sau đó chuyển đến phần Thiết lập quy trình kiểm thử CDM.
Nếu thử nghiệm của bạn không có trong danh sách này, hãy chuyển sang phần Thiết lập thử nghiệm hai thiết bị tiêu chuẩn.
Thiết lập thử nghiệm NFC
Các bài kiểm thử NFC sử dụng một DUT và một chip NFC PN532.
Cách thiết lập thử nghiệm NFC:
- Mua một chip NFC PN532. Bạn nên dùng All-In-One PN532.
- Trên DUT, hãy chuyển đến ứng dụng Cài đặt.
- Bật NFC.
Đặt chip NFC:
Đối với điện thoại, hãy đặt đầu đọc NFC của DUT như trong Hình 1:

Hình 1. Vị trí chip NFC.
Đối với các loại thiết bị khác, hãy đặt thẻ bên cạnh ăng-ten NFC của thiết bị.
Gắn chip NFC PN532 vào máy trạm thử nghiệm bằng cáp USB.
Thiết lập thử nghiệm kết nối điểm truy cập Wi-Fi
Các bài kiểm tra kết nối điểm truy cập Wi-Fi (CtsWifiConnectionTests) kiểm tra khả năng kết nối giữa DUT và AP. Bạn có thể thiết lập các thử nghiệm này theo hai cách sau:
- Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V.
- Cách 2: Thiết lập điểm truy cập (AP) có thể lập trình.
Đối với Android 17, bạn nên chọn phương án 2, nhưng không bắt buộc. Hai phần sau đây giải thích từng lựa chọn.
Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V
Lựa chọn 1 yêu cầu một DUT Android trong vùng phủ sóng của mạng Wi-Fi. Nếu DUT nằm trong hộp chắn và không thể kết nối với mạng Wi-Fi, hãy lấy DUT ra khỏi hộp chắn.
Cách 2: Thiết lập AP có thể lập trình
Cách thiết lập AP có thể lập trình cho các bài kiểm thử kết nối Wi-Fi:
Mua Banana Pi R3 AP và thiết lập. Để biết thông tin về cách mua và thiết lập AP Banana Pi R3, hãy xem bài viết Thiết lập AP Banana Pi BPI-R3.
(Không bắt buộc) Nếu không có hộp chắn, bạn nên dùng hộp chắn JTP-SR101. Mua hộp này bằng cách sử dụng thông tin sau:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, China
Người liên hệ: Forest Pan
Email: forest.pan@jtpmak.cn
Điện thoại (Trung Quốc): +86 18676993556
Kết nối DUT và AP với máy chủ rồi đặt vào hộp chắn RF. DUT và AP phải cách nhau ít nhất 10 cm. Hình 2 cho thấy cấu hình này:

Hình 2. DUT và AP trong hộp chắn.
Sử dụng SSH để xác minh rằng máy chủ có thể truy cập vào AP.
Thiết lập các bài kiểm tra độ chính xác của tính năng đo khoảng cách
Cách thiết lập thử nghiệm độ chính xác của tính năng đo khoảng cách:
Đặt hai DUT Android giống nhau cách nhau 1 mét, ở cùng độ cao, có tầm nhìn thẳng và mặt sau của mỗi thiết bị hướng vào nhau. Hình 3 cho thấy hướng này:

Hình 3. Hướng của thiết bị.
Kết nối cả hai thiết bị với máy tính bằng cáp USB.
Thiết lập quy trình kiểm thử tiêu chuẩn trên hai thiết bị
Đối với chế độ thiết lập mặc định cho hai thiết bị:
Đặt hai DUT Android phù hợp cách nhau khoảng 20 cm.
Nên làm: Đặt cả hai thiết bị vào hộp chắn sóng. Hộp chắn giúp cải thiện độ ổn định của quy trình kiểm thử và giúp bạn dễ dàng gỡ lỗi khi kiểm thử không thành công.
Đối với các bài kiểm tra viễn thông, mỗi DUT phải có thẻ SIM và tín hiệu di động. Nếu DUT nằm trong hộp chắn, thì tín hiệu di động phải được ghép nối vào hộp. Nếu không, hãy di chuyển các thiết bị ra khỏi hộp chắn.
Không bắt buộc: Thiết lập trình phân tích gói dữ liệu OTA để gỡ lỗi qua Wi-Fi.
Thiết lập thử nghiệm CDM
Trường hợp kiểm thử test_permissions_sync có hành vi khác nhau tuỳ thuộc vào loại bản dựng của thiết bị mà kiểm thử được thực thi. Điều quan trọng là cả bản dựng có thể gỡ lỗi (userdebug hoặc eng) và bản dựng không thể gỡ lỗi (user) đều được OEM kiểm thử và các bài kiểm thử đều đạt cho cả hai bản dựng.
Miễn
Điều khoản CDD về việc triển khai API đồng bộ hoá quyền chỉ yêu cầu API này có thể chuyển dữ liệu thành công giữa các thiết bị qua một kênh bảo mật. Vì việc triển khai kênh bảo mật không phải là yêu cầu tuân thủ CDD, nên bạn có thể bỏ qua thử nghiệm này trên các bản dựng không thể gỡ lỗi (người dùng), nhưng chỉ khi bạn muốn chọn không hỗ trợ tính năng đồng bộ hoá quyền CDM.
Các thử nghiệm phải vượt qua các bản dựng có thể gỡ lỗi mà không có ngoại lệ.
Điều kiện tiên quyết để kiểm thử trên các bản dựng không thể gỡ lỗi
Nếu bạn không được miễn, hãy xác minh rằng bạn đáp ứng các điều kiện tiên quyết sau đây.
Kênh bảo mật sử dụng AVF (AttestationVerificationFramework) để xác minh độ tin cậy của phần cứng. Chứng thực do cả hai bên tạo ra chứa một số thông tin về bản thân họ để xác minh rằng không có bất kỳ sự thay đổi trái phép nào trong hệ thống của họ. AVF kiểm tra các trạng thái sau trong quá trình xác minh:
Thiết bị có quyền truy cập Internet
Thiết bị sử dụng Xác minh quy trình khởi động và bản dựng được ký bằng khoá phát hành (không phải khoá phát triển)
Trình tải khởi động của thiết bị đã bị khoá. Để biết thêm thông tin, hãy xem phần khoá trình tải khởi động.
Phiên bản hệ điều hành, bản vá khởi động chính và bản vá nhà cung cấp chính đều được phát hành trong vòng 12 tháng. Đừng sử dụng bản dựng cũ hơn một năm.
Quy trình chứng thực thiết bị được hỗ trợ bởi một trong các chứng chỉ gốc được nhà cung cấp phê duyệt. Chỉ định chứng chỉ gốc đáng tin cậy trong lớp phủ tài nguyên
vendor_required_attestation_certificates.xml.
Chạy kiểm thử phía máy chủ lưu trữ
Một số thử nghiệm trên nhiều thiết bị, chẳng hạn như thử nghiệm NFC, cần được thiết lập thêm. Đối với các thử nghiệm yêu cầu thiết lập thêm, mỗi thử nghiệm sẽ được chạy riêng. Đối với các chương trình kiểm thử không yêu cầu thiết lập thêm, bạn có thể chạy các chương trình kiểm thử đó trong một nhóm.
Trên máy trạm thử nghiệm, hãy chạy bảng điều khiển
cts-v-hosttừ thư mục nơi gói zip CTS-V được giải nén:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedTrong ứng dụng CTS-V trên DUT, hãy nhấp vào Host-side Tests (Kiểm thử phía máy chủ). Hình 4 cho thấy các bài kiểm thử phía máy chủ trong ứng dụng CTS-V:
Hình 4. Các bài kiểm thử phía máy chủ lưu trữ trong ứng dụng CTS-V.
Danh sách các mô-đun kiểm thử nhiều thiết bị phía máy chủ sẽ xuất hiện.
Trong bảng điều khiển máy chủ CTS-V, hãy dùng lệnh sau để chạy các chương trình kiểm thử nhiều thiết bị sử dụng chế độ thiết lập hai thiết bị tiêu chuẩn:
run cts-v-host-multidevice-defaultKết quả sẽ xuất hiện trong từng mô-đun kiểm thử trong ứng dụng CTS-V trên DUT. Các bài kiểm thử được đánh dấu màu xanh lục là đã vượt qua, các bài kiểm thử được đánh dấu màu đỏ là không vượt qua.
Hình 5 cho thấy kết quả mẫu của các bài kiểm thử CtsCompanionDeviceManager:
Hình 5. Kết quả kiểm thử nhiều thiết bị phía máy chủ trong ứng dụng CTS-V.
Trong bảng điều khiển máy chủ CTS-V, hãy dùng lệnh sau để chạy các bài kiểm thử tương tác:
run cts-v-host-interactiveKết quả sẽ xuất hiện trong từng mô-đun kiểm thử trong ứng dụng CTS-V trên DUT. Các bài kiểm thử được đánh dấu màu xanh lục là đã vượt qua, các bài kiểm thử được đánh dấu màu đỏ là không vượt qua.
Đối với mỗi chương trình kiểm thử cần thiết lập thêm, hãy chạy riêng chương trình kiểm thử đó bằng lệnh sau:
run cts-v-host -m test_module_nameVí dụ: để chạy các kiểm thử NFC, hãy dùng lệnh sau:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesKết quả sẽ xuất hiện trong từng mô-đun kiểm thử trong ứng dụng CTS-V trên DUT. Các bài kiểm thử được đánh dấu màu xanh lục là đã vượt qua, các bài kiểm thử được đánh dấu màu đỏ là không vượt qua.
Chạy kiểm tra kết nối điểm truy cập Wi-Fi
Bạn có thể chạy các bài kiểm tra kết nối điểm truy cập Wi-Fi theo hai cách sau:
- Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V.
- Cách 2: Thiết lập AP có thể lập trình.
Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V
Cách chạy kiểm thử kết nối AP Wi-Fi trên mạng Wi-Fi hiện có:
Chỉnh sửa tệp cấu hình của môi trường thử nghiệm (
WifiConnectionTestbed.yaml). Tệp này nằm trong thư mục giải nén CTS-Verifier. Ví dụ:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlThay đổi giá trị của các trường
wifi_ssidvàwifi_passwordthành SSID và mật khẩu của mạng Wi-Fi. Ví dụ sau đây cho thấy vị trí của các chế độ cài đặt này:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDTrong bảng điều khiển máy chủ CTS-V, hãy chạy lệnh sau:
run cts-v-host -m CtsWifiConnectionTests
Cách 2: Chạy bằng AP có thể lập trình
Cách chạy kiểm thử kết nối AP Wi-Fi trên AP có thể lập trình:
Chỉnh sửa tệp cấu hình của môi trường thử nghiệm (
WifiConnectionTestbed.yaml). Tệp này nằm trong thư mục giải nén CTS-Verifier. Ví dụ:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlThay đổi giá trị của
hostnamethành địa chỉ IP của AP, dựa trên chế độ cài đặt SSH cục bộ của bạn. Để xác định địa chỉ IP, hãy xem phần Tìm địa chỉ IP của điểm truy cập. Ví dụ sau đây cho thấy vị trí của chế độ cài đặthostname:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueTrong bảng điều khiển máy chủ CTS-V, hãy chạy lệnh sau:
run cts-v-host -m CtsWifiConnectionTests
Chạy kiểm thử phía máy chủ USB
Android 17 bao gồm các bài kiểm thử phía máy chủ CTS-V USB yêu cầu adb qua Wi-Fi để chạy.
Một số chương trình kiểm thử USB yêu cầu sử dụng máy chủ CTS-V để truy cập vào các SystemAPI có quyền mà ứng dụng CTS-V thông thường không thể truy cập. Các chương trình kiểm thử này không cần kết nối với máy tính và yêu cầu sử dụng adb qua Wi-Fi.
Bạn cần có các phụ kiện Type-C sau đây nếu DUT hỗ trợ báo cáo loại BC 1.2 của đối tác cổng hoặc hồ sơ nguồn USB trong UsbPort.java:
- Bộ sạc USB Type-C Power Delivery (PD)
- Cổng hạ lưu tiêu chuẩn (SDP) sạc pin USB 1.2 (BC 1.2). Các cổng này chỉ cung cấp 500 mA hoặc 900 mA cho DUT và thường có trên cổng USB của bộ chia bên ngoài.
- Cổng sạc USB BC 1.2 (CDP). Các cổng này có thể cung cấp dòng điện 1,5 A cho DUT và dữ liệu. Cổng Type-C trên máy tính xách tay hoặc máy tính có thể là CDP.
- Cổng sạc chuyên dụng (DCP) USB BC 1.2. Các cổng này có thể cung cấp dòng điện 1,5 A cho DUT mà không có dữ liệu. Bộ sạc USB Type-C PD trong danh sách này có thể là DCP.
Kết nối DUT bằng
adbqua Wi-Fi. Để biết thông tin chi tiết về cách thiết lập, hãy xem phần Kết nối với một thiết bị qua Wi-Fi.Ngắt kết nối thiết bị khỏi tất cả các kết nối USB. Quá trình kiểm thử sẽ không thành công nếu thiết bị được gắn vào bất kỳ máy chủ hoặc phụ kiện USB nào khi lệnh kiểm thử được chạy.
Chạy lệnh kiểm thử sau:
run cts-v-host -m CtsUsbTypecTestCases
Sau khi kiểm thử, kết quả sẽ xuất hiện trong ứng dụng CTS-V trong phần Host-side tests (Kiểm thử phía máy chủ lưu trữ) như trong các hình sau:
Hình 6. Kiểm thử USB phía máy chủ trong ứng dụng CTS-V.
Hình 7. Bộ CtsUsbTypecTestCases trong ứng dụng USB CTS-V phía máy chủ.
Khắc phục sự cố khi kiểm thử nhiều thiết bị
Phần này giúp bạn khắc phục các vấn đề thường gặp.
Không lấy được số điện thoại trong CtsTelecomTest
Nếu bạn nhận được thông báo lỗi Failed to get phone number for <serial>,
hãy làm theo các bước sau:
Xác minh rằng mỗi DUT đều đã lắp thẻ SIM.
Nếu lỗi vẫn tiếp diễn, thì thẻ SIM có thể không hỗ trợ tính năng tự động truy xuất số điện thoại. Trong trường hợp này, bạn phải cung cấp rõ số điện thoại trong lệnh.
Ví dụ: đối với DUT 1 (số sê-ri
17011FDEE0002N, số điện thoại555-0000) và DUT 2 (số sê-riR3CN90YNAR, số điện thoại555-1111), hãy thêm các đối số sau vào lệnhrun cts-v-host:--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
Máy chủ không phản hồi trong quá trình chạy CtsMultiDeviceGenericRangingAccuracyTests
Nếu bạn nhận được thông báo lỗi sau, thì ứng dụng kiểm thử có thể bị treo hoặc bị tắt bởi quy trình quản lý tiến trình nền dành riêng cho OEM trên một số thiết bị:
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Để giải quyết vấn đề này, hãy tắt các quy định hạn chế trong nền hoặc đưa các gói sau vào danh sách cho phép:
| Gói | Tên hiển thị |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
Khắc phục lỗi Không có phản hồi cho GetFirmwareVersion trong các bài kiểm tra NFC
Nếu bạn nhận được thông báo verify_firmware_version RuntimeError: No response
for GetFirmwareVersion trong khi chạy kiểm thử nhiều thiết bị, thì các kiểm thử không thể truy cập vào bảng NFC PN532.
Để khắc phục vấn đề này, hãy xác định đường dẫn nối tiếp mà bo mạch NFC PN532 sử dụng trên máy chủ của bạn, chẳng hạn như dev/ttyUSB1, sau đó chỉ định đường dẫn đó theo cách thủ công bằng đối số --module-arg trong bảng điều khiển:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
Khắc phục thông báo lỗi Giao dịch không thành công trong quá trình kiểm tra NFC
Nếu bạn nhận được thông báo Transaction failed, check device logs for more
information. cho tất cả các trường hợp kiểm thử NFC, thì có thể là do chip NFC của DUT không phát hiện được PN532.
Nếu bạn có nhiều thiết bị kết nối với máy chủ và một số thiết bị không có PN532 đặt ở trên cùng, thì có thể bạn đã chọn sai DUT. Để biết thêm thông tin, hãy xem phần Thiết lập kiểm thử NFC.
Để khắc phục vấn đề này, hãy làm theo một trong những cách sau:
Đặt đúng số sê-ri của DUT trong lệnh kiểm thử phía máy chủ bằng cách sử dụng cờ
-s.Ngắt kết nối tất cả thiết bị không phải DUT khỏi máy chủ.
Trường hợp kiểm thử CDM test_permissions_sync bị bỏ qua
Nếu thử nghiệm đang chạy trên các thiết bị không thể gỡ lỗi, hãy xem bạn có được miễn trừ hay không. Nếu không, hãy xác minh rằng cả hai thiết bị đều đáp ứng các điều kiện tiên quyết.