Việc chọn một trình chạy kiểm thử CLI cho quy trình của bạn phụ thuộc vào một câu hỏi đơn giản: công cụ nào đã chạy API của bạn trong quá trình phát triển, và bạn cần tự động hóa những gì trong CI? Nếu nhóm của bạn làm việc với Insomnia, inso là lựa chọn đồng hành rõ ràng. Nếu bạn muốn một nền tảng duy nhất để thiết kế, tạo mock, tài liệu hóa và kiểm thử, thì Apidog CLI sẽ thay đổi tính toán.
Mỗi công cụ là gì
inso là công cụ CLI đi kèm với Insomnia, client API mã nguồn mở của Kong. Nó mang ba điều vào terminal và CI: chạy các bộ sưu tập yêu cầu, chạy các bộ kiểm thử đơn vị và kiểm tra cú pháp đặc tả OpenAPI. Nó đọc từ cùng dữ liệu mà ứng dụng Insomnia trên máy tính để bàn của bạn sử dụng, vì vậy nếu bạn xây dựng các yêu cầu trong GUI, inso sẽ chạy chúng mà không cần giao diện.
Apidog CLI là trình chạy terminal cho Apidog, 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 hóa và kiểm thử trong một không gian làm việc duy nhất. CLI thực thi các kịch bản kiểm thử và bộ sưu tập từ một dự án, hỗ trợ chạy theo dữ liệu và xuất báo cáo dưới nhiều định dạng. Nó cũng có thể nhập OpenAPI và quản lý các tài nguyên API như endpoint, schema và nhánh dưới dạng mã.
Sự khác biệt cốt lõi xuất hiện trước khi bạn chạy một kiểm thử duy nhất. inso là một trình chạy tập trung cộng với một trình kiểm tra cú pháp cho hệ sinh thái Insomnia. Apidog CLI là bề mặt kiểm thử của một nền tảng rộng lớn hơn.
Apidog CLI so với inso: bảng so sánh
| Tính năng | inso (Insomnia CLI) | Apidog CLI |
|---|---|---|
| Cài đặt | brew install inso, Docker (kong/inso), hoặc tải xuống trực tiếp |
Tải xuống trình cài đặt; chạy các kịch bản từ một dự án Apidog |
| Nó chạy cái gì | Bộ kiểm thử và bộ sưu tập yêu cầu, được tham chiếu theo tên | Các kịch bản kiểm thử và bộ sưu tập từ một dự án |
| Nguồn dữ liệu | Thư mục .insomnia (Git Sync) hoặc cơ sở dữ liệu ứng dụng Insomnia; ghi đè bằng --workingDir/--src |
Các kịch bản kiểm thử dự án được đồng bộ hóa với không gian làm việc Apidog |
| Kiểm thử theo dữ liệu | Không phải là một cờ tích hợp | Có, qua -d với các tập dữ liệu CSV/JSON |
| Trình báo cáo | Kết quả kiểm thử ra console/CI | CLI, HTML và JSON; báo cáo đám mây qua --upload-report |
| Kiểm tra cú pháp đặc tả | Có, inso lint spec qua Spectral |
Không có trình kiểm tra cú pháp độc lập; xác thực đặc tả khi nhập |
| Tài nguyên/nhánh dưới dạng mã | Không | Có, quản lý các endpoint, schema, nhánh từ CLI |
| Tích hợp nền tảng | Ghép nối với client Insomnia | Thiết kế, mock, tài liệu và kiểm thử trên một nền tảng duy nhất |
| Mã nguồn mở | Có (Insomnia là mã nguồn mở) | Nền tảng thương mại |
| Giá cả | Miễn phí | Có gói miễn phí |
Bảng trên là phiên bản tóm tắt. Các phần dưới đây giải thích những khác biệt thực sự quan trọng khi bạn kết nối một trong hai công cụ này vào CI.
Cài đặt: brew và Docker so với trình cài đặt Apidog
inso được phân phối qua một số kênh được tài liệu hóa. Các kênh phổ biến:
# Homebrew
brew install inso
# Docker
docker pull kong/inso:latest
Cũng có các bản tải xuống trực tiếp cho Windows, Linux và macOS. Trước đây inso có trên npm dưới dạng insomnia-inso, nhưng Homebrew, Docker và các bản tải xuống trực tiếp là các đường dẫn mà Kong tài liệu hóa ngày nay. Image Docker tiện dụng cho các trình chạy CI nơi bạn không muốn quản lý một chuỗi công cụ Node.
Apidog CLI cài đặt từ trang tải xuống Apidog và chạy các kịch bản có trong dự án Apidog của bạn. Vì các kiểm thử được gắn với dự án, CLI kéo định nghĩa hiện tại thay vì đọc một thư mục cục bộ mà bạn phải tự giữ đồng bộ. Nếu bạn muốn xem hướng dẫn đầy đủ, hướng dẫn cài đặt Apidog CLI và hướng dẫn CLI đầy đủ bao gồm việc thiết lập từ đầu đến cuối.
Mỗi công cụ chạy cái gì và đọc từ đâu
Đây là điểm khác biệt thực tế lớn nhất trong quyết định apidog cli so với insomnia cli.
inso tham chiếu các bộ và đặc tả theo tên. Bạn chỉ định nó vào một tài liệu thiết kế hoặc bộ sưu tập bằng tên hiển thị của nó, và nó tìm định nghĩa trong một thư mục .insomnia trong thư mục làm việc của bạn (được tạo bởi Git Sync của Insomnia) hoặc trong thư mục dữ liệu của ứng dụng Insomnia nếu ứng dụng được cài đặt. Bạn ghi đè vị trí bằng --workingDir hoặc --src.
inso run test "Smoke Suite" --env "CI"
inso run collection "User API" --env "Staging"
inso script seed-data --env env_staging
Mô hình dựa trên tên rõ ràng nếu nhóm của bạn commit thư mục .insomnia và coi nó là nguồn thông tin đáng tin cậy. Điều này có nghĩa là quá trình checkout CI của bạn cần có thư mục đó, và tên phải luôn ổn định.
Apidog CLI chạy các kịch bản kiểm thử nằm trong dự án Apidog. Bạn xác thực bằng thông tin đăng nhập hoặc mã truy cập, sau đó chạy một kịch bản hoặc bộ sưu tập đối với một môi trường đã chọn. Định nghĩa đến từ dự án, vì vậy kịch bản mà nhóm của bạn đã xây dựng trong GUI là thứ chạy trong CI, không cần thư mục nào để commit và giữ đồng bộ.
apidog run -t <scenario-or-collection> -e <environment>
Không mô hình nào là sai. inso ưu tiên một thư mục cục bộ được commit bằng Git. Apidog ưu tiên một dự án được đồng bộ hóa. Hãy chọn cái phù hợp với cách nhóm của bạn đã chia sẻ định nghĩa API.
Kiểm thử theo dữ liệu
Nếu bạn cần chạy cùng một kịch bản trên nhiều hàng dữ liệu đầu vào, điều này rất quan trọng.
Apidog CLI hỗ trợ kiểm thử theo dữ liệu trực tiếp với -d, trỏ đến một tập dữ liệu CSV hoặc JSON. Mỗi hàng trở thành một lần lặp với các biến riêng, vì vậy một kịch bản có thể bao gồm hàng chục trường hợp.
apidog run -t "Checkout Flow" -e "Staging" -d ./datasets/orders.csv
Mô hình đầy đủ, bao gồm cách các biến ánh xạ tới các cột, có trong kiểm thử theo dữ liệu với Apidog CLI.
inso không cung cấp một cờ kiểm thử theo dữ liệu trong các lệnh chạy của nó. Bạn có thể tham số hóa thông qua môi trường, và bạn có thể điều khiển các lần lặp bằng cách viết script xung quanh inso trong job CI của mình, nhưng lặp hàng theo hàng CSV/JSON không phải là một tính năng CLI hạng nhất như trong Apidog. Nếu việc lặp qua một tập dữ liệu là trung tâm của bộ kiểm thử của bạn, đó là một điểm khác biệt thực sự cần cân nhắc.
Trình báo cáo: những gì bạn nhận được
Báo cáo là cách CI cho bạn biết điều gì đã xảy ra. Cả hai công cụ đều khiến quá trình build thất bại khi có một khẳng định sai, nhưng chúng khác nhau về định dạng đầu ra.
Apidog CLI tạo báo cáo dưới dạng CLI, HTML và JSON. Định dạng CLI tốt cho việc quét log nhanh, HTML cung cấp một hiện vật có thể chia sẻ, và JSON cung cấp dữ liệu cho các bảng điều khiển hoặc công cụ hạ nguồn. Bạn cũng có thể đẩy kết quả lên đám mây với --upload-report để có một báo cáo được lưu trữ và có thể liên kết. Hướng dẫn báo cáo kiểm thử Apidog CLI trình bày chi tiết từng định dạng.
inso in kết quả kiểm thử ra console và báo hiệu đạt/thất bại thông qua mã thoát, đây là điều mà hầu hết các hệ thống CI đều dựa vào. Điều đó đáp ứng được nhu cầu cốt lõi. Nếu bạn muốn một hiện vật HTML phong phú hoặc một báo cáo được lưu trữ mà không cần công cụ bổ sung, Apidog cung cấp cho bạn nhiều hơn ở đây.
Kiểm tra cú pháp: so sánh trung thực
Đây là nơi inso có một lợi thế thực sự, và sẽ là sai lầm nếu giả vờ không phải vậy.
inso kiểm tra cú pháp đặc tả OpenAPI với inso lint spec, và trình kiểm tra cú pháp được sử dụng là Spectral, trình kiểm tra cú pháp OpenAPI nổi tiếng của Stoplight. Điều đó có nghĩa là bạn có thể thực thi một hướng dẫn kiểu, phát hiện các vấn đề về hợp đồng và chặn hợp nhất dựa trên chất lượng đặc tả, tất cả từ cùng một CLI chạy các kiểm thử của bạn.
inso lint spec "Payments API"
inso export spec "Payments API" --output openapi.yaml
Đối với các nhóm thực hành thiết kế ưu tiên đặc tả và muốn các quy tắc kiểm tra cú pháp được thực thi trong CI, đây là một lý do mạnh mẽ, thực sự để chọn inso.
Bây giờ là đối tác trung thực của Apidog. Apidog CLI không có một trình kiểm tra cú pháp OpenAPI độc lập, hướng dẫn kiểu, lệnh tách, ghép hoặc đóng gói. Apidog xác thực đặc tả khi bạn nhập chúng, điều này phát hiện các vấn đề về cấu trúc, nhưng đó là xác thực khi nhập, không phải là lệnh lint mà bạn chạy theo một hướng dẫn kiểu trong CI. Đừng mong đợi CLI của Apidog thay thế Spectral. Nếu kiểm tra cú pháp hợp đồng trong pipeline là một yêu cầu cứng và bạn không có bước Spectral riêng biệt, inso sẽ giải quyết được và Apidog thì không.
Nơi Apidog có được vị trí của mình thay vào đó là tích hợp và quản lý tài nguyên, đó là phần tiếp theo.
Tài nguyên và nhánh dưới dạng mã
Apidog CLI có thể làm điều mà inso không làm được: quản lý tài nguyên API dưới dạng mã. Từ terminal, bạn có thể nhập OpenAPI và làm việc với các endpoint, schema, môi trường, nhánh và yêu cầu hợp nhất. Điều đó cho phép bạn tạo script các thay đổi thiết kế API và gắn chúng vào cùng một hệ thống tự động hóa chạy các kiểm thử.
inso giữ đúng vai trò của mình như một trình chạy và trình kiểm tra cú pháp. Nó có thể xuất một đặc tả, nhưng nó không phải là một CLI quản lý tài nguyên để chỉnh sửa các endpoint hoặc quản lý các nhánh.
Đối với các nhóm muốn định nghĩa API và các lần chạy kiểm thử của họ được quản lý bởi cùng một CLI, bề mặt tài nguyên dưới dạng mã của Apidog là một lợi thế đáng kể. Đó là một phần lý do tại sao lựa chọn inso so với apidog thường trở thành một câu hỏi về nền tảng hơn là một câu hỏi về trình chạy.
Tích hợp nền tảng, mã nguồn mở và giá cả
inso là một phần của hệ sinh thái mã nguồn mở. Bản thân Insomnia là mã nguồn mở, điều này hấp dẫn các nhóm muốn kiểm tra hoặc tự lưu trữ công cụ của họ. Cần lưu ý một cách trung thực cho việc lập kế hoạch: Insomnia 8 vào năm 2023 đã giới thiệu một tài khoản đám mây/đăng nhập bắt buộc gây ra phản ứng dữ dội, và đã có các sự cố di chuyển và mất dữ liệu trong khoảng thời gian đó. Nếu nhóm của bạn cân nhắc những sự kiện đó, các bài viết của chúng tôi về phục hồi và di chuyển dữ liệu Insomnia bị mất và cách phục hồi và xuất dữ liệu Insomnia bao gồm chi tiết. Tất cả những điều đó không làm thay đổi sự thật rằng inso CLI là một trình chạy miễn phí, vững chắc với tính năng kiểm tra cú pháp Spectral tích hợp.
Apidog là một nền tảng thương mại có gói miễn phí. Điểm mạnh của nó là tích hợp: bạn thiết kế, tạo mock, tài liệu hóa, gỡ lỗi và kiểm thử ở một nơi, và CLI là bề mặt tự động hóa cho không gian làm việc đó. Bạn không cần ghép nối một công cụ thiết kế, máy chủ mock và trình chạy riêng biệt. Để có cái nhìn rộng hơn về sản phẩm, hãy xem Apidog so với Insomnia và Insomnia so với Apidog. Nếu bạn muốn thử trình chạy đối với một API trực tiếp trước, cách sử dụng Insomnia để kiểm thử API và hướng dẫn kiểm thử REST API từ dòng lệnh là những điểm khởi đầu tốt.
Kết nối CI, tóm tắt
Cả hai công cụ đều có thể được đưa vào pipeline theo cùng một cách: cài đặt, xác thực hoặc trỏ đến dữ liệu của bạn, chạy, và để mã thoát chặn quá trình build.
# inso trong CI
- run: brew install inso
- run: inso run test "Smoke Suite" --env "CI"
# Apidog CLI trong CI
- run: apidog run -t "Smoke Suite" -e "CI" -r html,json
Nếu bạn đang xây dựng điều này, hướng dẫn pipeline CI/CD của Apidog CLI và hướng dẫn từng bước về GitHub Actions bao gồm xác thực, bộ nhớ đệm và tải lên báo cáo. Các chi tiết xác thực cho trình chạy có trong hướng dẫn xác thực Apidog CLI.
Phán quyết
Không có người chiến thắng duy nhất. Lựa chọn đúng đắn phụ thuộc vào cách nhóm của bạn làm việc.
Chọn inso nếu bạn đã làm việc với Insomnia, commit một thư mục .insomnia, và muốn kiểm tra cú pháp đặc tả Spectral được thực thi trong CI từ cùng một công cụ chạy các kiểm thử của bạn. Hệ sinh thái mã nguồn mở và trình kiểm tra cú pháp tích hợp là những điểm mạnh thực sự, và một trình chạy miễn phí, được tham chiếu theo tên phù hợp với các nhóm ưu tiên Insomnia một cách gọn gàng.
Chọn Apidog CLI nếu bạn muốn một nền tảng duy nhất để thiết kế, tạo mock, tài liệu hóa và kiểm thử, với các lần chạy theo dữ liệu qua -d, các trình báo cáo phong phú hơn (CLI, HTML, JSON, cộng với các báo cáo được lưu trữ), và quản lý tài nguyên và nhánh dưới dạng mã. Bạn sẽ từ bỏ một trình kiểm tra cú pháp CLI độc lập, nhưng bạn có được một quy trình làm việc tích hợp nơi thứ bạn thiết kế là thứ bạn kiểm thử. Di chuyển một thiết lập hiện có rất đơn giản; xem di chuyển từ inso (Insomnia CLI) sang Apidog CLI.
Sẵn sàng để so sánh thực tế? Tải xuống Apidog và chạy một kịch bản đối với API của riêng bạn.
