Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Postman cho BA: workflow test API

API and Technical Fundamentals cho BA Bài 14/60

Mở đầu — vì sao bài này quan trọng

Hãy tưởng tượng bạn là BA đang phụ trách một tính năng đặt hàng. Dev báo: "API tạo đơn hàng đã xong, anh test thử đi." Bạn mở tài liệu spec ra, thấy mô tả một endpoint POST /orders, nhưng giao diện thì chưa có gì để bấm. Vậy làm sao bạn biết API đó hoạt động đúng như mô tả? Làm sao bạn xác nhận rằng khi gửi đúng dữ liệu thì hệ thống trả về đúng kết quả, và khi gửi sai thì nó báo lỗi hợp lý?

Đây chính là khoảnh khắc mà Postman trở thành người bạn thân thiết nhất của một BA kỹ thuật. Postman là công cụ cho phép bạn gửi request đến API và xem response trả về — mà không cần một dòng code nào, không cần đợi dev dựng giao diện. Nói cách khác, Postman biến API "vô hình" (chỉ là những endpoint trong tài liệu) thành thứ bạn có thể tự tay bấm thử, nghịch thử, và kiểm chứng.

Với BA, Postman không phải để "lập trình". Vai trò của bạn khác với dev hay QA. BA dùng Postman để: kiểm tra xem implementation có khớp với spec không, tự mình khám phá hành vi của API trước khi viết yêu cầu, và tạo ra ví dụ request/response cụ thể để đính kèm vào tài liệu nghiệp vụ. Trong bài này, chúng ta sẽ đi qua workflow test API thực tế dành riêng cho góc nhìn của BA — không phải khóa học QA automation, mà là những kỹ năng giúp bạn tự tin ngồi cùng bàn với đội kỹ thuật.

Khái niệm cốt lõi

Postman là gì và giải quyết vấn đề gì cho BA

Postman là một API client — phần mềm desktop (và bản web) giúp bạn soạn một HTTP request, gửi đi, rồi xem response. Bạn điền vào: phương thức (GET, POST...), URL endpoint, headers, và body (nếu cần). Bấm Send, Postman gửi request đến server và hiển thị lại status code, headers, body trả về, cùng thời gian phản hồi.

Điểm mạnh của Postman với BA nằm ở ba việc:

  • Test không cần UI: API thường được xây xong trước khi giao diện hoàn thiện. Postman cho bạn "chạm" vào logic backend ngay từ sớm, phát hiện vấn đề khi sửa còn rẻ.
  • Validate spec khớp implementation: Tài liệu nói "trả về customer_name", nhưng API thực tế trả về customerName hay name? Chỉ có gửi thử mới biết. Sai lệch kiểu này nếu không bắt sớm sẽ gây lỗi tích hợp về sau.
  • Tạo ví dụ sống động cho tài liệu: Một request mẫu với dữ liệu thật, kèm response thật, có giá trị gấp nhiều lần một đoạn mô tả khô khan. Bạn có thể đính nó vào user story, acceptance criteria, hoặc tài liệu bàn giao.

Các thành phần Postman mà BA cần nắm

Bạn không cần biết hết mọi tính năng. Nhưng bốn khái niệm sau là nền tảng:

Request — đơn vị cơ bản. Mỗi request gồm method, URL, headers, và (tùy chọn) body. Ví dụ: GET https://api.example.com/v1/orders/12345.

Collection — một thư mục chứa nhiều request được nhóm lại theo nghiệp vụ. Ví dụ collection "Quản lý đơn hàng" chứa các request: Tạo đơn, Xem đơn, Hủy đơn, Danh sách đơn. Collection giúp bạn tổ chức gọn gàng và chia sẻ cho cả team.

Environment — tập hợp các biến (variable) để bạn dễ dàng chuyển qua lại giữa các môi trường. Thay vì gõ cứng https://api-staging.company.vn, bạn tạo biến {{base_url}} rồi định nghĩa giá trị khác nhau cho môi trường Dev, Staging, Production. Đổi môi trường chỉ bằng một cú click thay vì sửa từng request.

Variable — biến tái sử dụng. Phổ biến nhất với BA là {{base_url}} (địa chỉ gốc của API) và {{token}} (mã xác thực). Lưu token vào biến giúp bạn không phải dán đi dán lại chuỗi dài mỗi lần test.

Đọc kết quả: status code và response body

Sau khi bấm Send, hai thứ bạn cần nhìn ngay:

  • Status code: con số 3 chữ số cho biết kết quả. 200 OK hoặc 201 Created là thành công; 400 là request của bạn sai; 401/403 là vấn đề xác thực/quyền; 404 là không tìm thấy; 500 là lỗi phía server. (Phần chi tiết về status code có bài riêng — ở đây bạn chỉ cần đọc được tín hiệu cơ bản.)
  • Response body: nội dung trả về, thường ở định dạng JSON. Đây là nơi bạn đối chiếu với spec: đúng field chưa, đúng kiểu dữ liệu chưa, có thiếu thông tin gì không.

Tình huống thực tế

Tình huống 1: BA tại sàn TMĐT phát hiện sai lệch spec trước khi dev kịp gây lỗi

Linh là BA tại một sàn thương mại điện tử ở TP.HCM, đang phụ trách tính năng "tra cứu trạng thái đơn hàng". Spec do chính cô viết quy định: API GET /orders/{id} phải trả về field order_status với một trong các giá trị pending, confirmed, shipping, delivered, cancelled.

Khi dev báo xong, Linh mở Postman, tạo request GET {{base_url}}/orders/88291, gắn token vào header Authorization, bấm Send. Response trả về 200 OK, nhưng cô nhận ra hai vấn đề: field tên là status chứ không phải order_status, và giá trị trả về là SHIPPING (chữ hoa) thay vì shipping. Cô thử thêm vài đơn khác và thấy một đơn trả về in_transit — một giá trị không hề có trong spec.

Bài học: Nếu Linh không test, đội frontend sẽ code dựa trên spec (order_status viết thường), giao diện sẽ hiển thị trống vì không khớp với dữ liệu thật. Bằng 15 phút với Postman, cô bắt được sai lệch khi nó còn là một dòng chat với dev, thay vì một bug ticket sau khi đã lên Production. Cô chụp lại response trong Postman, gửi cho dev kèm câu hỏi: "Field này nên là order_status viết thường theo spec, và giá trị in_transit chưa được định nghĩa — mình thống nhất lại nhé?"

Tình huống 2: BA tại fintech tạo bộ request mẫu để bàn giao cho đối tác tích hợp

Một công ty fintech tại Hà Nội cung cấp API thanh toán cho các đối tác ví điện tử. Tuấn, BA của dự án, được giao nhiệm vụ chuẩn bị tài liệu tích hợp cho một ngân hàng đối tác. Vấn đề: tài liệu Swagger có sẵn nhưng đối tác phản hồi rằng "đọc mô tả vẫn chưa hình dung được request thật trông thế nào".

Tuấn dùng Postman tạo một collection "Payment Integration - Demo" gồm 4 request: khởi tạo giao dịch, kiểm tra trạng thái, hoàn tiền, và truy vấn số dư. Mỗi request anh điền sẵn dữ liệu mẫu hợp lý (số tiền 50.000đ, mã giao dịch giả, mô tả "Thanh toán đơn TEST"), test cho chạy thật trên môi trường sandbox, rồi dùng tính năng Save Example của Postman để lưu lại cặp request–response thực tế. Cuối cùng anh Export collection ra file JSON và gửi cho đối tác.

Bài học: Đối tác chỉ cần import file JSON đó vào Postman của họ là có ngay một bộ request chạy được, không phải tự mò từ tài liệu. Thời gian onboarding tích hợp giảm từ vài tuần xuống còn vài ngày. Đây là minh chứng rõ nhất cho việc BA dùng Postman không chỉ để test mà còn để tạo tài sản tài liệu có giá trị thực.

Tình huống 3: BA xác minh "happy path" và "edge case" trước khi viết acceptance criteria

Mai là BA của một startup giao đồ ăn. Cô đang viết acceptance criteria cho API áp mã giảm giá: POST /cart/apply-coupon. Trước khi viết, cô muốn hiểu rõ API thực sự hành xử thế nào trong các tình huống.

Trong Postman, cô tạo vài request thử nghiệm: (1) mã hợp lệ còn hạn — kỳ vọng 200 và giỏ hàng giảm giá; (2) mã đã hết hạn — kỳ vọng lỗi rõ ràng; (3) mã không tồn tại; (4) áp hai mã cùng lúc. Khi chạy, cô phát hiện trường hợp mã hết hạn lại trả về 200 với thông báo giảm 0đ — nghĩa là API "âm thầm" không báo lỗi mà người dùng vẫn tưởng đã áp thành công.

Bài học: Nhờ tự test các edge case, Mai viết được acceptance criteria sắc bén: "Khi mã hết hạn, hệ thống PHẢI trả về status 400 với message Mã giảm giá đã hết hạn, KHÔNG được trả về 200." Postman giúp BA chuyển từ "đoán API làm gì" sang "biết chắc API làm gì", và từ đó viết yêu cầu chính xác hơn nhiều.

Hướng dẫn từng bước

Đây là workflow test một API điển hình dành cho BA, từ con số 0:

Bước 1 — Cài đặt và đăng nhập. Tải Postman tại postman.com, cài lên máy (có bản miễn phí đủ dùng cho BA). Đăng nhập để đồng bộ và chia sẻ collection với team.

Bước 2 — Tạo Collection. Bấm New > Collection, đặt tên theo nghiệp vụ, ví dụ "Quản lý đơn hàng". Đây là nơi gom các request liên quan để dễ tìm và dễ chia sẻ.

Bước 3 — Thiết lập Environment và biến. Bấm Environments > Create. Tạo biến base_url với giá trị môi trường staging (ví dụ https://api-staging.company.vn/v1) và biến token để lưu mã xác thực. Sau này mọi request chỉ cần dùng {{base_url}}, đổi môi trường là đổi toàn bộ.

Bước 4 — Tạo request đầu tiên. Trong collection, bấm Add request. Chọn method (ví dụ GET), nhập URL {{base_url}}/orders/12345. Nếu API cần xác thực, vào tab Headers, thêm Authorization với giá trị Bearer {{token}} (kiểu xác thực có bài riêng — ở đây chỉ cần biết dán token vào đâu).

Bước 5 — Với request có body (POST/PUT). Vào tab Body, chọn raw và định dạng JSON. Nhập dữ liệu, ví dụ:

{
  "customer_id": 1024,
  "items": [{ "product_id": 55, "quantity": 2 }],
  "shipping_address": "12 Lê Lợi, Q1, TP.HCM"
}

Bước 6 — Gửi và đọc kết quả. Bấm Send. Quan sát: status code (góc phải), tab Body chứa response, và thời gian phản hồi. Đối chiếu từng field với spec.

Bước 7 — Lưu Example. Khi đã có cặp request–response ưng ý, bấm Save Response > Save as example. Ví dụ này sẽ đi kèm request và là tài liệu sống cho team.

Bước 8 — Chia sẻ. Bấm Export trên collection để xuất file JSON, hoặc dùng Share để tạo link. Đính kèm vào tài liệu nghiệp vụ hoặc gửi cho dev/đối tác.

Lỗi thường gặp & mẹo

Quên gắn token, nhận 401 Unauthorized. Lỗi phổ biến nhất. Nếu API trả về 401, kiểm tra header Authorization đã có chưa, token còn hạn không, biến {{token}} đã được điền giá trị trong environment đang chọn chưa.

Gửi request lên nhầm môi trường. Bạn test trên Production thay vì Staging và lỡ tạo dữ liệu rác — hoặc tệ hơn, xóa nhầm dữ liệu thật. Mẹo: luôn nhìn góc trên bên phải xem environment đang chọn là gì TRƯỚC khi bấm Send. Đặt tên môi trường rõ ràng như "PROD - CẨN THẬN".

Quên đặt Content-Type: application/json khi gửi body. Server có thể không hiểu được body và trả về 400. Khi chọn raw + JSON trong tab Body, Postman thường tự thêm header này, nhưng nếu chọn raw + Text thì phải thêm tay.

Nhầm giữa lỗi của mình và lỗi của API. Khi nhận 400, đó thường là request của BẠN sai (thiếu field, sai kiểu dữ liệu). Khi nhận 500, đó là lỗi phía server — lúc này hãy báo dev kèm ảnh chụp request và response. Phân biệt được điều này giúp bạn báo bug đúng người.

Mẹo dùng Console để debug. Bấm biểu tượng Console ở góc dưới Postman để xem chính xác request đã được gửi đi như thế nào (đầy đủ URL, headers, body). Rất hữu ích khi response không như mong đợi mà bạn không rõ tại sao.

Mẹo viết test nhẹ nhàng. Tab Tests cho phép viết một dòng kiểm tra đơn giản, ví dụ pm.response.to.have.status(200);. BA không cần viết test phức tạp, nhưng một dòng như vậy giúp bạn biết ngay request nào "đỏ" khi chạy lại cả collection.

Bài tập thực hành

Dùng một API công khai miễn phí để luyện tập (ví dụ https://jsonplaceholder.typicode.com — API giả lập không cần token):

  • Cài Postman và tạo collection tên "Luyện tập API".
  • Tạo environment "Practice" với biến base_url = https://jsonplaceholder.typicode.com.
  • GET một bản ghi: tạo request GET {{base_url}}/posts/1. Gửi và xác nhận status 200. Ghi lại các field trong response.
  • POST tạo mới: tạo request POST {{base_url}}/posts với body JSON gồm title, body, userId. Gửi và quan sát status code trả về.
  • Tạo lỗi có chủ đích: gọi GET {{base_url}}/posts/99999 (id không tồn tại) và ghi lại status code nhận được. Đây là cách bạn quan sát hành vi edge case.
  • Lưu Example cho request ở bước 3, rồi Export collection ra file JSON.
  • Viết một câu acceptance criteria dựa trên những gì bạn quan sát được — ví dụ về việc API nên trả về status nào khi không tìm thấy bản ghi.
Hoàn thành 7 bước này, bạn đã thực hiện trọn vẹn một vòng workflow test API mà một BA kỹ thuật cần làm.

Tóm tắt

Postman là công cụ giúp BA "chạm" vào API mà không cần code và không cần đợi giao diện. Ba giá trị cốt lõi cho BA: test sớm khi chưa có UI, validate spec có khớp implementation thật không, và tạo request/response mẫu để làm tài liệu. Bạn cần nắm bốn khái niệm nền tảng — Request, Collection, Environment, Variable — và biết đọc hai tín hiệu chính của kết quả: status code và response body.

Workflow điển hình: tạo collection theo nghiệp vụ, thiết lập environment với biến base_urltoken, soạn request, gửi và đối chiếu với spec, lưu example, rồi chia sẻ. Những lỗi hay gặp nhất là quên token (401), nhầm môi trường, và lẫn lộn lỗi của mình (400) với lỗi server (500). Qua ba tình huống thực tế — phát hiện sai lệch field, bàn giao bộ request cho đối tác, và xác minh edge case — bạn thấy rõ Postman không biến BA thành lập trình viên, mà giúp BA chuyển từ "đoán API làm gì" sang "biết chắc API làm gì". Đó chính là sự khác biệt giữa một BA viết yêu cầu mơ hồ và một BA kỹ thuật được đội phát triển tin tưởng.