Kiểm thử
Cách kiểm thử một tích hợp eKYC mà không cần khách hàng thật hay camera thật.
Chụp ảnh mà không chạy kiểm tra
Cả ba Mobile SDK đều nhận một cờ captureOnly. Khi bật, SDK chỉ chụp ảnh rồi dừng — không tải lên, không kiểm tra chất lượng, không OCR. Hữu ích khi đang xây giao diện, trước khi bạn muốn tốn API call.
// Android
val config = TakeNIDConfig(captureOnly = true)// iOS
let config = CESTakeNidConfig(captureOnly: true)// Flutter
final config = TakeNIDConfig(captureOnly: true);→ Tổng quan Mobile SDK § Tùy chọn chụp ảnh
Chạy từ fixture, không cần camera
API nhận một image_id và không quan tâm ảnh đến từ đâu. Tải lên một bộ ảnh fixture một lần, rồi tái sử dụng các ID đó cho mọi lần chạy test.
# Tải lên một lần
curl -X POST '<BASE_URL>/v1/images' \
-H 'Authorization: ATV <ACCESS_ID>:<SIGNATURE>' \
-H 'X-TV-Timestamp: <TIMESTAMP>' \
-F 'file=@"fixtures/nid-front.jpg"' \
-F 'label="id_card.vn.national_id.front"'
# Tái sử dụng image_id cho mọi test caseCách này chạy toàn bộ luồng Onboard một khách hàng mới từ command line.
Bộ fixture bạn cần
Để kiểm thử các nhánh thất bại, bạn cần những ảnh cố tình xấu, không chỉ ảnh tốt:
| Fixture | Kết quả mong đợi |
|---|---|
| Ảnh sạch | Đường đi thành công. Mong đợi verdict: good. |
| Bị mờ | Mong đợi not_qualified hoặc image1_not_qualified. |
| Chói lóa trên số ID | Mong đợi image1_glare — kiểm tra ứng dụng của bạn yêu cầu chụp lại đúng mặt. |
| Bản photocopy | Mong đợi photocopied. |
| Hai thẻ trong một khung hình | Mong đợi multicard_image. |
| Thẻ được chụp lại từ màn hình | Mong đợi non_liveness ở bước kiểm tra giả mạo. |
| Selfie có nhiều người | Mong đợi image_has_multiple_faces. |
| Selfie có khuôn mặt bị che | Mong đợi occluded_face. |
| Selfie của người khác | Mong đợi unmatched ở So sánh khuôn mặt. |
Kiểm thử các lỗi API
Một số mã lỗi có thể kích hoạt mà không cần ảnh đặc biệt:
| Mã | Cách kích hoạt |
|---|---|
4001001 | Gửi một X-TV-Timestamp đã hết hạn. |
401100 | Ký bằng sai Access Key. |
4041000 | Truyền một image_id không tồn tại. |
4131000 | Tải lên một ảnh vượt quá 15MB. |
4151000 | Tải lên một file không phải JPG hoặc PNG. |
2001026 | Truyền cùng một image_id cho cả image1 và image2 vào So sánh khuôn mặt. |
2001003 | Truyền một ảnh không có khuôn mặt vào So sánh khuôn mặt. |
→ Mã lỗi
Những lỗi dễ mắc phải
WARNING
HTTP 200 không có nghĩa là đạt. Mọi endpoint đều trả về 200 khi request đã được xử lý, kể cả khi kiểm tra nghiệp vụ thất bại. Một bài test chỉ kiểm tra status code vẫn sẽ pass ngay cả khi verdict là photocopied. Luôn kiểm tra qua success, rồi data.status, rồi đến verdict.
WARNING
Không kiểm thử bằng ảnh CCCD thật của đồng nghiệp hay người quen. Đó là dữ liệu danh tính thật, và ảnh đã tải lên sẽ tồn tại lâu dài trên nền tảng. Hãy dùng các thẻ mẫu do CAKE cung cấp.
index_faces_sync ghi vào một collection thật. Trên một tenant dùng chung, hãy xóa những gì bạn đã lập chỉ mục sau đó — nếu không, lần kiểm tra trùng lặp tiếp theo sẽ khớp với chính dữ liệu test của bạn.
Bước tiếp theo
- Bắt đầu nhanh — lần chạy đầu tiên, với cURL
- Mã lỗi — bảng mã đầy đủ
- Onboard một khách hàng mới — luồng để kiểm thử