Sử dụng Postman để Kiểm thử API

Khi phát triển ứng dụng Backend bằng NestJS kết hợp với Claude Code, bạn cần một công cụ mạnh mẽ để kiểm thử hoạt động của các đầu API (Endpoints) trước khi tích hợp chúng vào giao diện người dùng (Frontend). Postman là công cụ tiêu chuẩn hàng đầu thế giới được lập trình viên sử dụng để giải quyết bài toán này. Tài liệu này hướng dẫn bạn các bước thiết lập Postman, tạo bộ kiểm thử (Collection) và cấu hình các HTTP Request thực hành.

Postman là gì?

Postman là một ứng dụng phần mềm giúp lập trình viên giả lập các yêu cầu gửi từ Client lên Server. Nhờ có Postman, bạn có thể dễ dàng kiểm tra các tham số, dữ liệu gửi đi (Headers, Body, Query Params) và kiểm soát mã phản hồi trả về (Status Codes, JSON Response) của API một cách trực quan.

Quy trình Kiểm thử API NestJS với Postman

Dưới đây là các bước thực hành chi tiết giúp bạn kiểm thử nhanh chóng một hệ thống API CRUD.
1

Tải và Cài đặt Postman

Tải phiên bản Postman Desktop phù hợp với hệ điều hành của bạn (macOS, Windows hoặc Linux) trực tiếp tại trang chủ postman.com/downloads.
2

Khởi tạo một Collection

Collection là một thư mục dùng để lưu trữ và gom nhóm toàn bộ các HTTP Request liên quan đến một dự án cụ thể.
  1. Ở cột menu bên trái, chọn mục Collections.
  2. Click vào biểu tượng dấu cộng + để tạo mới một Collection.
  3. Đặt tên cho Collection, ví dụ: NestJS Products CRUD.
3

Thiết lập các HTTP Request thực hành

Click chuột phải vào Collection vừa tạo, chọn Add request để bắt đầu cấu hình các lệnh kiểm thử cụ thể:
Dùng để gửi dữ liệu tạo mới lên Server.
  • Method: Chọn POST từ menu thả xuống.
  • URL: Điền http://localhost:3000/products.
  • Headers: Cấu hình tự động gán Content-Type: application/json.
  • Body: Chọn thẻ raw, chọn định dạng là JSON, sau đó điền nội dung sản phẩm:
    {
      "name": "Chuột không dây Logitech",
      "price": 350000,
      "description": "Chuột silent chuyên dùng văn phòng"
    }
    
  • Click Send và kiểm tra phản hồi phía dưới đạt trạng thái 201 Created.
4

Kiểm thử cơ chế Validation tự động

Để thử xem bộ lọc ValidationPipe của NestJS có hoạt động chính xác hay không:
  1. Trong request POST vừa tạo ở trên, hãy sửa lại phần Body thành:
    {
      "name": "Ch", // Bị lỗi vì ngắn hơn 3 ký tự
      "price": -1000 // Thử truyền số âm nếu có ràng buộc lớn hơn 0
    }
    
  2. Click Send và quan sát kết quả. Server NestJS phải phản hồi về mã trạng thái 400 Bad Request đi kèm mô tả lỗi chi tiết ở Response Body.
5

Kiểm thử API yêu cầu Bảo mật (Auth)

Đối với các API yêu cầu đăng nhập và có đính kèm mã bảo mật JWT (JSON Web Token):
  1. Lấy chuỗi token nhận về sau khi chạy API đăng nhập (Login).
  2. Chuyển sang Request API cần bảo mật (ví dụ: DELETE /products/1).
  3. Chọn thẻ Authorization ngay phía dưới thanh nhập URL của Postman.
  4. Trong phần Auth Type, chọn Bearer Token.
  5. Dán toàn bộ chuỗi token của bạn vào ô Token.
  6. Postman sẽ tự động sinh ra header Authorization: Bearer <token> khi gửi Request đi.

Tận dụng Claude Code để tự động hóa kiểm thử Postman

Một lập trình viên chuyên nghiệp sẽ yêu cầu Claude Code viết mã kiểm thử kiểm tra dữ liệu phản hồi (Response Verification) ngay trong Postman.

Prompt mẫu yêu cầu Claude Code viết Test Script cho Postman:

Tôi muốn viết một đoạn mã kiểm thử tự động (Postman Test Script) bằng Javascript chạy sau khi gọi API 'GET /products/:id'. 
Hãy viết giúp tôi đoạn code kiểm thử để dán vào tab 'Tests' của Postman nhằm kiểm tra:
1. HTTP Status Code phản hồi về bắt buộc phải là 200.
2. Response trả về bắt buộc phải là một đối tượng JSON.
3. Đối tượng JSON đó phải chứa đầy đủ các thuộc tính cấu trúc: 'id', 'name', 'price' và 'createdAt'.
Mã Javascript kiểm thử do Claude Code sinh ra để bạn dán vào thẻ Tests của Postman:
// Kiểm tra mã trạng thái HTTP
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// Kiểm tra kiểu dữ liệu JSON
pm.test("Response is valid JSON", function () {
    pm.response.to.be.json;
});

// Kiểm tra sự tồn tại của các thuộc tính bắt buộc trong dữ liệu trả về
pm.test("Response contains required product fields", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("id");
    pm.expect(jsonData).to.have.property("name");
    pm.expect(jsonData).to.have.property("price");
    pm.expect(jsonData).to.have.property("createdAt");
});
Bạn có thể lưu các URL cục bộ thành các biến môi trường (Environment Variables) trong Postman (ví dụ: {{base_url}}) để dễ dàng chuyển đổi cấu hình khi deploy ứng dụng lên môi trường Stagging hoặc Production thực tế.