Sự Khác Biệt Giữa Newman và Postman Là Gì?

INEZA Felin-Michel

INEZA Felin-Michel

22 tháng 5 2026

Sự Khác Biệt Giữa Newman và Postman Là Gì?

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Newman và Postman không phải là đối thủ cạnh tranh. Chúng là hai nửa của một quy trình làm việc. Postman là ứng dụng máy tính để bàn nơi bạn thiết kế yêu cầu, viết các bài kiểm tra và khám phá API theo cách thủ công. Newman là công cụ dòng lệnh lấy các bộ sưu tập bạn đã xây dựng trong Postman và chạy chúng mà không cần giao diện đồ họa. Nếu Postman là xưởng làm việc, thì Newman là cỗ máy chạy công việc đã hoàn thành của bạn theo lịch trình.

Sự nhầm lẫn thường đến từ câu hỏi “tôi nên dùng cái nào?” Câu trả lời thành thật là cả hai, ở các giai đoạn khác nhau. Bạn thực hiện tác vụ trong Postman vì giao diện đồ họa giúp bạn làm điều đó nhanh chóng. Bạn thực thi trong Newman vì một pipeline không thể nhấp vào các nút. Bài viết này giải thích chính xác mối quan hệ, chỉ ra vị trí của từng công cụ và hướng dẫn đưa Newman vào một quy trình CI/CD.

Postman là gì

Postman là một nền tảng API đồ họa. Bạn cài đặt nó như một ứng dụng máy tính để bàn, tạo yêu cầu, sắp xếp chúng thành các bộ sưu tập và thư mục, đồng thời đính kèm các môi trường chứa các biến như URL cơ sở và token. Sau mỗi phản hồi, Postman chạy các tập lệnh kiểm tra JavaScript mà bạn viết trong tab Tests của yêu cầu.

Một tập lệnh kiểm tra của Postman kiểm tra phản hồi:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Order total is a positive number", function () {
    const body = pm.response.json();
    pm.expect(body.total).to.be.a("number");
    pm.expect(body.total).to.be.above(0);
});

Postman được xây dựng cho công việc tương tác. Một nhà phát triển gỡ lỗi một điểm cuối mới sẽ gửi yêu cầu, kiểm tra phản hồi, điều chỉnh tiêu đề và lặp lại trong vài giây. Một kỹ sư QA biến những yêu cầu đó thành một bộ kiểm thử hồi quy đã lưu. Các nhóm chia sẻ không gian làm việc để mọi người làm việc với cùng một bộ sưu tập. Tất cả những điều đó đều được hưởng lợi từ giao diện trực quan. Hướng dẫn của chúng tôi về cách kiểm thử API với Postman bao gồm quy trình làm việc đó một cách chuyên sâu.

Điều Postman không được xây dựng cho là thực thi tự động (unattended execution). Chạy một bộ kiểm thử có nghĩa là mở ứng dụng và nhấp vào Collection Runner. Điều đó ổn đối với một người ngồi làm việc. Nó vô dụng đối với một máy chủ build.

Newman là gì

Newman là công cụ chạy bộ sưu tập dòng lệnh chính thức của Postman. Đây là một gói npm mã nguồn mở, miễn phí sử dụng, thực thi chính xác các tệp bộ sưu tập mà Postman tạo ra. Bạn xuất một bộ sưu tập dưới dạng tệp JSON, đưa nó cho Newman, và Newman chạy mọi yêu cầu và mọi tập lệnh kiểm thử, sau đó báo cáo kết quả ra terminal của bạn.

Cài đặt nó bằng npm:

npm install -g newman

Chạy một bộ sưu tập:

newman run orders-api.postman_collection.json \
  --environment staging.postman_environment.json

Newman chạy từng yêu cầu, thực thi các khẳng định pm.test tương tự như Postman và in ra một bản tóm tắt. Chi tiết quan trọng là Newman sử dụng cùng một công cụ thực thi với Postman, vì vậy một bộ sưu tập vượt qua trong giao diện đồ họa sẽ hoạt động giống hệt nhau trên dòng lệnh. Không có việc viết lại và không có ngôn ngữ kiểm thử riêng biệt.

Newman cũng thoát với mã trạng thái khác 0 khi bất kỳ bài kiểm thử nào thất bại. Hành vi duy nhất đó là điều làm cho nó có giá trị đối với tự động hóa: một hệ thống build đọc mã thoát đó và làm cho bản build thất bại khi có khẳng định bị lỗi. Một lần chạy thành công sẽ thoát với mã 0 và pipeline tiếp tục.

So sánh song song

Khía cạnh Postman Newman
Giao diện Ứng dụng máy tính để bàn đồ họa Dòng lệnh, không có giao diện người dùng
Công dụng chính Viết, gỡ lỗi, khám phá Thực thi tự động, không cần giám sát
Nơi chạy Máy tính của nhà phát triển Máy chủ CI, terminal, bộ lập lịch
Chi phí Gói miễn phí kèm gói trả phí Mã nguồn mở, hoàn toàn miễn phí
Cài đặt Trình cài đặt máy tính để bàn Gói npm
Tập lệnh kiểm thử Được viết và chạy trong ứng dụng Chạy các tập lệnh tương tự mà không cần giao diện
Báo cáo Ngăn kết quả trong ứng dụng Đầu ra terminal cộng với các plugin báo cáo
Tốt nhất ở Lặp lại tương tác Các lần chạy lặp lại, có thể script được

Tệp JSON của bộ sưu tập là cầu nối giữa chúng. Bạn xây dựng nó một lần trong Postman, và Newman chạy nó mãi mãi trong tự động hóa.

Newman phù hợp với CI/CD như thế nào

Newman tồn tại chủ yếu để đưa các bài kiểm thử API vào tích hợp liên tục. Mô hình này nhất quán giữa các nhà cung cấp. Bạn commit các tệp bộ sưu tập và môi trường đã xuất vào kho lưu trữ của mình, cài đặt Newman trong pipeline, chạy nó và để mã thoát kiểm soát quá trình build.

Dưới đây là quy trình làm việc theo các bước được đánh số:

  1. Xuất từ Postman. Trong Postman, xuất bộ sưu tập và môi trường của bạn dưới dạng tệp JSON.
  2. Commit chúng vào kho lưu trữ. Lưu trữ chúng cùng với mã của bạn để chúng được quản lý phiên bản cùng với API.
  3. Cài đặt Newman trong pipeline. Thêm npm install -g newman vào công việc CI, hoặc sử dụng image Docker postman/newman.
  4. Chạy bộ sưu tập. Gọi newman run với các tệp bộ sưu tập và môi trường.
  5. Kiểm soát dựa trên mã thoát. Nếu bất kỳ kiểm thử nào thất bại, Newman thoát với mã khác 0 và nhà cung cấp CI đánh dấu bản build là thất bại.

Một bước GitHub Actions trông như thế này:

- name: Run API tests
  run: |
    npm install -g newman
    newman run orders-api.postman_collection.json \
      --environment staging.postman_environment.json \
      --reporters cli,junit \
      --reporter-junit-export results.xml

Cờ --reporters đáng để biết. Newman đi kèm với các trình báo cáo tích hợp sẵn cho CLI và JUnit XML, và các trình báo cáo của cộng đồng bổ sung đầu ra HTML và nhiều hơn nữa. Đặc biệt, JUnit XML cho phép các bảng điều khiển CI hiển thị kết quả kiểm thử một cách tự nhiên. Để có hướng dẫn chi tiết, hãy xem hướng dẫn của chúng tôi về tự động hóa kiểm thử API trong CI/CD và các chi tiết cụ thể về tự động hóa kiểm thử API với GitHub Actions.

Các tùy chọn dòng lệnh Newman hữu ích

Newman có một tập hợp các cờ giúp xử lý những khó khăn của các lần chạy tự động. Biết một vài trong số chúng tạo nên sự khác biệt giữa một công việc dễ hỏng và một công việc đáng tin cậy.

Cờ --iteration-data hướng Newman đến một tệp CSV hoặc JSON và chạy toàn bộ bộ sưu tập một lần cho mỗi hàng, thay thế các giá trị của hàng làm biến. Đây là cách bạn điều khiển một lần chạy Newman bằng dữ liệu: một bộ sưu tập, nhiều đầu vào. Cờ --iteration-count chỉ đơn giản lặp lại bộ sưu tập một số lần cố định.

Cờ --bail yêu cầu Newman dừng lại ở lần thất bại đầu tiên thay vì chạy phần còn lại của bộ sưu tập. Trong một pipeline phản hồi nhanh, đó thường là điều bạn muốn, vì một yêu cầu bị lỗi duy nhất thường có nghĩa là bản build đã sẽ thất bại. Cờ --timeout-request giới hạn thời gian một yêu cầu duy nhất có thể mất, giúp bảo vệ công việc khỏi bị treo khi gặp một dịch vụ không phản hồi.

Cờ --delay-request chèn một khoảng dừng giữa các yêu cầu, hữu ích khi một API áp đặt giới hạn tỷ lệ. Và --folder cho phép bạn chỉ chạy một thư mục được đặt tên bên trong một bộ sưu tập, vì vậy một công việc kiểm thử sơ bộ có thể chạy một tập hợp con nhỏ trong khi công việc kiểm thử hồi quy đầy đủ chạy mọi thứ. Không có tùy chọn nào trong số này tồn tại trong Collection Runner của giao diện người dùng Postman dưới dạng có thể script được tương tự, và cùng nhau chúng là lý do tại sao Newman là lựa chọn thực tế cho việc thực thi tự động (unattended execution).

Những lỗi thường gặp khi chuyển từ Postman sang Newman

Một vài vấn đề thường xuất hiện lặp đi lặp lại khi các nhóm lần đầu tiên chuyển một bộ sưu tập từ giao diện đồ họa sang Newman. Phổ biến nhất là các giá trị được mã hóa cứng. Một yêu cầu hoạt động trong Postman vì một biến đã được đặt trong môi trường đang hoạt động sẽ thất bại trong Newman nếu tệp môi trường đó không được truyền cùng với --environment. Luôn xuất và cung cấp môi trường một cách rõ ràng.

Thứ hai là dựa vào đám mây Postman. Các bộ sưu tập tham chiếu các biến được đồng bộ hóa đám mây hoặc sử dụng các tính năng liên quan đến phiên Postman đã đăng nhập có thể không hoạt động giống nhau khi chạy từ một tệp JSON thuần túy. Kiểm thử tệp đã xuất cục bộ với Newman trước khi tin tưởng nó trong CI.

Thứ ba là quên rằng các tệp đã xuất bị lỗi thời. Tệp JSON bộ sưu tập trong kho lưu trữ của bạn là một ảnh chụp nhanh. Nếu ai đó chỉnh sửa bộ sưu tập trong Postman mà không xuất lại, pipeline sẽ tiếp tục chạy phiên bản cũ. Các nhóm giải quyết vấn đề này bằng kỷ luật, bằng cách coi việc xuất là một commit có chủ đích, hoặc bằng cách chuyển sang một công cụ mà định nghĩa kiểm thử và công cụ chạy là một.

Khi nào nên sử dụng từng công cụ

Sử dụng Postman khi có người thực hiện công việc. Thiết kế một API mới, gỡ lỗi một lệnh gọi thất bại, khám phá một dịch vụ của bên thứ ba, xây dựng và tinh chỉnh một bộ kiểm thử: tất cả những điều này đều mang tính tương tác và thuộc về giao diện đồ họa.

Sử dụng Newman khi không có người trực tiếp thao tác. Chạy bộ kiểm thử trên mỗi pull request, theo lịch trình hàng đêm, hoặc như một bài kiểm thử sơ bộ sau triển khai: tất cả những điều này đều cần một công cụ chạy từ một script và báo cáo thông qua một mã thoát.

Trên thực tế, ranh giới là “viết versus chạy”. Bạn sẽ không chọn cái này thay vì cái kia. Bạn sẽ sử dụng Postman để tạo và Newman để tự động hóa, và tệp bộ sưu tập sẽ mang công việc của bạn giữa chúng. Nếu bạn hoàn toàn không muốn duy trì một công cụ chạy riêng biệt, hướng dẫn của chúng tôi về chạy các bộ sưu tập Postman trong CI mà không cần Newman đề cập đến các lựa chọn khác.

Một giải pháp thay thế hợp nhất: Apidog

Việc duy trì thiết lập Postman-cộng-Newman có nghĩa là xuất các bộ sưu tập, giữ các tệp JSON đồng bộ và quản lý một công cụ chạy riêng biệt. Apidog hợp nhất tất cả những điều đó vào một nền tảng duy nhất. Bạn thiết kế API, gỡ lỗi yêu cầu và xây dựng các kịch bản kiểm thử tự động với các khẳng định trực quan trong cùng một ứng dụng, sau đó chạy các kịch bản đó trong CI/CD với công cụ chạy dòng lệnh tích hợp sẵn. Không có bước xuất và đồng bộ hóa vì các định nghĩa kiểm thử và công cụ thực thi cùng tồn tại.

Apidog cũng bao gồm thiết kế API, máy chủ giả lập và kiểm thử hiệu năng trong cùng một không gian làm việc, do đó các bài kiểm thử chức năng bạn viết cũng là những bài kiểm thử mà pipeline của bạn chạy. Bạn có thể tải xuống Apidog và sử dụng các tính năng kiểm thử của nó miễn phí. Để so sánh các công cụ trong lĩnh vực này, hãy xem danh sách của chúng tôi về các lựa chọn thay thế Postman tốt nhất để kiểm thử API.

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

Newman có phải là một sự thay thế cho Postman không?

Không. Newman không thể tạo hoặc chỉnh sửa các bộ sưu tập; nó chỉ chạy chúng. Bạn vẫn cần Postman, hoặc một công cụ khác, để tạo bộ sưu tập và viết các tập lệnh kiểm thử. Nhiệm vụ của Newman là thực thi công việc đã hoàn thành đó mà không cần giao diện. Chúng bổ trợ cho nhau, không thể thay thế cho nhau.

Newman có tốn tiền không?

Không. Newman là mã nguồn mở và hoàn toàn miễn phí. Nó được phân phối dưới dạng một gói npm. Postman có một cấp độ miễn phí cộng với các gói trả phí cho các nhóm lớn hơn, nhưng bản thân Newman không mất phí bất kể bạn sử dụng nó như thế nào.

Các bài kiểm thử Postman của tôi sẽ hoạt động giống nhau trong Newman chứ?

Có. Newman sử dụng cùng một công cụ thực thi với Postman, vì vậy các khẳng định pm.test và logic yêu cầu chạy giống hệt nhau. Một bộ sưu tập vượt qua trong Postman Collection Runner sẽ tạo ra kết quả tương tự trong Newman, điều này làm cho nó an toàn để sử dụng trong CI.

Newman báo cáo các lỗi kiểm thử như thế nào?

Newman in một bản tóm tắt ra terminal và thoát với mã trạng thái khác 0 khi bất kỳ bài kiểm thử nào thất bại. Mã thoát đó là cách các hệ thống CI phát hiện lỗi. Newman cũng hỗ trợ các trình báo cáo, bao gồm JUnit XML và HTML, do đó kết quả có thể được đưa vào các bảng điều khiển và báo cáo build.

Tôi có thể chạy Newman mà không cần cài đặt Node.js không?

Newman là một gói npm, vì vậy việc cài đặt trực tiếp yêu cầu Node.js. Để tránh điều đó, hãy sử dụng image Docker chính thức postman/newman, nó bao gồm mọi thứ. Cách tiếp cận Docker phổ biến trong các môi trường CI nơi bạn không muốn quản lý một môi trường chạy Node.js trong công việc build.

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