Postman là gì? Hướng dẫn API Testing với Postman – API Platform
Postman là gì? Nó được các developer sử dụng để làm gì? Có thể đây là lần đầu tiên bạn nghe đến Postman, nhưng đừng lo, tất cả thông tin chi tiết nhất sẽ được TopDev chia sẻ trong bài viết dưới đây!
Postman là gì?
Đầu tiên ta cần nắm khái niệm Postman là gì?
Postman là một nền tảng API để xây dựng và sử dụng API.
Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong thử nghiệm các API.
Như ta đã biết, API chịu trách nhiệm kết nối các ứng dụng với nhau, có Postman sẽ giúp cho thao tác với API này trở nên dễ dàng hơn. Thông thường, Postman sẽ được dùng cho API kiểu REST. Với Postman, ta có thể gọi Rest API mà không cần viết dòng code nào.
Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH, DELETE, …). Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiện cho việc sử dụng lại khi cần.
Các tính năng chính của Postman
Postman là một công cụ mạnh mẽ giúp các nhà phát triển và tester làm việc với API một cách hiệu quả. Dưới đây là một số tính năng nổi bật của Postman:
Postman Visualizer
Postman’s Visualizer cho phép bạn tăng cường việc trình bày dữ liệu phản hồi API bằng cách sử dụng HTML, CSS và JavaScript. Bạn có thể tạo các hình ảnh tùy chỉnh như biểu đồ, bảng hoặc các phần tử khác để làm cho dữ liệu phản hồi dễ đọc và hiểu hơn.
Cách sử dụng Postman Visualizer:
- Tạo một yêu cầu mới hoặc mở một yêu cầu hiện có trong Postman.
- Gửi yêu cầu để nhận phản hồi từ API.
- Trong bảng phản hồi, nhấp vào nút “Visualize” ở góc trên bên phải.
- Mở trình soạn thảo Visualizer, nơi bạn có thể viết mã HTML, CSS và JavaScript để tùy chỉnh hình ảnh phản hồi.
- Sử dụng các biến dữ liệu sẵn có (ví dụ: responseBody, responseHeaders, v.v.) để truy cập dữ liệu phản hồi trong mã của bạn.
- Viết mã HTML, CSS và JavaScript để tạo hình ảnh mong muốn.
- Xem trước hình ảnh bằng cách nhấp vào nút “Preview”.
- Lưu các thay đổi và đóng trình soạn thảo Visualizer.
Thư viện tích hợp sẵn (Built-in Libraries)
Postman cung cấp nhiều thư viện bên ngoài mà bạn có thể sử dụng trong các tab Pre-request Script và Test Script để thêm các chức năng bổ sung mà JavaScript không có sẵn.
Một số thư viện thông dụng trong Postman:
- Moment.js: Một thư viện JavaScript phổ biến để phân tích, thao tác và định dạng ngày giờ.
- Lodash: Thư viện tiện ích cung cấp nhiều hàm hỗ trợ xử lý mảng, đối tượng và chuỗi.
- Faker.js: Thư viện để tạo dữ liệu giả lập thực tế như tên, địa chỉ, số điện thoại, email, v.v.
Kiểm soát luồng công việc (Workflow Control)
Postman cho phép bạn kiểm soát thứ tự thực hiện các yêu cầu trong một collection bằng phương thức postman.setNextRequest
. Bằng cách sử dụng logic điều kiện trong tab Pre-request Script hoặc Tests, bạn có thể thiết lập yêu cầu tiếp theo được thực hiện dựa trên các điều kiện cụ thể.
Cách sử dụng postman.setNextRequest:
- Mở Collection Postman và điều hướng đến yêu cầu mong muốn.
- Trong tab Pre-request Script hoặc Tests, viết logic điều kiện bằng JavaScript.
- Sử dụng phương thức
postman.setNextRequest
để chỉ định yêu cầu tiếp theo được thực hiện. - Lưu các thay đổi.
Hỗ trợ GraphQL tích hợp sẵn (Built-in GraphQL Support)
Postman cung cấp hỗ trợ mạnh mẽ cho GraphQL, giúp các nhà phát triển làm việc với các API GraphQL dễ dàng hơn.
Các tính năng và chức năng chính cho GraphQL trong Postman:
- GraphQL Variables: Cho phép bạn định nghĩa và sử dụng các biến GraphQL trong các yêu cầu.
- GraphQL Request Body: Gửi các truy vấn và mutation GraphQL dưới dạng yêu cầu POST trong phần thân yêu cầu.
- GraphQL Autocompletion: Hỗ trợ tự động hoàn thành các trường, kiểu và tham số khi bạn gõ.
- User-Defined GraphQL Schemas: Cho phép nhập và sử dụng các schema GraphQL của riêng bạn.
- GraphQL Query History: Giữ lịch sử các truy vấn GraphQL, giúp dễ dàng truy cập và tái sử dụng.
Collections
Postman cung cấp tính năng “Collections” để giúp bạn tổ chức các yêu cầu API của mình. Với collections, bạn có thể nhóm các yêu cầu liên quan lại với nhau, giúp quản lý và thực hiện nhiều yêu cầu như một đơn vị đồng nhất.
Các tính năng và lợi ích của Collections trong Postman:
- Organization: Tổ chức các yêu cầu API theo cách phân cấp.
- Execution: Dễ dàng thực hiện tất cả các yêu cầu trong một collection chỉ với một lần nhấp.
- Variables and Environments: Hỗ trợ sử dụng các biến và thiết lập các môi trường khác nhau.
- Sharing and Collaboration: Chia sẻ các collections với các thành viên trong nhóm để cộng tác.
- Documentation: Tạo tài liệu cho các collections để người khác hiểu và sử dụng API.
Kiểm thử và xác nhận (Tests and Assertions)
Postman bao gồm một khung kiểm thử mạnh mẽ, cho phép bạn viết các bài kiểm tra bằng JavaScript để xác thực các khía cạnh khác nhau của phản hồi API.
Các xác nhận phổ biến trong Postman tests:
- Status code assertion: Xác minh mã trạng thái phản hồi khớp với giá trị mong đợi.
- Response body assertion: Kiểm tra dữ liệu trong phần thân phản hồi.
- Header assertion: Xác thực sự hiện diện và giá trị của các tiêu đề cụ thể trong phản hồi.
- Response time assertion: Đảm bảo thời gian phản hồi nằm trong phạm vi chấp nhận được.
Ví dụ về kiểm thử đơn giản:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response body contains key 'username'", function () {
pm.response.to.have.jsonBody('username');
});
pm.test("Content-Type header is present and set to JSON", function () {
pm.response.to.have.header("Content-Type", "application/json");
});
pm.test("Response time is within acceptable range", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
Postman là một công cụ không thể thiếu cho các nhà phát triển và tester làm việc với API. Với các tính năng mạnh mẽ và linh hoạt như Visualizer, thư viện tích hợp sẵn, kiểm soát luồng công việc, hỗ trợ GraphQL, collections và kiểm thử, Postman giúp đơn giản hóa và tối ưu hóa quy trình phát triển và kiểm thử API.
Hướng dẫn cài đặt Postman
Postman cho phép người dùng cài đặt dưới 2 hình thức: tool cài vào máy và Chrome Apps.
Cài Postman vào máy:
Download tại địa chỉ https://www.getpostman.com/
Cài đặt Postman như một Chrome app (UPDATE 30/10/2017): Hiện nay Chrome không còn hỗ trợ app nữa nên phần này không còn sử dụng được
Vào link https://chrome.google.com/webstore/search/postman?hl=en-US. Sau khi cài xong Postman sẽ xuất hiện ở đây
Các thành phần chính của Postman
Giao diện của Postman
Settings: chứa các thông tin về cài đặt chung.
- Thông tin Account: dùng để Login, logout và sync data.
- Settings tùy chỉnh: themes, shortcut, format…
- Import data từ ngoài vào
Collections: lưu trữ thông tin của các API theo folder hoặc theo thời gian.
API content: hiển thị nội dung chi tiết API và các phần hỗ trợ giúp thực hiện test API. Đây là phần mà tester phải làm việc nhiều nhất.
Trong phần này gồm có 3 thành phần chính:
- Environments: Chứa các thông tin môi trường. Ví dụ: mình làm 1 dự án nhưng có 3 môi trường khác nhau: dev, staging và product. Có phần này, mình có thể nhanh chóng đổi sang môi trường cần test mà không phải mất công đổi URL của từng request. (Cái này sẽ được nói rõ hơn ở những bài sau)
- Request: Phần chứa các thông tin chính của API.
- Response: Chứa các thông tin trả về sau khi Send Request.
Các thành phần khác của Postman
- New – tạo request, collection hoặc enviroment mới.
- Import – import collection hoặc environment. Có các tuỳ chọn để import từ file, folder, link hoặc paste từ text thuần.
- Runner – Kiểm tra tự động hóa có thể được thực hiện thông qua Runner cả collection.
- Open New – Mở một tab mới, cửa sổ Postman hoặc cửa sổ Runner.
- My Workspace – Tạo khu vực làm việc riêng hoặc cho một nhóm.
- Invite – Cộng tác với nhiều thành viên bằng việc mời các thành viên.
- History – Các request đã thực hiện mà bạn đã thực hiện sẽ được hiển thị trong History. Giúp bạn có thể lần theo các hành động bạn đã làm.
- Collections – Tổ chức bộ thử nghiệm của bạn bằng cách tạo collection. Mỗi collection có thể có các thư mục con và nhiều yêu cầu. Request hoặc thư mục cũng có thể được trùng lặp.
- Tab Request – Hiển thị tiêu đề của requet mà bạn đang làm việc. Mặc định “Untitled Request” sẽ được hiển thị cho các request không có tiêu đề.
- HTTP Request – Click vào đây sẽ hiển thị danh sách thả xuống với các request khác nhau như GET, POST, COPY, DELETE, v.v. Trong thử nghiệm, các yêu cầu được sử dụng phổ biến nhất là GET và POST.
- Request URL – Còn được gọi là điểm cuối (endpoint), đây là nơi bạn sẽ xác định liên kết đến nơi API sẽ giao tiếp.
- Save – Nếu có thay đổi đối với request, nhấp vào Save là bắt buộc để những thay đổi mới sẽ không bị mất hoặc bị ghi đè.
- Params – Đây là nơi bạn sẽ viết các tham số cần thiết cho một request, ví dụ như các cặp key – value.
- Authorization – Để truy cập API, cần được cấp quyền. Nó có thể ở dạng tên người dùng và mật khẩu, bearer token, v.v.
- Headers – Bạn có thể thiết lập các header như nội dung kiểu JSON tùy theo cách tổ chức của bạn.
- Body – Đây là nơi chúng ta có thể tùy chỉnh chi tiết trong request thường được sử dụng trong request POST.
- Pre-request Script – Đây là các tập lệnh sẽ được thực thi trước request. Thông thường, script tiền request (pre-request) cho cài đặt môi trường được sử dụng để đảm bảo các kiểm tra sẽ được chạy trong môi trường chính xác.
- Tests – Đây là các script được thực thi khi request. Điều quan trọng là phải có các thử nghiệm như thiết lập các điểm checkpoint để kiểm tra trạng thái là ok, dữ liêu nhận được có như mong đợi không và các thử nghiệm khác.
API Testing với Postman
API Testing là một phần quan trọng trong quá trình phát triển phần mềm, giúp đảm bảo rằng các API hoạt động đúng và hiệu quả. Dưới đây là quy trình cơ bản để thực hiện API Testing với Postman:
Gửi yêu cầu API cơ bản
- Mở Postman và tạo một yêu cầu mới bằng cách nhấp vào
New
>Request
. - Chọn phương thức HTTP (GET, POST, PUT, DELETE, v.v.) và nhập URL của API endpoint.
- Nhấp vào
Send
để gửi yêu cầu và xem phản hồi từ máy chủ.
Tạo Collection và thêm yêu cầu
- Tạo một Collection mới bằng cách nhấp vào
New
>Collection
. - Đặt tên cho Collection và lưu lại.
- Thêm các yêu cầu API vào Collection bằng cách nhấp chuột phải vào Collection và chọn
Add Request
.
Thiết lập biến môi trường
- Tạo môi trường mới bằng cách nhấp vào biểu tượng
Manage Environments
và chọnAdd
. - Đặt tên môi trường và thêm các biến môi trường cần thiết (ví dụ: base URL, token xác thực, v.v.).
- Sử dụng các biến môi trường trong các yêu cầu API bằng cú pháp
{{variable_name}}
.
Viết kịch bản kiểm thử
- Mở yêu cầu API và chuyển đến tab
Tests
. - Viết các kịch bản kiểm thử bằng JavaScript để xác thực phản hồi từ API. Ví dụ:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
Chạy Collection và kiểm tra kết quả
- Chạy toàn bộ Collection bằng cách nhấp vào nút
Runner
trong Postman. - Chọn Collection và môi trường cần chạy, sau đó nhấp vào
Start Test
. - Xem kết quả kiểm thử và các báo cáo chi tiết.
Tích hợp với CI/CD
- Sử dụng Postman CLI (Newman) để chạy các Collection trong các pipeline CI/CD.
- Cài đặt Newman bằng lệnh NPM:
npm install -g newman
- Chạy Collection bằng Newman:
newman run path_to_your_collection.json -e path_to_your_environment.json
Tóm lại, Postman là một công cụ API client không thể thiếu cho các nhà phát triển và tester, giúp họ làm việc với API một cách hiệu quả và dễ dàng. Với nhiều tính năng mạnh mẽ và khả năng tích hợp với các công cụ khác, Postman không chỉ giúp tiết kiệm thời gian và công sức mà còn đảm bảo chất lượng và tính nhất quán của các API trong suốt quá trình phát triển phần mềm.
Có thể bạn quan tâm:
Xem thêm việc làm Rest API tại TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS