Mmaiqai.com
🔗 API Testing · Chương 3 · Mục 3.2

Test tích hợp giữa các service (service-to-service)

🎯 Mục tiêu học: hiểu rủi ro nằm ở "đường nối" giữa 2 service (nội bộ hoặc bên thứ 3) — nơi thường bị bỏ sót vì mỗi service khi test riêng đều báo PASS.

Ví dụ minh hoạ

Order Service (API chính)
   │  POST /v1/orders
   ├──► Inventory Service   (trừ tồn kho theo sku)
   └──► Payment Gateway     (xử lý thanh toán, service bên thứ 3)

Order Service phải gọi cả 2 service phụ thuộc trước khi trả kết quả cuối về client. Test tích hợp tập trung vào việc: nếu 1 trong 2 service phụ thuộc "có vấn đề", Order Service có xử lý đúng không.

Checklist test tích hợp service-to-service

Service phụ thuộc phản hồi chậm/timeout

Mã TCNội dungKỳ vọng
TC-INT-01Inventory Service không phản hồi trong thời gian chờ (timeout)Order Service phải có ngưỡng chờ (timeout) hợp lý, trả lỗi rõ ràng cho client — không treo vô thời hạn

Service phụ thuộc trả lỗi

Mã TCNội dungKỳ vọng
TC-INT-02Payment Gateway trả lỗi 500 hoặc từ chối giao dịchOrder Service rollback đúng phần đã xử lý (vd hoàn tồn kho đã trừ), không để đơn hàng ở trạng thái nửa vời

Service phụ thuộc sai hợp đồng dữ liệu

Mã TCNội dungKỳ vọng
TC-INT-03Inventory Service đổi cấu trúc response mà không báo trước (vd đổi tên field)Order Service phát hiện được sai hợp đồng thay vì crash âm thầm — liên quan Contract Testing (Chương 6)

Retry logic & idempotency giữa các service

Mã TCNội dungKỳ vọng
TC-INT-04Order Service tự động retry gọi Inventory Service khi timeout lần 1Lần retry không được trừ tồn kho 2 lần — Inventory Service cần hỗ trợ idempotency key

Ngưỡng timeout có hợp lý

Mã TCNội dungKỳ vọng
TC-INT-05Đo thời gian phản hồi thực tế của Payment Gateway trong điều kiện bình thườngNgưỡng timeout cấu hình phải lớn hơn đáng kể thời gian phản hồi bình thường, tránh fail oan

📌 Ghi nhớ

Test tích hợp không phải là test lại logic của service phụ thuộc (đó là việc của team sở hữu service đó) — mà là test cách service chính phản ứng khi service phụ thuộc "không như mong đợi" (chậm, lỗi, sai hợp đồng).

📖 Thuật ngữ Anh–Việt (mục này)

Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.

Thuật ngữ (EN)Nghĩa & ghi nhớ nhanh
Downstream serviceService phụ thuộc — service được gọi tới bởi service chính
Timeout thresholdNgưỡng thời gian chờ tối đa trước khi coi là thất bại
Retry logicCơ chế tự động gọi lại khi request thất bại
RollbackHoàn tác các thay đổi đã thực hiện khi có bước sau đó thất bại

📎 Nội dung do maiqai.com biên soạn — tên service và luồng trong ví dụ chỉ mang tính minh hoạ, không thuộc hệ thống thật nào.