Keploy là gì? Kiểm thử API Ghi-Phát Lại

Keploy là gì? Tìm hiểu cách công cụ ghi và phát lại eBPF của nó tự động tạo các bài kiểm tra và mock API, các lệnh keploy record và test, và những giới hạn chân thực.

Ashley Goolam

Ashley Goolam

17 tháng 6 2026

Keploy là gì? Kiểm thử API Ghi-Phát Lại

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Nếu bạn đã từng tìm kiếm một cách để có được các bài kiểm thử API mà không cần viết thủ công, bạn có thể đã bắt gặp Keploy. Nó hứa hẹn một điều gì đó nghe có vẻ quá tiện lợi: chỉ cần trỏ nó vào ứng dụng đang chạy của bạn, để nó quan sát lưu lượng truy cập thực, và bạn sẽ có một bộ kiểm thử. Vậy Keploy thực sự làm gì bên dưới, và nó phù hợp ở đâu trong bộ công cụ kiểm thử của bạn?

Hướng dẫn này giải thích Keploy là gì, cách công cụ ghi và phát lại của nó hoạt động ở lớp mạng eBPF, hai quy trình làm việc mà nó cung cấp, cách cài đặt và chạy nó, và những giới hạn trung thực mà bạn nên biết trước khi áp dụng.

Tải ứng dụng

Keploy là gì

Keploy là một nền tảng mã nguồn mở (được cấp phép Apache-2.0) để tạo các môi trường hộp cát sản xuất an toàn, cô lập cho kiểm thử API, tích hợp và end-to-end. Ý tưởng cốt lõi là ứng dụng thực của bạn đã thể hiện hành vi mà bạn muốn kiểm thử. Thay vì yêu cầu bạn mô tả hành vi đó trong mã kiểm thử, Keploy quan sát nó và biến nó thành các kiểm thử có thể tái tạo.

Nó cung cấp cho bạn hai cách để làm điều đó:

  1. Ghi và phát lại (Record and replay) ghi lại các tương tác API thực và các phụ thuộc của chúng, sau đó phát lại chúng một cách xác định.
  2. Tạo kiểm thử bằng AI (AI test generation) xây dựng các bộ kiểm thử API đã được xác thực từ một spec, một bộ sưu tập, một lệnh cURL hoặc một endpoint trực tiếp.

Cả hai đều tạo ra các kiểm thử có thể chạy được cộng với các mock cần thiết để chạy chúng mà không cần truy cập các phụ thuộc trực tiếp. Dự án là mã nguồn mở, vì vậy bạn có thể đọc mã và tự host nó. Kho lưu trữ nằm tại github.com/keploy/keploy, và tài liệu chính thức tại keploy.io/docs.

Cách Keploy ghi hoạt động ở lớp eBPF

Đây là phần làm cho Keploy trở nên khác biệt. Khi bạn chạy keploy record, nó không yêu cầu bạn thêm SDK hoặc thay đổi một dòng mã ứng dụng nào. Nó thu thập lưu lượng truy cập ở lớp mạng bằng cách sử dụng eBPF, một công nghệ hạt nhân Linux cho phép các chương trình quan sát và hành động trên các sự kiện hệ thống một cách an toàn.

Đây là những gì bạn có được trong thực tế:

Điểm cuối cùng đó rất quan trọng. Khi Keploy ghi lại một yêu cầu, nó thu thập toàn bộ bức tranh: yêu cầu API, phản hồi API và mọi cuộc gọi phụ thuộc xảy ra ở giữa. Sau đó, nó ghi hai hiện vật từ tương tác được quan sát duy nhất đó:

Phát lại hoàn tất vòng lặp. Khi bạn chạy keploy test, nó gửi các yêu cầu đã ghi trở lại ứng dụng của bạn, phục vụ các phản hồi phụ thuộc đã thu thập từ các mock đã tạo và so sánh các phản hồi mới với các phản hồi đã ghi. Một sự không khớp có nghĩa là có điều gì đó đã thay đổi. Đây là lý do tại sao phương pháp này được gọi là ghi và phát lại: bạn ghi lại hành vi thời gian chạy thực một lần, sau đó phát lại nó một cách xác định như một kiểm thử hồi quy trên mỗi thay đổi.

Hai quy trình làm việc của Keploy

Ghi và phát lại (Record and replay)

Sử dụng phương pháp này khi bạn đã có một ứng dụng đang hoạt động và muốn kiểm thử hồi quy nhanh chóng. Bạn chạy ứng dụng dưới Keploy, thực hiện nó theo cách mà người dùng hoặc client thực sẽ làm (các cuộc gọi thủ công, một kiểm thử tích hợp hiện có hoặc lưu lượng truy cập trực tiếp), và Keploy lưu trữ mỗi tương tác như một kiểm thử cộng với các mock của nó. Các lần chạy sau đó sẽ phát lại các tương tác đó và gắn cờ bất kỳ sự sai lệch hành vi nào.

Tạo kiểm thử bằng AI (AI test generation)

Sử dụng phương pháp này khi bạn muốn phạm vi kiểm thử rộng hơn so với việc thực hiện thủ công, hoặc khi bạn bắt đầu từ một hợp đồng chứ không phải một quy trình đang chạy. Keploy có thể tạo các bộ kiểm thử API đã được xác thực từ một spec OpenAPI, một bộ sưu tập Postman, một lệnh cURL hoặc một endpoint trực tiếp. Nó tự động tạo mock cho các phụ thuộc và chạy một lượt dọn dẹp tự động để bạn không còn các trường hợp dư thừa.

Hai quy trình làm việc này bổ sung cho nhau. Ghi và phát lại neo các kiểm thử vào hành vi thực tế đã quan sát; tạo kiểm thử bằng AI lấp đầy các khoảng trống từ spec của bạn. Nếu bạn đang đánh giá các công cụ tạo kiểm thử từ một lược đồ, bài tổng hợp của chúng tôi về các công cụ tạo trường hợp kiểm thử AI tốt nhất và hướng dẫn về tạo script kiểm thử từ OpenAPI là những tài liệu bổ trợ tốt.

Cài đặt Keploy

Keploy cung cấp một script cài đặt. Trên một hệ thống được hỗ trợ, bạn chạy:

curl --silent -O -L https://keploy.io/install.sh && source install.sh

Thao tác đó tải tệp nhị phân và thiết lập lệnh keploy. Từ đó, bạn điều khiển mọi thứ thông qua hai lệnh.

Các lệnh Keploy cốt lõi

Có hai lệnh bạn sẽ sử dụng nhiều nhất. Lệnh đầu tiên ghi lại:

keploy record -c "CMD_TO_RUN_APP"

Bạn truyền chính xác lệnh khởi động ứng dụng của mình thông qua -c. Keploy khởi chạy ứng dụng của bạn, theo dõi lưu lượng truy cập khi bạn sử dụng nó và lưu các trường hợp kiểm thử và mock đã thu thập.

Lệnh thứ hai phát lại:

keploy test -c "CMD_TO_RUN_APP" --delay 10

Cờ --delay 10 yêu cầu Keploy đợi mười giây trước khi bắt đầu gửi các yêu cầu đã ghi, điều này giúp một dịch vụ chậm hơn có đủ thời gian để khởi động hoàn chỉnh trước khi quá trình phát lại bắt đầu. Nếu ứng dụng của bạn cần nhiều thời gian hơn để khởi động, hãy tăng số này; nếu nó khởi động nhanh, bạn có thể giảm nó.

Một phiên làm việc điển hình đầu tiên trông như thế này:

# 1. Ghi lại khi bạn truy cập API của mình
keploy record -c "node server.js"

# 2. Phát lại các trường hợp đã ghi và kiểm tra sự sai lệch
keploy test -c "node server.js" --delay 10

Đó là toàn bộ vòng lặp. Ghi lại một lần với một bản dựng tốt đã biết, sau đó chạy keploy test trong CI trên mỗi thay đổi.

Ngôn ngữ, giao thức và kho dữ liệu được hỗ trợ

Vì việc thu thập diễn ra ở lớp mạng, Keploy bao phủ một phạm vi rộng:

Danh mục Được hỗ trợ
Ngôn ngữ Go, Java, Node.js, Python, Rust, C#, C/C++, TypeScript, và nhiều hơn nữa
Giao thức HTTP/REST, gRPC, GraphQL, Kafka, RabbitMQ
Kho dữ liệu PostgreSQL, MySQL, MongoDB, Redis

Phạm vi rộng là hệ quả trực tiếp của thiết kế eBPF. Keploy đang đọc các cuộc hội thoại mạng, vì vậy một ngôn ngữ hoặc framework mới không cần một plugin mới miễn là nó sử dụng một trong các giao thức này.

Chạy Keploy trong CI

Cả hai lệnh đều được xây dựng để tự động hóa. Trong một pipeline, bạn commit các trường hợp kiểm thử và mock đã ghi cùng với mã của mình, sau đó chạy keploy test -c "..." như một bước. Vì các mock thay thế cho các phụ thuộc thực, quá trình phát lại không cần cơ sở dữ liệu trực tiếp hoặc dịch vụ downstream trong trình chạy CI, điều này giúp công việc nhanh chóng và xác định. Một quá trình phát lại thất bại sẽ khiến bản dựng thất bại, giống như một kiểm thử đơn vị.

Những hạn chế cần cân nhắc một cách trung thực

Keploy mạnh mẽ trong những gì nó làm, nhưng nó không phù hợp với mọi tình huống. Một đánh giá công bằng bao gồm các đánh đổi:

Không có điều nào trong số này là chỉ trích Keploy. Chúng là những ranh giới tự nhiên của danh mục của nó. Việc biết chúng giúp bạn quyết định liệu nó có giải quyết vấn đề của bạn hay chỉ một phần của nó.

Vị trí của Apidog như một giải pháp thay thế kiểm thử được thiết kế

Nếu nhu cầu của bạn rộng hơn "biến lưu lượng truy cập đã quan sát thành các kiểm thử hồi quy", thì đáng để xem xét một nền tảng vòng đời đầy đủ. Apidog là một nền tảng API tất cả trong một bao gồm thiết kế, gỡ lỗi, tạo mock, tài liệu và kiểm thử tại một nơi. Sự khác biệt về triết lý là điều then chốt cần hiểu, bởi vì Apidog và Keploy thuộc các danh mục khác nhau.

Keploy thu thập và phát lại hành vi thời gian chạy thực, bao gồm các mock phụ thuộc, không cần mã. Apidog đi theo con đường ngược lại: bạn thiết kế và tạo các kịch bản kiểm thử có thể bảo trì, sau đó chạy chúng từ terminal và CI với Apidog CLI. CLI chạy các bộ sưu tập bạn đã tạo với kiểm thử dựa trên dữ liệu thông qua CSV hoặc JSON, chuyển đổi môi trường và báo cáo CLI, HTML và JSON. Apidog cũng cung cấp tạo trường hợp kiểm thử bằng AI từ lược đồ API và các endpoint của bạn, được tạo trong ứng dụng, đây là nơi hai công cụ này trùng lặp.

Để rõ ràng về ranh giới: Apidog không thu thập lưu lượng truy cập trực tiếp qua eBPF, và nó không tự động tạo kiểm thử bằng cách ghi lại các cuộc gọi sản xuất cộng với các mock phụ thuộc. Khả năng ghi từ lưu lượng truy cập thực đó thực sự là của Keploy. Cách tiếp cận trung thực là bạn chọn dựa trên công việc. Tìm đến Keploy khi bạn muốn ghi lại và phát lại thời gian chạy mà không cần mã. Tìm đến Apidog khi bạn muốn các bộ kiểm thử được thiết kế, có thể bảo trì trong một nền tảng cũng xử lý phần còn lại của vòng đời API. Để so sánh sâu hơn, hãy xem Apidog vs Keploy, và nếu bạn đã quyết định chuyển đổi, hướng dẫn di chuyển sẽ chỉ cho bạn cách chuyển các kiểm thử của mình.

Nếu các kiểm thử API có thể bảo trì, được tạo thủ công là những gì bạn đang tìm kiếm, bạn có thể tải xuống Apidog và bắt đầu với hướng dẫn về cách kiểm thử một API với Apidog.

Các câu hỏi thường gặp

Keploy có miễn phí và mã nguồn mở không? Có. Keploy là mã nguồn mở theo giấy phép Apache-2.0, và mã nguồn có trên GitHub. Bạn có thể tự host nó.

Keploy có yêu cầu thay đổi mã ứng dụng của tôi không? Không. Quy trình làm việc ghi và phát lại thu thập lưu lượng truy cập ở lớp mạng eBPF, vì vậy không cần thêm SDK và không cần thay đổi mã. Đó cũng là lý do tại sao nó hoạt động trên nhiều ngôn ngữ.

Cờ --delay trong keploy test có tác dụng gì? Nó đặt số giây Keploy chờ trước khi gửi các yêu cầu đã ghi, cho ứng dụng của bạn thời gian để khởi động. --delay 10 đợi mười giây; hãy tăng nó cho các dịch vụ khởi động chậm.

Keploy có thể tạo mock cơ sở dữ liệu của tôi trong quá trình kiểm thử không? Có. Khi nó ghi lại một tương tác, nó cũng thu thập các cuộc gọi phụ thuộc (như truy vấn cơ sở dữ liệu) và viết các mock cho chúng, vì vậy quá trình phát lại chạy mà không cần cơ sở dữ liệu trực tiếp.

Keploy có phải là sự thay thế cho một công cụ thiết kế và tài liệu API không? Không. Keploy là một công cụ kiểm thử và tạo kiểm thử. Đối với thiết kế API, tài liệu, tạo mock cho người tiêu dùng và cộng tác cùng với kiểm thử, một nền tảng vòng đời đầy đủ như Apidog sẽ phù hợp hơn.

Tóm tắt

Keploy là một công cụ mã nguồn mở biến hành vi API thực thành các kiểm thử. Công cụ ghi và phát lại của nó sử dụng eBPF để thu thập các yêu cầu, phản hồi và các cuộc gọi phụ thuộc ở lớp mạng mà không cần thay đổi mã, sau đó phát lại chúng như các kiểm thử hồi quy xác định. Tính năng tạo kiểm thử bằng AI của nó xây dựng các bộ kiểm thử từ một spec hoặc endpoint. Nó nhanh chóng để áp dụng và không phụ thuộc ngôn ngữ, với các đánh đổi như mô hình thu thập thiên về Linux, các kiểm thử cần xem xét và phạm vi giới hạn trong việc kiểm thử. Nếu bạn muốn các bộ kiểm thử API được tạo thủ công, có thể bảo trì trong một nền tảng API hoàn chỉnh, Apidog là lựa chọn thay thế để so sánh.

Tải ứng dụng

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API