# Postman Cơ Bản: Test REST API Đầu Tiên Cho Tester

> Lần đầu nghe sếp bảo "em test API cái này nhé", rất nhiều bạn manual tester lúng túng vì chưa biết bắt đầu từ đâu. 🙂 Tin vui là bạn không cần biết lập trình để postman test api — chỉ cần một công cụ trực quan và vài bước làm quen. Bài này tôi hướng dẫn Postman cho người mới theo kiểu cầm tay chỉ việc: cài đặt, gửi request GET/POST, đọc response và viết test assertion đầu tiên, tất cả trên một ví dụ thật.

- **URL canonical**: https://itlearn.vn/blog/postman-test-api
- **Published**: 2026-06-30T11:00:00+07:00
- **Modified**: 2026-08-24T07:21:58+07:00
- **Author**: Anh Tuấn
- **Category**: API Testing (https://itlearn.vn/blog/cat/api-testing)
- **Reading time**: 13 phút
- **Source site**: IT LEARN — Học viện Software Testing tiếng Việt

---

## Postman là gì & vì sao tester dùng

**Postman là công cụ GUI giúp tester gửi request HTTP đến API rồi đọc response, mà không cần viết code.** Khi dùng Postman test api, bạn nhập URL, chọn method (GET/POST...), thêm header/body, bấm Send và xem ngay status code cùng dữ liệu JSON trả về. Nó biến việc "nói chuyện" với API thành thao tác trực quan, rất hợp người mới.

Vì sao tester chuộng cách postman test api kiểu này? Vì nó cho bạn nhìn thấy mọi thứ rõ ràng: request gửi đi gồm gì, server đáp lại ra sao, mất bao lâu. Bạn có thể lưu lại request để chạy lại nhiều lần, gom thành bộ test, thậm chí viết assertion tự kiểm tra. So với việc viết script bằng code ngay từ đầu, Postman giúp bạn tập trung vào *tư duy kiểm thử* thay vì cú pháp lập trình.

Nếu bạn còn mơ hồ "API" hay "RESTful" nghĩa là gì, hãy đọc trước [API RESTful là gì](/blog/api-restful-la-gi); còn muốn nhìn bức tranh tổng thể nghề thì xem [API testing là gì](/blog/api-testing-la-gi). Bài này tôi giả định bạn đã nắm sơ khái niệm và muốn bắt tay làm ngay.

Xuyên suốt bài, tôi dùng một ví dụ quen thuộc: **Hệ thống đặt phòng họp nội bộ**. Hệ thống này có API để lấy danh sách lượt đặt (GET) và tạo một lượt đặt mới (POST). Ta sẽ test chính hai API đó.

## Cài đặt & giao diện Postman

Cài Postman rất nhẹ nhàng. Vào trang postman.com, tải bản desktop cho Windows/macOS/Linux rồi cài như phần mềm thường. Có cả bản web chạy trên trình duyệt, nhưng bản desktop tiện hơn vì gọi được API chạy ở `localhost`. Đăng nhập (hoặc bấm bỏ qua) là dùng được ngay — Postman miễn phí cho nhu cầu cơ bản.

Mở Postman lên, vài khu vực bạn cần biết để postman test api không bị lạc:

Khu vực

Vị trí

Dùng để làm gì

Sidebar (Collections)

Bên trái

Lưu và gom nhóm các request thành bộ test

Thanh request

Trên cùng

Chọn method (GET/POST), nhập URL, bấm Send

Tab Params/Headers/Body

Giữa

Khai báo tham số, header, dữ liệu gửi đi

Panel Response

Dưới

Xem status code, body JSON, header, thời gian phản hồi

Tab Tests

Giữa

Viết test assertion (pm.test) kiểm tra response

Một khái niệm hay gây nhầm: **Workspace** là không gian làm việc lớn (theo cá nhân hoặc nhóm), còn **Collection** là một thư mục gom các request liên quan bên trong workspace. Người mới cứ tạo một workspace cá nhân, rồi một collection tên "Đặt phòng họp" là đủ.

## Gửi request GET đầu tiên (từng bước)

Bước đầu tiên khi postman test api thường là một request GET. GET là method dùng để *đọc* dữ liệu — an toàn nhất để tập gửi request đầu tiên vì nó không làm thay đổi gì trên server. Ta sẽ lấy danh sách lượt đặt phòng. Các bước cụ thể như bảng dưới:

Bước

Thao tác trong Postman

1

Bấm **New → HTTP Request** (hoặc dấu **+** mở tab mới)

2

Chọn method **GET** ở ô bên trái thanh request

3

Dán URL endpoint, ví dụ `https://api.example.com/bookings`

4

(Tùy chọn) Mở tab **Params** thêm query như `?date=2026-07-01`

5

(Nếu API cần) Mở tab **Headers** thêm `Authorization`

6

Bấm **Send**

7

Xem panel **Response** ở dưới: status code và body JSON

Khi gửi thành công, bạn sẽ thấy `200 OK` ở góc và một mảng JSON các lượt đặt. Nếu nhận `401`, nghĩa là thiếu xác thực; `404` nghĩa là sai đường dẫn endpoint. Đây chính là lúc kiến thức [HTTP status code](/blog/http-status-code) phát huy tác dụng — đọc đúng mã là đọc đúng "tâm trạng" của server.

Mẹo nhỏ: sau khi request chạy ngon, bấm **Save** để lưu vào collection "Đặt phòng họp". Lần sau bạn chỉ cần mở ra bấm Send, khỏi gõ lại.

## Gửi POST với body JSON

Bước tiếp theo khi postman test api là thử một request POST. POST dùng để *tạo mới* dữ liệu — ở đây là tạo một lượt đặt phòng. Khác với GET, POST cần gửi kèm **body** chứa dữ liệu. Các bước:

- Tạo request mới, chọn method **POST**.

- Nhập URL: `https://api.example.com/bookings`.

- Mở tab **Body**, chọn **raw**, rồi chọn định dạng **JSON** ở menu bên phải.

- Postman tự thêm header `Content-Type: application/json` — đây là điều người mới hay quên khi test thủ công, thiếu nó server có thể từ chối.

- Nhập body, ví dụ:

`json
{
 "room": "Phòng họp A",
 "date": "2026-07-01",
 "start": "09:00",
 "end": "10:00",
 "booker": "tuan.bui"
}`

- Bấm **Send**.

Một POST tạo mới thành công thường trả về `201 Created` kèm dữ liệu lượt đặt vừa tạo (thường có thêm một `id`). Đây là lúc tư duy tester lên tiếng: đừng chỉ test ca "đẹp". Hãy thử gửi body thiếu trường `room`, hoặc đặt trùng giờ một phòng — API tốt phải trả lỗi rõ ràng (ví dụ `400` cho dữ liệu sai, `409 Conflict` khi trùng lịch) chứ không vỡ thành `500` chung chung.

## Đọc response: status, body, header

Đọc response cho đúng là kỹ năng cốt lõi khi postman test api. Panel Response chia làm mấy phần, mỗi phần kể một câu chuyện khác nhau:

- **Status code:** con số ở góc trên (200, 201, 400, 401, 404, 500...). Đây là điều đầu tiên cần kiểm. Nhớ nhanh: 2xx thành công, 4xx lỗi do request gửi sai, 5xx lỗi do server.

- **Body:** dữ liệu trả về, thường là JSON. Bạn đối chiếu từng field với kỳ vọng — đúng giá trị chưa, đúng kiểu dữ liệu chưa, có thiếu field nào không.

- **Headers:** tab Headers trong response cho biết metadata như `Content-Type`, thông tin phân trang, hay header xác thực. Đừng bỏ qua, nhiều lỗi tích hợp nằm ở đây.

- **Time & Size:** Postman hiển thị thời gian phản hồi và dung lượng — một chỉ báo hiệu năng sơ bộ để bạn cảnh giác nếu API chậm bất thường.

Quy trình đọc của tôi luôn theo thứ tự: status code trước (đúng mã chưa?), rồi tới body (đúng dữ liệu chưa?), cuối cùng liếc header và thời gian. Nắm trình tự này, bạn sẽ không bị rối khi response trả về một đống thông tin.

## Viết test assertion cơ bản (pm.test)

Đọc bằng mắt thì ổn cho vài request, nhưng postman test api nghiêm túc cần *tự động kiểm tra*. Postman cho phép viết assertion trong tab **Tests** bằng JavaScript đơn giản — bạn gần như chỉ điền vào khuôn mẫu, không cần giỏi lập trình. Hàm chính là `pm.test()`, kết hợp `pm.expect()` để khẳng định điều bạn mong đợi.

Ví dụ, cho request POST tạo lượt đặt ở trên, mở tab Tests và viết:

```javascript // Kiểm tra status code đúng 201 pm.test("Tao booking tra ve 201", function () { pm.response.to.have.status(201); });

// Kiểm tra response trả về có id pm.test("Response co truong id", function () { const data = pm.response.json(); pm.expect(data).to.have.property("id"); });

// Kiểm tra đúng phòng đã đặt pm.test("Dung phong da dat", function () { const data = pm.response.json(); pm.expect(data.room).to.eql("Phòng họp A"); }); ```

Bấm Send, kéo xuống tab **Test Results** trong panel Response: mỗi assertion đậu sẽ hiện màu xanh (PASS), trượt thì màu đỏ (FAIL). Vậy là bạn vừa có một bộ kiểm thử tự xác minh, chạy lại bao nhiêu lần cũng cho kết quả nhất quán — đúng tinh thần test mà không phải xét bằng mắt mỗi lần.

Để thiết kế các assertion cho đủ ca (hợp lệ, không hợp lệ, biên), bạn áp dụng tư duy phủ case y như khi test giao diện. Đây là phần thực hành trọng tâm trong [khóa API Testing](/api.html).

## Collection & biến môi trường

Khi postman test api ở quy mô lớn hơn, bạn cần tổ chức cho gọn — và đó là lúc **Collection** cùng **biến môi trường** tỏa sáng.

**Collection** là bộ sưu tập các request được lưu lại. Bạn gom tất cả request "Đặt phòng họp" (GET danh sách, POST tạo, GET chi tiết...) vào một collection, đặt theo thứ tự, rồi có thể chạy cả bộ một lần bằng **Collection Runner**.

**Biến môi trường (environment variable)** giúp bạn tránh lặp lại và dễ chuyển giữa các môi trường (dev, staging, production). Thay vì gõ cứng `https://api.example.com` ở mọi request, bạn tạo biến `base_url` rồi dùng cú pháp hai ngoặc nhọn:

`{{base_url}}/bookings`

Tạo hai environment "Dev" và "Staging" với `base_url` khác nhau; muốn đổi nơi test, chỉ cần chọn environment ở góc phải trên — toàn bộ request tự trỏ sang đúng server. Token xác thực cũng nên để thành biến `{{token}}` cho an toàn và tiện thay.

Khi đã có collection chạy ngon, bạn có thể đưa nó lên CI để chạy tự động mỗi lần build — và đó là cầu nối sang **Newman**, công cụ chạy collection bằng dòng lệnh mà tôi nói ở phần FAQ dưới đây.

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

### Postman dùng để làm gì?

Postman là công cụ để gửi request HTTP đến API và đọc response một cách trực quan, không cần viết code. Tester dùng nó để postman test api theo kiểu hands-on: gửi GET/POST, kiểm tra status code và dữ liệu JSON, viết assertion tự kiểm, gom request thành collection và chạy lại nhiều lần khi cần.

### Postman có miễn phí không?

Có, Postman miễn phí cho cá nhân và nhóm nhỏ với đầy đủ tính năng cốt lõi: gửi request, viết test, tạo collection và environment. Các gói trả phí chỉ thêm tính năng cộng tác nâng cao, quản lý nhóm lớn và hạn mức cao hơn. Người mới học test API hoàn toàn dùng bản miễn phí là đủ.

### Test API bằng Postman có cần code không?

Để bắt đầu thì không. Bạn gửi request và đọc response hoàn toàn bằng giao diện. Chỉ khi muốn viết assertion (pm.test) bạn mới chạm tới vài dòng JavaScript đơn giản theo khuôn mẫu — gần như điền chỗ trống. Người mới không biết lập trình vẫn test API tốt với Postman.

### pm.test là gì?

`pm.test()` là hàm trong Postman để viết một assertion — một phép kiểm tra tự động trên response. Bạn đặt tên test rồi khẳng định điều mong đợi, ví dụ status code phải là 201 hay JSON phải có trường id. Khi chạy, Postman báo PASS hoặc FAIL, giúp bạn xác minh API tự động thay vì xét bằng mắt.

### Newman là gì?

Newman là công cụ dòng lệnh (CLI) để chạy một collection Postman bên ngoài giao diện. Nhờ nó, bạn đưa bộ test API vào pipeline CI/CD, chạy tự động mỗi lần build hoặc theo lịch và xuất báo cáo kết quả. Nói gọn, Newman biến collection bạn dựng trong Postman thành test tự động trong hệ thống tích hợp liên tục. Muốn học test API bài bản với Postman và thực hành trên dự án thật, bạn có thể tham khảo [khóa API Testing](/api.html) của IT LEARN. Nếu còn mới, hãy chắc nền tảng bằng [API RESTful là gì](/blog/api-restful-la-gi) và nhìn lộ trình tổng thể ở [API testing là gì](/blog/api-testing-la-gi).

