Postman CLI là một cách phổ biến để chạy bộ sưu tập Postman trong pipeline, nhưng nó cũng gắn quá trình test với tài khoản Postman và Postman Cloud. Điều này không phù hợp với mọi nhóm, đặc biệt khi bạn cần chạy offline, kiểm soát dữ liệu trong repository, hoặc tránh phụ thuộc vào license theo seat. Bài viết này so sánh 5 lựa chọn thay thế Postman CLI để chạy API test trong CI/CD, nêu rõ khi nào nên dùng từng công cụ và vì sao Apidog CLI là lựa chọn được đề xuất nếu bạn muốn gom thiết kế API, mock, test và tài liệu vào cùng một workflow. Nếu cần bối cảnh về Postman CLI và Newman, bạn có thể xem thêm so sánh của Postman về Postman CLI và Newman.
Tại sao nhiều nhóm không dùng Postman CLI trong CI/CD
Postman CLI là công cụ chính mà Postman khuyến nghị để chạy collection trong CI/CD. Nó chạy collection, xuất kết quả và hiển thị các lần chạy trong ứng dụng Postman.
Vấn đề là workflow này phụ thuộc vào Postman Cloud. Để chạy Postman CLI, bạn cần đăng nhập bằng Postman API key, và kết quả thực thi được báo cáo về Postman. Điều này tiện nếu toàn bộ quy trình API của bạn đã nằm trong Postman, nhưng có thể gây khó khăn trong các trường hợp sau:
- Ràng buộc cloud: Các lần chạy được xác thực bằng tài khoản Postman và kết quả được gửi về ứng dụng Postman. Với hệ thống tách mạng hoặc yêu cầu tuân thủ nghiêm ngặt, đây có thể là điểm chặn.
- Chi phí license: Collection, environment và tính năng cộng tác của Postman phụ thuộc vào các gói dịch vụ. Khi số lượng thành viên tăng, chi phí theo người dùng cũng tăng.
- Khóa vào collection format: Nguồn sự thật chính là Postman collection. Nếu sau này muốn chuyển nền tảng, bạn cần export, import và điều chỉnh lại test.
Điều này không có nghĩa Postman CLI là công cụ tệ. Nó chỉ không phải lựa chọn tối ưu cho mọi pipeline. Nếu bạn muốn test nằm trong repository, chạy được offline, dễ xuất báo cáo CI và không bị tính phí theo số lần chạy pipeline, hãy cân nhắc các công cụ dưới đây.
So sánh nhanh
| Công cụ | Định dạng kiểm tra | Yêu cầu tài khoản để chạy | Giấy phép | Phù hợp nhất cho |
|---|---|---|---|---|
| Apidog CLI | Kịch bản/bộ kiểm tra Apidog, hoặc các tệp đã xuất | Không, dùng token để đồng bộ hóa dự án | Thương mại, có cấp miễn phí | Nhóm muốn thiết kế, mock, test và viết tài liệu API tại một nơi |
| Newman | Postman collection JSON | Không | Mã nguồn mở, Apache-2.0 | Người dùng Postman hiện tại muốn chạy collection offline |
| Hoppscotch CLI | Hoppscotch collection JSON | Không, nếu chạy từ file JSON đã export | Mã nguồn mở | Người dùng Hoppscotch hoặc nhóm tự host |
| inso, Insomnia CLI | Bộ kiểm tra Insomnia thông qua Git sync | Không | Mã nguồn mở | Nhóm dùng Insomnia và muốn version control test |
| Hurl | Tệp văn bản thuần túy .hurl
|
Không | Mã nguồn mở | Kỹ sư muốn test HTTP kiểu curl trong Git |
1. Apidog CLI
Apidog CLI là headless runner cho Apidog, một nền tảng API tất cả trong một cho thiết kế, gỡ lỗi, kiểm thử, mô phỏng và tài liệu API. Trong CI/CD, bạn chạy test bằng lệnh:
apidog run
Điểm mạnh của Apidog CLI không chỉ nằm ở runner. Nó hoạt động trên cùng một nguồn dữ liệu với thiết kế API, OpenAPI contract, test scenario, mock server và documentation. Điều đó giúp CI kiểm tra đúng API mà nhóm đã thiết kế và tài liệu hóa, thay vì phải ghép nhiều công cụ rời rạc.
Cách dùng Apidog CLI trong pipeline
Một workflow cơ bản thường gồm các bước:
- Thiết kế hoặc import API vào Apidog.
- Tạo test scenario hoặc test suite.
- Lấy lệnh chạy từ phần CI/CD trong Apidog.
- Dán lệnh đó vào GitHub Actions, GitLab CI hoặc Jenkins.
- Xuất báo cáo ở định dạng CI đọc được, ví dụ JUnit hoặc JSON.
Ví dụ lệnh chạy test:
apidog run
Nếu cần chạy test theo dữ liệu đầu vào, dùng file CSV hoặc JSON với cờ -d:
apidog run -d test-data.csv
Nếu cần xuất báo cáo cho CI:
apidog run -r cli,json,junit,html
Các định dạng báo cáo như cli, html, json và junit giúp bạn vừa đọc log trong terminal, vừa tích hợp được với dashboard CI.
Bạn có thể xem hướng dẫn chi tiết trong hướng dẫn CLI từng bước.
Khi nào nên chọn Apidog CLI
Chọn Apidog CLI nếu bạn muốn:
- Quản lý API contract, test case, mock server và documentation trong cùng một dự án.
- Chạy test bằng CLI trong CI/CD.
- Test theo dữ liệu bằng CSV hoặc JSON.
- Xuất báo cáo
junit,json,htmlcho pipeline. - Dùng mock server không giao diện để hỗ trợ test tích hợp hoặc frontend test.
- Cho AI agent hoặc IDE như Cursor, Claude, VS Code đọc thông số kỹ thuật API thông qua MCP server.
Bạn có thể đọc thêm về hướng dẫn mock API và máy chủ Apidog MCP.
Apidog có gói miễn phí và ứng dụng desktop từ Apidog. Nếu muốn so sánh trực tiếp với Postman CLI, xem thêm Apidog CLI vs Postman CLI.
2. Newman
Newman là collection runner mã nguồn mở ban đầu của Postman. Đây vẫn là lựa chọn quen thuộc nhất nếu nhóm của bạn đã có nhiều Postman collection và chỉ muốn chạy chúng offline trong CI.
Newman chạy trực tiếp file Postman collection JSON từ dòng lệnh, không yêu cầu mở ứng dụng Postman.
Ví dụ cơ bản:
newman run collection.json
Chạy cùng environment:
newman run collection.json -e environment.json
Xuất báo cáo JUnit cho CI:
newman run collection.json \
-e environment.json \
--reporters cli,junit \
--reporter-junit-export newman-results.xml
Điểm mạnh của Newman
- Mã nguồn mở theo giấy phép Apache-2.0.
- Chạy được offline.
- Đọc trực tiếp Postman collection JSON đã export.
- Có hệ sinh thái reporter và tài liệu cộng đồng lớn.
- Dễ tích hợp với GitHub Actions, GitLab CI, Jenkins hoặc bất kỳ runner nào có Node.js.
Hạn chế
Newman vẫn xoay quanh Postman collection. Nếu mục tiêu của bạn là thoát khỏi mô hình collection làm nguồn sự thật chính, Newman sẽ không giải quyết triệt để vấn đề đó.
Postman đã nói rằng họ không có kế hoạch loại bỏ Newman, vì vậy đây vẫn là lựa chọn ổn định cho các nhóm đang dùng Postman. Nếu bạn đang so sánh hai runner kiểu Postman, xem thêm Apidog CLI vs Newman.
3. Hoppscotch CLI
Hoppscotch là API client mã nguồn mở, có thể tự host. Hoppscotch CLI, hay @hoppscotch/cli, cho phép bạn chạy test script của Hoppscotch trong CI.
Lệnh chính là:
hopp test
Công cụ này duyệt qua collection, chạy từng request và xác thực response dựa trên test script được gắn với request.
Khi nào nên dùng Hoppscotch CLI
Hoppscotch CLI phù hợp nếu:
- Nhóm của bạn đã dùng Hoppscotch.
- Bạn cần một API client mã nguồn mở.
- Bạn muốn tự host thay vì dùng cloud vendor.
- Bạn muốn chạy test từ collection/environment JSON đã export.
- Bạn cần xuất JUnit report cho CI.
Ví dụ workflow thường gặp:
hopp test
Xuất báo cáo JUnit:
hopp test --reporter-junit
Điểm cần lưu ý
Hoppscotch CLI là lựa chọn tốt nếu bạn đã ở trong hệ sinh thái Hoppscotch. Nếu bạn cần một nền tảng API đầy đủ hơn, bao gồm thiết kế, mock, test và documentation trong cùng một nơi, bạn nên so sánh thêm với các lựa chọn khác.
Bạn có thể xem tổng hợp các lựa chọn thay thế Hoppscotch để có thêm góc nhìn về phần GUI.
4. inso, Insomnia CLI
inso là công cụ dòng lệnh của Kong Insomnia. Nó chạy các test suite được tạo trong Insomnia và đặc biệt hữu ích khi kết hợp với Git sync.
Khi Git sync được thiết lập, dữ liệu Insomnia nằm trong thư mục .insomnia trong repository. Điều này giúp API spec, collection và test suite trở thành file được version control cùng với code.
Ví dụ chạy một test suite đã đặt tên:
inso run test "My API Test Suite"
Điểm mạnh của inso
- Tích hợp Git: Test nằm trong repository, được commit, review và branch như code.
- Chạy test suite theo tên: Dễ gọi trong pipeline.
- Phù hợp với nhóm dùng Insomnia: Không cần đổi công cụ thiết kế API nếu team đã quen Insomnia.
- Có thể tích hợp CI: Dùng được với GitHub Actions, GitLab CI và Jenkins.
Khi nào nên dùng inso
Chọn inso nếu:
- Nhóm của bạn đã thiết kế API trong Insomnia.
- Bạn muốn lưu test trong Git.
- Bạn không muốn phụ thuộc vào cloud vendor cho việc chạy test.
- Bạn muốn pipeline đọc trực tiếp dữ liệu Insomnia từ repository.
Nếu cần so sánh trực tiếp, xem Apidog CLI vs inso.
5. Hurl
Hurl là lựa chọn khác biệt nhất trong danh sách này. Nó không cố trở thành một nền tảng API đầy đủ. Hurl là công cụ dòng lệnh nhỏ để chạy HTTP request được viết trong file văn bản thuần túy .hurl.
Hurl là binary Rust, dùng libcurl, khởi động nhanh và không cần runtime như Node.js.
Ví dụ file healthcheck.hurl:
GET https://api.example.com/health
HTTP 200
[Asserts]
jsonpath "$.status" == "ok"
Chạy file test:
hurl healthcheck.hurl
Chạy nhiều file trong CI:
hurl tests/*.hurl
Vì sao kỹ sư thích Hurl
-
Plain text: File
.hurldễ đọc, dễ diff, dễ review trong pull request. - Không cần tài khoản: Không GUI, không cloud, không token vendor.
- Ít phụ thuộc: Không cần Node.js runtime.
- Thân thiện với CI: Binary trả về exit code chuẩn, rất dễ đưa vào pipeline.
- Phù hợp với test nhỏ, rõ ràng: Health check, smoke test, contract-lite test hoặc kiểm tra endpoint quan trọng.
Hạn chế
Hurl không có giao diện thiết kế API, không mock server và không tạo tài liệu API. Đây vừa là hạn chế vừa là ưu điểm: nếu bạn chỉ cần công cụ nhỏ nhất để xác nhận endpoint hoạt động, Hurl rất khó bị đánh bại.
Xem thêm tài liệu Hurl chính thức để hiểu format .hurl.
Cách chọn công cụ phù hợp
Chọn công cụ dựa trên workflow API hiện tại của nhóm:
- Đã dùng Postman sâu và chỉ muốn chạy offline: Chọn Newman.
- Đang dùng Hoppscotch hoặc cần tự host: Chọn Hoppscotch CLI.
- Đang dùng Insomnia và muốn Git-based workflow: Chọn inso.
- Muốn test HTTP tối giản, plain text, không nền tảng: Chọn Hurl.
- Muốn một nơi duy nhất để thiết kế, mock, test và viết tài liệu API, đồng thời có CLI runner cho CI: Chọn Apidog CLI.
Một cách ra quyết định nhanh:
Bạn đã có Postman collection? -> Newman hoặc import sang Apidog
Bạn đã dùng Insomnia? -> inso
Bạn đã dùng Hoppscotch? -> Hoppscotch CLI
Bạn muốn file text đơn giản? -> Hurl
Bạn muốn quản lý toàn bộ vòng đời API? -> Apidog CLI
Nếu bạn xem API như một sản phẩm thay vì một tập collection rời rạc, lựa chọn cuối cùng sẽ dễ mở rộng hơn. Bạn có thể đọc thêm trong bài API như một sản phẩm và hướng dẫn các thực tiễn tốt nhất CI/CD để kiểm thử API.
Các câu hỏi thường gặp
Có lựa chọn thay thế Postman CLI miễn phí không?
Có. Newman, Hoppscotch CLI, inso và Hurl đều là mã nguồn mở và miễn phí để chạy. Apidog CLI có cấp miễn phí và sử dụng cùng lệnh apidog run mà bạn dùng trong pipeline. Các công cụ này không tính phí theo số lần chạy pipeline.
Tôi có thể chạy Postman collection hiện có mà không cần Postman CLI không?
Có. Newman đọc trực tiếp file Postman collection JSON. Apidog cũng có thể import Postman collection, sau đó bạn chạy test bằng CLI mà không cần thao tác qua giao diện trong pipeline.
Bạn có thể xem thêm bài cách chạy các bộ sưu tập Postman trong CI mà không cần Newman.
Sự khác biệt giữa Postman CLI và Newman là gì?
Cả hai đều chạy Postman collection từ dòng lệnh. Khác biệt chính là:
- Postman CLI đăng nhập bằng Postman API key và báo cáo kết quả về ứng dụng Postman.
- Newman là runner mã nguồn mở độc lập, chạy collection JSON mà không báo cáo lên Postman Cloud.
Postman đã nói rằng họ không có kế hoạch ngừng hỗ trợ Newman.
Lựa chọn nào tốt nhất cho CI/CD?
Phụ thuộc vào workflow của bạn.
- Nếu muốn nền tảng duy nhất cho thiết kế, mock, test và documentation, dùng Apidog CLI.
- Nếu muốn runner hoàn toàn plain text, dùng Hurl.
- Nếu đã có Postman collection, dùng Newman.
- Nếu đã dùng Hoppscotch, dùng Hoppscotch CLI.
- Nếu đã dùng Insomnia với Git sync, dùng inso.
Tổng kết
Postman CLI hoạt động tốt, nhưng mô hình phụ thuộc cloud và license có thể không phù hợp với mọi nhóm. Newman, Hoppscotch CLI, inso và Hurl đều giải quyết các nhu cầu cụ thể trong CI/CD.
Nếu bạn muốn một runner liên kết trực tiếp với nguồn sự thật duy nhất cho toàn bộ vòng đời API, Apidog CLI là lựa chọn đáng thử. Bạn có thể tải xuống Apidog và chạy bài test đầu tiên từ dòng lệnh, hoặc đọc thêm về nền tảng tại Apidog.



Top comments (0)