You are on page 1of 39

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÁO CÁO TÌM HIỂU CÔNG CỤ KIỂM THỬ


POSTMAN

BÀI TẬP LỚN MÔN KIỂM THỬ VÀ PHÁT TRIỂN PHẦN MỀM
LỚP: INT3117_02

HÀ NỘI - 2023
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÁO CÁO TÌM HIỂU CÔNG CỤ KIỂM THỬ


POSTMAN

BÀI TẬP LỚN MÔN KIỂM THỬ VÀ PHÁT TRIỂN PHẦN MỀM

Giảng viên hướng dẫn: Nguyễn Thu Trang


Lớp học phần: INT3117_02
Nhóm sinh viên thực hiện: Nhóm 1
Nguyễn Thị Oanh 21020373
Lương Thị Mai Phương 21020783
Nguyễn Thị Hồng Hạnh 21020016

HÀ NỘI - 2023

1
MỤC LỤC
MỤC LỤC...................................................................................................................................... 2
MỞ ĐẦU ........................................................................................................................................ 4
CHƯƠNG 1: ĐẶT VẤN ĐỀ ........................................................................................................ 5
1.1 API là gì?............................................................................................................................... 5
1.2 Đặt vấn đề.............................................................................................................................. 6
CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ POSTMAN .............................................................. 7
2.1 Giới thiệu chung ................................................................................................................... 7
2.2 Lịch sử phát triển của Postman ............................................................................................. 7
2.3 Công dụng của Postman ........................................................................................................ 8
2.4 Cách cài đặt .......................................................................................................................... 9
2.4.1 Cài đặt Postman trên Windows ...................................................................................... 9
2.4.2 Cài đặt Postman trên MacOS........................................................................................ 10
2.4.3 Cài đặt Postman trên Linux .......................................................................................... 11
CHƯƠNG 3: CÁCH SỬ DỤNG CỦA POSTMAN ................................................................. 13
3.1 Cửa sổ làm việc của Postman .............................................................................................. 13
3.2 Request trong Postman ........................................................................................................ 15
3.2.1 Request GET................................................................................................................. 15
3.2.2 Request POST............................................................................................................... 16
3.3 Authentication trong Postman ............................................................................................. 17
3.4 Collections trong Postman .................................................................................................. 18
3.4.1 Cách tạo Colletion ........................................................................................................ 19
3.4.2 Các cài đặt trong Collections ........................................................................................ 19
3.4.3 Chạy Collections........................................................................................................... 20
3.5 Environments trong Postman .............................................................................................. 21
3.6 Tests trong Postman ............................................................................................................ 23
3.7 Kết luận ............................................................................................................................... 24
CHƯƠNG 4: CASE STUDY POSTMAN ................................................................................. 25
4.1 Case study ........................................................................................................................... 25
4.2 Các yếu tố kiểm thử ............................................................................................................ 27
4.3 Cách chạy test...................................................................................................................... 28
4.4 Thực hiện............................................................................................................................. 33

2
4.5 Kết quả chạy test ................................................................................................................. 34
CHƯƠNG 5: TỔNG KẾT .......................................................................................................... 36
5.1 Ưu điểm của Postman ......................................................................................................... 36
5.2 Nhược điểm của Postman.................................................................................................... 36
5.3 Phương hướng phát triển trong tương lai ............................................................................ 37
TÀI LIỆU THAM KHẢO .......................................................................................................... 38

3
LỜI MỞ ĐẦU
Trong bối cảnh ngày nay, khi phần mềm đóng vai trò quan trọng trong mọi lĩnh vực, quá
trình kiểm thử trở nên hết sức quan trọng để đảm bảo chất lượng và độ tin cậy của ứng dụng. Trước
thách thức ngày càng phức tạp của việc kiểm thử, chúng ta cần những công cụ mạnh mẽ và linh
hoạt để hiệu quả hóa quá trình này.
Dưới sự hướng dẫn của cô Nguyễn Thu Trang, chúng em đã chọn đề tài “Nghiên cứu công
cụ kiểm thử Postman” làm đề tài cho môn học Kiểm thử và đảm bảo chất lượng phần mềm.
Postman không chỉ là một ứng dụng giúp thử nghiệm API một cách dễ dàng, mà còn mang lại
nhiều tiện ích trong quá trình phát triển và kiểm thử phần mềm. Chúng em đã tiến hành nghiên
cứu để hiểu rõ về khả năng và ưu điểm của Postman, cũng như cách nó có thể nâng cao hiệu suất
và đồng bộ hóa quy trình kiểm thử.
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết mình nhưng chắc rằng quá trình thực
hiện đề tài khó tránh khỏi thiếu sót. Chúng em rất mong nhận được sự thông cảm, những lời góp
ý và chỉ bảo tận tình của Cô và các bạn để chúng em có thể rút kinh nghiệm trong những sản phẩm
tiếp theo. Chúng em xin chân thành cảm ơn!

4
CHƯƠNG 1: ĐẶT VẤN ĐỀ

1.1 API là gì?

API (Application Programming Interface) là một thuật ngữ viết tắt trong tiếng Anh, có
nghĩa là Giao diện Lập trình Ứng dụng. Nó đóng vai trò quan trọng trong việc kết nối và tương tác
giữa hai hoặc nhiều ứng dụng bằng cách cung cấp một tập hợp các quy tắc, giao thức và công cụ.
Về bản chất, API đóng vai trò như một cầu nối giữa client và server. Đối tượng client có
thể là một ứng dụng di động, trang web hoặc bất kỳ thiết bị nào sử dụng các hệ điều hành khác
nhau và được viết bằng các ngôn ngữ lập trình khác nhau như Swift, Objective-C, Java, Python và
nhiều ngôn ngữ khác. Tương tự, server back-end cũng được viết bằng các ngôn ngữ lập trình khác
nhau. Để hai thành phần này có thể giao tiếp và trao đổi thông tin, chúng cần sử dụng cùng một
ngôn ngữ và giao thức.
API cho phép các nhà phát triển phía client truy cập và lấy dữ liệu từ máy chủ một cách dễ
dàng thông qua việc tích hợp chúng vào phần mềm hoặc trang web của mình. Thông qua API,
client có khả năng gửi các yêu cầu (request) tới server và nhận lại các phản hồi (response). Các
yêu cầu và phản hồi này thường được định dạng bằng các ngôn ngữ chuẩn như JSON (JavaScript
Object Notation) hoặc XML (eXtensible Markup Language).
API cung cấp một loạt các phương thức và chức năng để thực hiện các tác vụ khác nhau.
Nó có thể hỗ trợ truy vấn và lấy dữ liệu từ cơ sở dữ liệu, thêm, sửa, xóa dữ liệu, xử lý các thao tác
logic phức tạp và nhiều hoạt động khác. Nó cũng có thể cung cấp các thao tác và chức năng để
quản lý tài nguyên, bảo mật, xác thực và kiểm soát truy cập.
API có thể được phát triển và cung cấp bởi các công ty, tổ chức hoặc dịch vụ khác nhau.
Nhà phát triển sử dụng API để tích hợp các dịch vụ và chức năng của bên thứ ba vào ứng dụng
của mình, nhằm mở rộng khả năng và tính năng của ứng dụng đó. Hơn nữa, API cũng tạo điều
kiện cho sự tương tác giữa các ứng dụng và hệ thống khác nhau, tạo ra một môi trường liên kết và
tương tác.

5
Tóm lại, API đóng vai trò quan trọng trong việc cho phép các hệ thống và ứng dụng khác
nhau liên kết và trao đổi thông tin một cách dễ dàng và hiệu quả. Nó mang lại lợi ích lớn cho việc
phát triển ứng dụng và tạo ra một môi trường tương tác linh hoạt và tiện lợi cho người dùng.

1.2 Đặt vấn đề


Trong kiến trúc phân tầng, phần server và phần client thường làm việc độc lập với nhau.
Server cung cấp các dịch vụ thông qua API, trong khi client sử dụng các API này để tương tác với
hệ thống. Điều này đồng nghĩa với việc server có thể hoàn thiện công việc của mình trước khi
client hoàn thành. Do đó, việc kiểm thử API độc lập giúp đảm bảo tính đúng đắn của server mà
không phụ thuộc vào sự hoàn thành của client.
Khi phát hiện lỗi trong quá trình kiểm thử trên client, không phải lúc nào cũng dễ dàng xác
định nguyên nhân của lỗi là do server hay client gây ra. Việc kiểm thử API giúp chúng ta xác định
chính xác nguyên nhân của lỗi. Nếu lỗi xảy ra trong quá trình gọi API, ta biết rằng lỗi nằm ở server.
Ngược lại, nếu không có lỗi khi gọi API mà chỉ xảy ra khi xử lý dữ liệu trên client, ta có thể kết
luận rằng lỗi nằm ở phía client. Điều này giúp chúng ta tiếp cận vấn đề và sửa lỗi một cách nhanh
chóng và hiệu quả hơn.
API thường được sử dụng bởi nhiều ứng dụng và dịch vụ khác nhau. Kiểm thử API giúp
đảm bảo tính tương thích của API với các ứng dụng và dịch vụ này. Bằng cách kiểm tra các
endpoint, tham số và phản hồi của API, ta đảm bảo rằng API hoạt động đúng theo các tiêu chuẩn
và giao thức đã được định nghĩa. Điều này đặc biệt quan trọng khi làm việc trên các hệ thống web
services và cung cấp API cho bên thứ ba sử dụng.
Việc kiểm thử API còn giúp phát hiện lỗi và sửa chữa chúng sớm trong quá trình phát triển
dự án. Bằng cách kiểm tra các trường hợp kiểm thử, xử lý lỗi và xác nhận tính đúng đắn của API,
chúng ta có thể phát hiện và khắc phục các vấn đề trước khi ứng dụng hoặc dịch vụ được triển khai
rộng rãi. Điều này giúp giảm thiểu rủi ro và tăng cường chất lượng của hệ thống.
Do đó, việc kiểm thử API trở thành yếu tố quan trọng để đảm bảo tính đúng đắn và hoạt
động ổn định của hệ thống. Trong quá trình thực hiện kiểm thử API, việc sử dụng các công cụ phù
hợp là rất quan trọng. Một công cụ phổ biến và mạnh mẽ được sử dụng rộng rãi là Postman.

6
CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ POSTMAN

2.1 Giới thiệu chung

Postman là một công cụ mạnh mẽ được sử dụng trong quá trình phát triển, kiểm thử và
quản lý các API. Được thiết kế để giúp nhà phát triển tương tác và làm việc với API một cách dễ
dàng, Postman cung cấp một giao diện người dùng thân thiện và nhiều tính năng hữu ích. Postman
cung cấp một loạt các tính năng giúp đơn giản hóa quy trình làm việc với API.

2.2 Lịch sử phát triển của Postman


Postman là một ứng dụng được thiết kế để giúp nhà phát triển xây dựng, thử nghiệm, và
gỡ lỗi các API (Application Programming Interface). Dưới đây là một tóm tắt về lịch sử phát triển
của Postman:
Postman bắt đầu vào năm 2013 với vai trò là một công cụ đơn giản để kiểm thử và gỡ lỗi
API. Ban đầu, nó chỉ là một trình duyệt dựa trên giải pháp giúp nhà phát triển hiểu rõ cách các API
hoạt động hoặc không hoạt động. Postman cho phép nhà phát triển lưu thông tin kiểm thử dưới
dạng một bộ sưu tập có thể tái sử dụng và chia sẻ.
Trong giai đoạn 2013-2015, Postman mở rộng chức năng của mình với việc giới thiệu khả
năng chạy kiểm thử theo cách tiêu chuẩn bằng cách sử dụng các bộ sưu tập (Collections).
Collections trở thành một cách tiêu chuẩn để xác định, lưu trữ và chạy các yêu cầu API. Điều này
bao gồm cả việc sử dụng scripts để tự động hóa các bộ kiểm thử, cho phép chúng được chạy trên
máy tính hoặc thông qua giao diện dòng lệnh và CI/CD.
Năm 2015, Postman thêm vào đó khả năng tạo tài liệu và sinh mã code tự động (Code
Generation) từ các bộ kiểm thử. Điều này giúp nhà phát triển xuất bản tài liệu có thể chia sẻ và
nhúng, cũng như các đoạn mã mẫu trong các ngôn ngữ lập trình khác nhau.

7
Từ năm 2016 trở đi, Postman ngày càng tích hợp sâu rộng với các phần mềm quản lý mã
nguồn (GitHub và GitLab), hỗ trợ APM, tích hợp với các hệ thống thông báo và messaging. Nó
cũng đặt mức chuẩn cho việc giám sát (Monitoring) bằng cách cho phép lên lịch theo dõi các bộ
kiểm thử, mở rộng tự động hóa và giám sát các bài kiểm thử liên quan đến hợp đồng, hiệu suất,
tích hợp và các kiểm thử khác.
Các tính năng quan trọng như Mocking (2017), Team Workspaces, Comments và Search
(2018), Builder (2019), Interceptor (2019), và nhiều tính năng khác cũng được giới thiệu để đáp
ứng nhu cầu ngày càng đa dạng của cộng đồng người dùng Postman.
Năm 2021, Postman chứng tỏ sự di chuyển của mình từ một công cụ đa giao thức, hỗ trợ
WebSockets và Socket.IO, đánh dấu sự chuẩn bị cho việc hỗ trợ gRPC và các giao thức khác.
Đồng thời, nền tảng API mới (New Postman API Platform) được giới thiệu với nhiều khả năng và
tích hợp mạnh mẽ, đáp ứng xu hướng API-đầu tiên hiện đại.
Tóm lại, lịch sử phát triển của Postman là một hành trình đầy đủ các giai đoạn, từ một công
cụ kiểm thử API đơn giản cho đến nền tảng API toàn diện và linh hoạt, đáp ứng nhu cầu ngày càng
cao và đa dạng của cộng đồng phát triển API.

2.3 Công dụng của Postman


Postman có nhiều công dụng quan trọng trong quá trình phát triển, kiểm thử và quản lý
API. Dưới đây là một số công dụng chính của Postman:
● Tương tác với API: Postman mở ra một thế giới mới của tương tác với API, nơi người dùng
có thể trải nghiệm một cách trực quan và không cần phải đối mặt với khó khăn của việc
viết mã. Giao diện thân thiện của Postman cho phép người dùng dễ dàng gửi và nhận các
yêu cầu API. Việc này không chỉ giảm độ phức tạp của quá trình tương tác, mà còn tạo ra
một môi trường thân thiện cho cả những người mới bắt đầu với API.
● Kiểm thử API: Postman không chỉ đơn giản là một công cụ tương tác; nó là một nền tảng
đầy đủ chức năng để kiểm thử API với độ chi tiết và đa dạng không ngừng. Từ việc thực
hiện các bộ kiểm thử tự động cho đến kiểm thử hiệu suất, Postman đảm bảo rằng API
không chỉ hoạt động đúng như mong đợi mà còn đạt được hiệu suất tối ưu.
● Chạy thử kịch bản: Postman không chỉ giới hạn ở việc kiểm thử từng yêu cầu một; nó mở
rộng khả năng kiểm thử bằng cách cho phép người dùng tạo và chạy các kịch bản kiểm
thử. Điều này giúp đảm bảo rằng API hoạt động đúng như kỳ vọng trong mọi tình huống,
từ các tình huống thông thường đến các kịch bản kiểm thử phức tạp.
● Mock servers: Postman là một công cụ mạnh mẽ không chỉ trong việc kiểm thử API trên
môi trường thực tế mà còn trong việc tạo mock servers. Việc này giúp mô phỏng hành vi

8
của API mà không cần phải triển khai chúng, tạo điều kiện thuận lợi cho việc kiểm thử
mạnh mẽ và độc lập.
● Quản lý môi trường và biến: Postman không chỉ giúp kiểm thử API trên một môi trường
cụ thể, mà còn hỗ trợ quản lý linh hoạt giữa nhiều môi trường khác nhau. Người dùng có
thể chuyển đổi giữa các cấu hình như development, testing và production một cách thuận
tiện.
● Chức năng Scripting: Chức năng scripting trong Postman mở ra khả năng tự động hóa các
bước kiểm thử và thực hiện các tác vụ phức tạp. Điều này không chỉ giúp tiết kiệm thời
gian mà còn mang lại tính linh hoạt cao trong quá trình kiểm thử.
● Tạo tài liệu API: Postman không chỉ là công cụ kiểm thử, mà còn là một nguồn tài nguyên
quan trọng cho việc tạo tài liệu API. Tài liệu được tạo ra dễ đọc và hiểu, giúp chia sẻ thông
tin về API một cách hiệu quả với đồng đội và cộng đồng.
● Lưu lịch sử các lần request: Postman giữ lại lịch sử các yêu cầu API, tạo ra một bản ghi
chi tiết và hữu ích về quá trình tương tác và kiểm thử. Điều này giúp người dùng dễ dàng
quản lý và sử dụng lại thông tin từ các phiên làm việc trước.
● Cộng tác trên workspaces: Postman không chỉ là một công cụ cá nhân mà còn hỗ trợ cộng
tác trong môi trường nhóm thông qua Workspaces. Điều này tạo điều kiện thuận lợi cho
việc đồng đội cùng làm việc và chia sẻ thông tin.
● Chia sẻ và cộng đồng Hóa: Postman không chỉ giúp người dùng kiểm thử mà còn là một
cộng đồng của những người làm việc với API. Khả năng chia sẻ bộ kiểm thử, môi trường
và tài liệu API giúp tăng cường sự hợp tác và chia sẻ kiến thức trong cộng đồng người dùng
của Postman.
Tóm lại, Postman là một công cụ đa năng và mạnh mẽ, chủ yếu được sử dụng để tối ưu
hóa quá trình làm việc với API và đảm bảo chất lượng của ứng dụng phần mềm.

2.4 Cách cài đặt


Bạn có thể trải nghiệm Postman trực tuyến thông qua trình duyệt web tại Postman on the
web.
Ngoài ra, dưới đây là hướng dẫn cài đặt Postman trên các hệ điều hành phổ biến như
Windows, macOS và Linux.

2.4.1 Cài đặt Postman trên Windows


Để cài đặt Postman trên Windows, bạn có thể làm theo các bước sau:
- Bước 1: Tải Postman từ Trang Chính Thức
● Truy cập trang tải xuống Postman trên trình duyệt: Postman Download.

9
● Chọn phiên bản Windows và tải về tệp tin cài đặt Postman.
- Bước 2: Cài Đặt Postman
● Mở tệp tin đã tải xuống (thường là một tệp `.exe`).
● Bạn sẽ thấy một hộp thoại cài đặt, làm theo các bước trong hộp thoại để hoàn tất
quá trình cài đặt.
- Bước 3: Mở Postman
● Sau khi cài đặt thành công, mở Postman. Bạn có thể tìm kiếm nó trong menu Start
hoặc truy cập nó từ màn hình Desktop nếu bạn chọn tùy chọn này trong quá trình
cài đặt.
Ghi chú:
- Postman thường cập nhật tự động khi có phiên bản mới.
- Nếu bạn gặp vấn đề khi mở ứng dụng do vấn đề bảo mật, hãy chắc chắn rằng bạn có
quyền đủ để chạy ứng dụng.
Với các bước trên, bạn đã hoàn tất quá trình cài đặt Postman trên hệ điều hành Windows
và có thể bắt đầu sử dụng để làm việc với API.

2.4.2 Cài đặt Postman trên MacOS


Để cài đặt Postman trên macOS, bạn có thể làm theo các bước sau:
- Bước 1: Tải Postman từ Trang Chính Thức
● Truy cập trang tải xuống Postman trên trình duyệt: Postman Download.
● Chọn phiên bản macOS và tải về tệp tin cài đặt Postman.
- Bước 2: Cài Đặt Postman
● Mở tệp tin đã tải xuống (thường là một tệp `.dmg`).
● Kéo biểu tượng Postman vào thư mục ứng dụng trong cửa sổ mở ra.
- Bước 3: Mở Postman
● Mở Finder và điều hướng đến thư mục Ứng dụng.
● Tìm và mở ứng dụng Postman.
Ghi chú:
- Postman trên macOS thường tự động cập nhật khi có phiên bản mới.
- Nếu bạn gặp vấn đề khi mở ứng dụng vì lý do bảo mật, hãy kiểm tra "Security &
Privacy" trong Preferences và chắc chắn rằng bạn đã cho phép mở ứng dụng từ "Anywhere"
hoặc "App Store and identified developers."
Với các bước trên, bạn đã hoàn tất quá trình cài đặt Postman trên macOS và có thể bắt đầu
sử dụng để làm việc với API.

10
2.4.3 Cài đặt Postman trên Linux
Cài đặt Postman trên Linux thường được thực hiện thông qua các bước sau đây. Hướng
dẫn này sẽ sử dụng phiên bản 64-bit của Postman trên môi trường Linux. Nếu bạn đang sử dụng
một phiên bản khác, hãy kiểm tra trang web chính thức của Postman để tải về phiên bản phù hợp
với hệ điều hành của bạn.
- Bước 1: Tải Postman từ Trang Chính Thức
● Truy cập trang tải xuống Postman trên trình duyệt: Postman Download.
● Chọn phiên bản Linux và tải về tệp tin cài đặt Postman.
- Bước 2: Giải Nén và Di Chuyển Tệp Tin
● Mở Terminal.
● Di chuyển đến thư mục chứa tệp tin đã tải xuống. Thường là thư mục Downloads:
cd Downloads
● Giải nén tệp tin cài đặt Postman:
tar -xvf Postman-linux-x64-<version>.tar.gz
Thay `<version>` bằng phiên bản bạn đã tải về.
● Di chuyển thư mục đã giải nén:
sudo mv Postman /opt
- Bước 3: Tạo Liên Kết Tới Postman
● Tạo một liên kết tới thực thi của Postman:
sudo ln -s /opt/Postman/Postman /usr/bin/postman
- Bước 4: Tạo Một Desktop Entry (Tùy chọn)
● Tạo một tệp desktop entry để có thể khởi động Postman từ menu ứng dụng:
sudo nano /usr/share/applications/postman.desktop
● Thêm nội dung sau vào tệp và lưu lại:
[Desktop Entry]
Name=Postman
Exec=postman
Icon=/opt/Postman/app/resources/app/assets/icon.png
Terminal=false
Type=Application
Categories=Development;
Sau khi hoàn thành các bước trên, bạn có thể mở Postman bằng cách nhập `postman` trong
Terminal hoặc tìm kiếm trong menu ứng dụng của bạn.

11
Lưu ý rằng các phiên bản và tên tệp có thể thay đổi tùy theo phiên bản Postman và phiên
bản Linux của bạn. Hãy kiểm tra trang web chính thức của Postman để đảm bảo bạn tải về phiên
bản mới nhất và tương thích với hệ điều hành của mình.

12
CHƯƠNG 3: CÁCH SỬ DỤNG CỦA POSTMAN

3.1 Cửa sổ làm việc của Postman


Giao diện của Postman được thiết kế một cách khá trực quan và thân thiện với người dùng,
mang lại trải nghiệm sử dụng dễ dàng và hiệu quả.

Cửa sổ làm việc của Postman gồm một số bộ phận chính sau:
● Phần cài đặt chung: Nằm ở thanh trên cùng của giao diện cung cấp các tùy chọn cài đặt
chung cho ứng dụng và thông tin tài khoản.

● Phần Workspace: Nằm ở góc trái của giao diện, phần Workspace của Postman cung cấp
một không gian làm việc tổ chức và quản lý dự án; cho phép tạo mới hoặc import dữ liệu
vào dự án.
o Mục Collections: cung cấp một cách tổ chức và quản lý các yêu cầu API.
o Mục Environments: giúp người dùng quản lý các biến môi trường và chuyển đổi
giữa các cài đặt môi trường khác nhau.
o Mục History: giúp người dùng theo dõi và quản lý các yêu cầu API đã thực hiện
trong quá khứ.

13
● Phần API content: hiển thị nội dung chi tiết về quá trình tương tác với API và các phần hỗ
trợ giúp thực hiện test API, ngoài ra người dùng còn được chọn thông tin về môi trường
mà mình sử dụng.
o Phần Request: nơi người dùng xây dựng và chỉnh sửa các yêu cầu API trước khi
gửi đến server.
o Phần Response: nơi hiển thị kết quả từ server sau khi gửi yêu cầu API.

14
3.2 Request trong Postman
Trong Postman, Request là một phần quan trọng, đại diện cho yêu cầu gửi đến một API.
Postman hỗ trợ nhiều loại yêu cầu như GET, POST, PUT, DELETE, PATCH và nhiều phương
thức khác. Điều này cho phép người dùng thực hiện đa dạng các hoạt động tương tác với API.
Postman cung cấp một giao diện đồ họa cho phép người dùng dễ dàng xây dựng và tinh chỉnh yêu
cầu của mình. Bạn có thể nhập URL, thêm headers, xác thực, và dữ liệu body một cách thuận tiện.
● Dữ liệu body: Postman cho phép xử lý dữ liệu body của yêu cầu theo nhiều cách khác nhau,
bao gồm form data, x-www-form-urlencoded, raw data, và cả gửi file nếu cần thiết. Điều
này làm cho Postman linh hoạt cho nhiều loại API khác nhau.
● Quản lý Headers và Cookies: Postman giúp người dùng quản lý headers và cookies một
cách thuận lợi. Người dùng có thể thêm, sửa đổi và xóa các headers dễ dàng để điều chỉnh
yêu cầu theo mong muốn.
● Xác thực: Postman có các tùy chọn xác thực linh hoạt như Basic Auth, OAuth, API Key,
và nhiều hình thức xác thực khác. Điều này giúp người dùng thử nghiệm các kịch bản xác
thực phức tạp.
Trong Postman, có hai dạng request chính mà người dùng thường gặp khi tương tác với
các API là Request GET và Request POST. Sau đây em sẽ sử dụng API có đường dẫn
https://jsonplaceholder.typicode.com/ để làm việc với 2 dạng request này.

3.2.1 Request GET


Request GET được sử dụng để truy vấn thông tin được truyền vào từ URL thông qua các
tham số query string. Request này an toàn vì nó chỉ đọc dữ liệu mà không làm thay đổi trạng thái
của server. Cách tạo Request GET khá đơn giản tuân theo các bước như sau:
● Thiết lập request HTTP là phương thức GET.
● Nhập liên kết đến nơi mà API sẽ giao tiếp vào phần thanh địa chỉ.
● Nhập tham số (nếu có) vào phần Params.
● Nhấn nút Send để gửi Request và chờ Response trả về.

Lưu ý: Cần nhập đúng địa chỉ, tham số và phương thức HTTP thì kết quả trả về mới chính
xác. Ngoài ra, chứng thực không thành công (authentication) cũng có thể khiến request không trả
về kết quả.

15
3.2.2 Request POST
Request POST thường được sử dụng khi muốn tạo mới một nguồn tài nguyên trên server.
Dữ liệu thường được đặt trong phần body của yêu cầu. Request POST có thể sử dụng để cập nhật
dữ liệu. Cách tạo Request POST như sau:
● Thiết lập request HTTP là phương thức GET.
● Nhập liên kết đến nơi mà API sẽ giao tiếp vào phần thanh địa chỉ.
● Trong phần Body, bạn có thể xác định cách dữ liệu sẽ được truyền đi. Nhập dữ liệu vào ô
nội dung theo đúng định dạng đã lựa chọn để hoàn tất.
● Nhấn nút Send để gửi Request và chờ Response trả về.

16
3.3 Authentication trong Postman
Authentication (Xác thực) là một phần quan trọng trong việc tương tác với các API và
Postman cung cấp nhiều phương tiện để xác thực một cách linh hoạt. Dưới đây là một số phương
pháp xác thực phổ biến trong Postman:
● No Auth: Không sử dụng xác thực. Điều này thường được sử dụng trong các trường hợp
nơi không cần xác thực, ví dụ như các yêu cầu công khai hoặc trong môi trường phát triển.
● Basic Auth: là một phương thức đơn giản nhưng phổ biến trong việc bảo mật truy cập vào
các nguồn tài nguyên trực tuyến. Nó thường được sử dụng trong HTTP và HTTPS và yêu
cầu người dùng cung cấp tên người dùng (username) và mật khẩu (password) để xác thực
danh tính. Mặc dù đơn giản và dễ triển khai, Basic Auth có nhược điểm là thông tin đăng
nhập không được mã hóa và dễ bị đánh cắp nếu không sử dụng kết nối an toàn (HTTPS),
đồng thời cũng gặp khó khăn trong việc quản lý mật khẩu và đối mặt với các vấn đề như
tấn công Brute Force và giả mạo.
● Bearer Token: là một phương pháp xác thực trong HTTP thường được sử dụng trong API,
trong đó người dùng nhận một token từ hệ thống xác thực và gửi nó kèm theo mỗi yêu cầu.
Token này chứa thông tin xác thực và quyền hạn của người dùng, giúp các tài nguyên xác
định quyền truy cập. Dạng token thường là chuỗi không thể đoán trước, và HTTPS là cần
thiết để đảm bảo an toàn. Bearer Token linh hoạt và tiện lợi cho API, nhưng yêu cầu quản
lý và bảo vệ chặt chẽ để ngăn chặn rủi ro an ninh.

17
● API Key: là một phương thức xác thực đơn giản trong HTTP, thường được sử dụng để bảo
vệ và kiểm soát quyền truy cập vào các dịch vụ và API. Người dùng nhận một khóa API
duy nhất từ hệ thống, sau đó gửi nó kèm theo mỗi yêu cầu. Khóa này được xác định trong
header hoặc query parameter của yêu cầu và cho phép hệ thống xác định nguồn gốc và
quyền hạn của người dùng. Mặc dù đơn giản, nhưng cần phải được quản lý cẩn thận để
tránh sự rủi ro và bảo đảm tính an toàn của hệ thống.
● OAuth 1.0 và OAuth 2.0: là hai phương thức xác thực và ủy quyền phổ biến trong giao tiếp
web và API. OAuth 1.0 là phiên bản trước, sử dụng chữ ký và mã thông báo để xác thực
và ủy quyền. Trong khi đó, OAuth 2.0, phiên bản hiện đại hơn, tập trung vào việc đơn giản
hóa quy trình và hỗ trợ nhiều loại ủy quyền, như ủy quyền mật khẩu và ủy quyền người
dùng. Cả hai phiên bản đều quan trọng cho việc bảo mật API và tài nguyên trực tuyến,
nhưng OAuth 2.0 thường được ưu tiên do tính linh hoạt và hiệu suất cao hơn.
Sử dụng các phương pháp xác thực trong Postman bằng cách vào mục "Authorization".
Trong giao diện của Postman, bạn có thể thực hiện các bước sau:
● Mở Postman và mở một yêu cầu (request): Chọn yêu cầu mà bạn muốn thực hiện.
● Chọn tab "Authorization": Trong phần header của yêu cầu, bạn sẽ thấy một tab có tên là
"Authorization". Nhấp vào đó để chọn phương pháp xác thực mong muốn.
● Chọn loại xác thực (Type): Trong danh sách các loại xác thực, bạn có thể chọn loại mà bạn
muốn sử dụng, ví dụ: No Auth, Basic Auth, Bearer Token, API Key, OAuth 1.0, hoặc
OAuth 2.0,...
● Nhập thông tin xác thực:
o Nếu bạn chọn Basic Auth, bạn sẽ cần nhập tên người dùng và mật khẩu.
o Nếu bạn chọn Bearer Token, bạn sẽ cần nhập token được cung cấp.
o Nếu bạn chọn API Key, bạn sẽ cần nhập khóa API.
o Nếu bạn chọn OAuth 1.0 hoặc OAuth 2.0, bạn sẽ cần cung cấp thông tin xác thực
tương ứng theo quy định của nhà cung cấp dịch vụ.
● Lưu và gửi yêu cầu: Sau khi nhập thông tin xác thực, nhớ lưu lại cài đặt và gửi yêu cầu để
kiểm tra xác thực.
Bằng cách này, bạn có thể linh hoạt chọn và cấu hình các phương pháp xác thực khác nhau
trong Postman tùy thuộc vào yêu cầu của API bạn đang làm việc.

3.4 Collections trong Postman


Trong Postman, Collections là một công cụ quan trọng và mạnh mẽ, giúp người dùng tổ
chức và quản lý các yêu cầu API, kịch bản kiểm thử và các tác vụ liên quan trong một không gian

18
làm việc có tổ chức. Collections thường được sử dụng trong quá trình kiểm thử API để tự động
hóa và lưu trữ các kịch bản kiểm thử.

3.4.1 Cách tạo Colletion


Để tạo một Collection mới, ta làm theo các bước sau đây:
● Mở Postman và chọn tab "Collections" ở thanh bên trái.
● Nhấp vào nút "Create new collection" hoặc nút “New” chọn mục “Collection” để tạo một
Collection mới.
● Đặt tên và mô tả cho Collection của bạn để hoàn thành quá trình tạo.

3.4.2 Các cài đặt trong


Collections
Các tùy chọn cài đặt trong Collections của Postman mang lại nhiều tính năng và linh hoạt
để tối ưu hóa quá trình quản lý và thực hiện các yêu cầu API. Dưới đây là một phần chi tiết hơn
về một số tính năng tiêu biểu:
● Add request: Thêm một yêu cầu mới vào Collection.
● Add folder: Tạo thư mục và nhóm hóa các yêu cầu trong Collection. Điều này giúp bạn tổ
chức và quản lý yêu cầu một cách có tổ chức.
● Share: Cho phép người dùng chia sẻ Collection với người khác trong cộng đồng Postman
hoặc với đồng nghiệp.
● Monitor Collection: Giúp người dùng tự động chạy các yêu cầu trong Collection theo định
kỳ và theo dõi hiệu suất của API.

19
● Mock Collection: Người dùng có thể tạo một Mock Server từ Collection của mình để giả
mạo API và kiểm thử ứng dụng mà không cần tới máy chủ thực tế.
● View changelog: Xem lịch sử các thay đổi và sửa đổi trong Collection để theo dõi và giữ
lại phiên bản cụ thể của Collection.
● Generate tests: Giúp người dùng tạo các đoạn mã kiểm thử tự động dựa trên các yêu cầu
trong Collection, giúp đảm bảo tính chính xác và đồng nhất của API.
● Manage roles: Nếu bạn là một thành viên của một nhóm làm việc, bạn có thể quản lý quyền
của mình trong Collection và xác định ai có thể xem, chỉnh sửa, hoặc chia sẻ nó.
Các tính năng này là những phần quan trọng trong việc tối ưu hóa quá trình làm việc với
Collections trong Postman, giúp người dùng có thể quản lý và tận dụng các yêu cầu API một cách
hiệu quả.

3.4.3 Chạy Collections


Để chạy một Collection trong Postman, bạn có thể thực hiện các bước sau:
● Mở Collection mà bạn muốn chạy.
● Nhấp vào mục "Run collection".
● Cài đặt phần Runner: chọn số vòng lặp, thời gian delay, bộ dữ liệu,...
● Xem kết quả của từng yêu cầu và kiểm tra kết quả kiểm thử.

20
3.5 Environments trong Postman
Môi trường (Environments) trong Postman là một tính năng quan trọng, giúp bạn linh hoạt
quản lý và chuyển đổi giữa các cài đặt khác nhau, như các địa chỉ URL, khóa API, và biến môi
trường. Chức năng chính của Environment là 1 chỗ lưu “biến” giống như “biến” trong code để
mình có thể tái sử dụng ở nhiều nơi. Postman chia môi trường thành hai loại: Local và Global.
● Local: Ảnh hưởng chỉ khi bạn chọn môi trường cụ thể.
● Global: Ảnh hưởng đến toàn bộ các dự án trong Postman. Tuy nhiên, nếu có hai biến cùng
tên ở cả Local và Global, Postman sẽ ưu tiên sử dụng giá trị từ môi trường Local.

Ứng dụng của Environments trong Postman rất đa dạng và hữu ích, bao gồm:
● Chuyển đổi nhanh chóng giữa các môi trường: Bạn có thể nhanh chóng chuyển đổi giữa
các môi trường như Dev và Product mà không cần phải tạo lại các yêu cầu API. Điều này
tiết kiệm thời gian và giảm rủi ro sai sót khi thay đổi URL hay các tham số cấu hình khác.
● Lưu giá trị Response API trước để sử dụng trong API sau: Một tính năng mạnh mẽ của
Environment là khả năng lưu lại giá trị của response API trước và sử dụng nó cho các yêu
cầu API sau. Điều này giúp kiểm thử và mô phỏng các tình huống phức tạp hơn mà không
cần phải thực hiện lại toàn bộ quy trình.
● Giảm số lần sửa giá trị tham số: Environment giúp giảm việc phải sửa giá trị của các tham
số nhiều lần. Bạn chỉ cần cấu hình giá trị tham số một lần cho mỗi môi trường, và sau đó
chuyển đổi giữa chúng một cách linh hoạt.

Dưới đây là cách sử dụng Environments trong Postman:


● Cách tạo Enviroment
o Mở Postman và chọn tab "Environments" ở phía trên bên trái.
o Nhấp vào nút "Create new environment" để tạo một môi trường mới.
o Đặt tên cho môi trường và thêm các biến và giá trị tương ứng của chúng.

21
● Sử dụng biến môi trường trong request
o Để lấy giá trị của các biến trong request, viết theo cú pháp: {{tên_biến}}
o Thay theo biến trên vào phần giá trị cần thay thế trong request rồi gửi yêu cầu.
Lưu ý:
● Nếu gõ đúng cú pháp thì chữ sẽ có màu cam, khi đưa chuột vào sẽ hiển thị giá trị thật của
biến đó.

● Ngược lại, nếu nhập sai, chữ sẽ có màu đỏ và khi di chuột vào sẽ hiển thị lỗi không xác
định được biến nghĩa là biến này không có trong Environment.

22
3.6 Tests trong Postman
Tests trong Postman là một phần quan trọng giúp tự động hóa việc kiểm thử API và đảm
bảo rằng các yêu cầu API của bạn hoạt động đúng như mong đợi.
● Tests là các đoạn mã JavaScript được thực thi tự động sau khi một yêu cầu API hoàn
thành. Điều này giúp kiểm tra xem API trả về kết quả như mong đợi hay không.
● Chức năng của Tests:
o Kiểm tra giá trị response: Sử dụng tests để kiểm tra giá trị cụ thể trong phần
response của yêu cầu.
o So sánh Response với giá trị mong đợi: Xác nhận rằng response của yêu cầu
tương đương với giá trị mong đợi.
o Xử lý lỗi và xác thực tình trạng: Thực hiện xử lý lỗi và kiểm tra tình trạng của
response, chẳng hạn như kiểm tra HTTP status code.
o Tự động hóa quá trình kiểm thử: Thực hiện các bước kiểm thử tự động mỗi khi
chạy yêu cầu, giảm công việc thủ công và đảm bảo tính chính xác.
o Lưu giá trị của Response: Sử dụng tests để lưu giá trị của response thành biến
trong Environment để tiếp tục truyền vào tham số của API tiếp theo.
● Các hàm Tests phổ biến:
o “pm.test(description, function)”: Định nghĩa một bài kiểm tra với một mô tả và
một hàm thực hiện kiểm tra.
o “pm.expect(value)”: Sử dụng để khởi tạo một kiểm tra trên một giá trị cụ thể.
o “pm.response.to.have.status(code)”: Kiểm tra xem HTTP status code của
response có phải là code mong đợi hay không.
o “pm.response.to.have.jsonBody(expectedJSON)”: So sánh body của response với
một đối tượng JSON mong đợi.

23
3.7 Kết luận
Postman là công cụ mạnh mẽ cho phát triển và kiểm thử API, với giao diện thân thiện,
chức năng tự động hóa qua Tests, và khả năng quản lý môi trường và biến linh hoạt. Chia sẻ
Collections và môi trường giúp hợp tác hiệu quả trong đội ngũ. Sử dụng Postman tăng hiệu suất
làm việc và đảm bảo chất lượng ứng dụng API.

24
CHƯƠNG 4: CASE STUDY POSTMAN

4.1 Case study


Trong báo cáo này, chúng em sẽ sử dụng Postman để kiểm thử API trong dự án
Mindmapify.

Mindmapify là một trang web học tập có thiết kế giao diện hấp dẫn và thân thiện với học
sinh, sinh viên, nhằm tăng sự hứng thú trong quá trình học tập. Ngoài việc cung cấp các công cụ
tạo sơ đồ tư duy tự động để trực quan hóa kiến thức đã học, Mindmapify còn tích hợp các trò chơi
để giúp ôn tập kiến thức trở nên thú vị, kết hợp giữa việc học và chơi.

25
Trang web này áp dụng công nghệ Trí tuệ Nhân tạo (AI) và sử dụng các mô hình ngôn ngữ
lớn để hỗ trợ học sinh, sinh viên. Mindmapify cho phép họ tóm tắt kiến thức một cách tự động và
trực quan bằng cách sử dụng các thao tác đơn giản, giúp việc sử dụng trang web trở nên dễ dàng.
Mindmapify không chỉ sử dụng AI để tạo ra các sơ đồ tư duy, mà còn tích hợp các trợ lý
ảo có khả năng hỗ trợ và trả lời câu hỏi về nhiều môn học và lĩnh vực khác nhau. Người dùng có
thể tương tác và trò chuyện với trợ lý ảo này, tạo thêm sự gần gũi và thuận tiện trong quá trình học
tập.

26
4.2 Các yếu tố kiểm thử
Sau khi tạo các yêu cầu và ranh giới thử nghiệm, việc tiếp theo là quyết định những gì ta
muốn kiểm tra trong API của mình. Dưới đây là một số loại thử nghiệm API phổ biến mà ta có thể
áp dụng:
● Kiểm tra chức năng: Loại kiểm thử này tập trung vào việc đảm bảo rằng API hoạt động
chính xác và đúng với các yêu cầu kỹ thuật. Bạn có thể kiểm tra các chức năng cụ thể của
API để đảm bảo rằng chúng trả về kết quả chính xác và thực hiện các hành động như mong
đợi.
● Kiểm tra tính khả dụng: Loại kiểm thử này tập trung vào việc đánh giá sự dễ sử dụng và
tiện ích của API.
● Kiểm tra độ tin cậy: Loại kiểm thử này nhằm đảm bảo rằng API có khả năng kết nối liên
tục và đáng tin cậy. Bạn có thể kiểm tra xem API có thể xử lý các cuộc gọi liên tục mà
không gây ra sự cố, và kết quả trả về từ các cuộc gọi liên tục là nhất quán.
● Tải thử nghiệm: Loại kiểm thử này tập trung vào việc đánh giá khả năng xử lý tải của API.
Bạn có thể tạo các kịch bản thử nghiệm để kiểm tra xem API có thể xử lý một số lượng lớn
các cuộc gọi cùng một lúc mà vẫn duy trì hiệu suất ổn định.
● Kiểm tra sáng tạo: Loại kiểm thử này nhằm đảm bảo rằng API có khả năng xử lý các tình
huống sáng tạo và không thường xuyên. Kiểm tra xem API có thể xử lý được các yêu cầu
không phổ biến, các điều kiện biên, hoặc các tình huống đặc biệt.
● Kiểm tra bảo mật: Loại kiểm thử này tập trung vào việc đảm bảo rằng API đã thiết lập các
yêu cầu bảo mật cần thiết, bao gồm xác thực, quyền truy cập và kiểm soát truy cập. Kiểm
tra liệu rằng API đã áp dụng các biện pháp bảo mật phù hợp để bảo vệ dữ liệu quan trọng
khỏi việc truy cập trái phép hay chưa.
● Kiểm tra thành thạo: Loại kiểm thử này nhằm đánh giá khả năng của API trong việc cung
cấp các tính năng và khả năng linh hoạt cho các nhà phát triển. Bạn có thể tạo các test cases
để kiểm tra xem API có cung cấp đầy đủ các tùy chọn và chức năng mà nhà phát triển có
thể sử dụng để tạo ra các ứng dụng phức tạp và đa dạng.
● Kiểm tra tài liệu API: Loại kiểm thử này tập trung vào việc đảm bảo rằng API có tài liệu
hướng dẫn người dùng dễ hiểu và hỗ trợ trong việc khám phá và sử dụng API. Bạn có thể
kiểm tra xem tài liệu API có đầy đủ, chi tiết và dễ dùng để người dùng có thể hiểu và sử
dụng API một cách hiệu quả.
Quá trình kiểm thử API có thể bao gồm việc sử dụng các công cụ, như Postman, để tạo các
test cases dựa trên các yêu cầu và ranh giới đã xác định trước đó. Bằng cách thực hiện các loại
kiểm thử khác nhau, ta có thể đảm bảo rằng API của mình hoạt động chính xác, khả dụng, đáng
tin cậy, có hiệu suất tốt, an toàn và cung cấp các tính năng và tài liệu phù hợp cho người dùng.

27
4.3 Cách chạy test
Trong báo cáo, chúng em kiểm thử API với chức năng tạo bộ câu hỏi về chủ đề bất kì
(Daily Quiz), tạo bộ câu hỏi từ đoạn văn do người dùng nhập vào (Quiz) và chức năng trò
chuyện với chatbot.
a, Chức năng Quiz
- Mô tả: Người dùng có thể trả lời câu hỏi với nội dung và chủ đề được lấy ra từ văn bản
đầu vào nhằm phục vụ mục đích ôn tập, hỗ trợ hiểu bài hơn. Việc trả lời câu hỏi trong quiz game
có thể giúp người dùng hiểu hơn về những gì mình đã học.
- Đường dẫn: http://localhost:3001/api/quizzes
- Đầu vào: Dữ liệu định dạng JSON chứa đoạn văn về chiến tranh Triều Tiên.

- Bộ test cases

28
- Giải thích test cases:
● pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
Test case này kiểm tra xem mã trạng thái của phản hồi từ API có phải là 200 hay không.
Mã trạng thái 200 thường đại diện cho thành công trong giao thức HTTP.
● pm.test("Response has JSON format", function () { pm.response.to.have.jsonBody(); });
Test case này kiểm tra xem phản hồi từ API có định dạng JSON hay không. Điều này
đảm bảo rằng phản hồi được trả về là một đối tượng JSON hợp lệ.
● pm.test("Body contains 'Triều Tiên'", function () {
pm.expect(pm.response.text()).to.include("Triều Tiên"); });
Test case này kiểm tra xem phần thân của phản hồi có chứa chuỗi "Triều Tiên" hay
không. Điều này đảm bảo rằng dữ liệu trả về từ API chứa thông tin cần thiết.
● pm.test("Response time less than 3000ms", function () {
pm.expect(pm.response.responseTime).to.be.below(3000); });
Test case này kiểm tra xem thời gian phản hồi từ API có nhỏ hơn 3000ms hay không.
Điều này đảm bảo rằng API trả về kết quả một cách nhanh chóng.
● pm.test("Does not exceed allowed access limit", function () {
pm.response.to.not.have.status(429); });
Test case này kiểm tra xem phản hồi từ API có mã trạng thái khác 429 hay không. Mã
trạng thái 429 thường được sử dụng để chỉ việc vượt quá giới hạn truy cập cho phép. Test
case này đảm bảo rằng API không vượt quá giới hạn truy cập được cho phép.

b, Chức năng Daily Quiz


- Mô tả: Hằng ngày, trang web sẽ cung cấp một bộ quiz gồm 10 câu hỏi về một chủ đề
ngẫu nhiên, người dùng có thể tham gia sự kiện này và phải hoàn thành trong vòng 3 phút tính từ
thời điểm tham gia. Những người dùng hoàn thành tốt sự kiện trong nhiều ngày liên tiếp sẽ có số
điểm cao và được hiện diện trên bảng xếp hạng của trang web. Tính năng này nhằm khuyến
khích sự ham học hỏi của người dùng cũng như cung cấp cho họ những thông tin mới và hữu ích
mỗi ngày.
- Đường dẫn: http://localhost:3001/api/daily_quiz

29
- Bộ test cases

- Giải thích test cases:


● pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
Test case này kiểm tra xem mã trạng thái của phản hồi từ API có phải là 200 hay không.
Mã trạng thái 200 thường đại diện cho thành công trong giao thức HTTP. Nếu mã trạng
thái không phải là 200, test case này sẽ không thành công.
● pm.test("Response has JSON format", function () { pm.response.to.have.jsonBody(); });
Test case này kiểm tra xem phản hồi từ API có định dạng JSON hay không. Điều này
đảm bảo rằng phản hồi được trả về là một đối tượng JSON hợp lệ. Nếu phản hồi không
có định dạng JSON, test case này sẽ không thành công.
● pm.test("Response time less than 3000ms", function () {
pm.expect(pm.response.responseTime).to.be.below(3000); });

30
Test case này kiểm tra xem thời gian phản hồi từ API có nhỏ hơn 3000ms hay không.
Điều này đảm bảo rằng API trả về kết quả một cách nhanh chóng. Nếu thời gian phản hồi
vượt quá 3000ms, test case này sẽ không thành công.
● pm.test("Does not exceed allowed access limit", function () {
pm.response.to.not.have.status(429); });
Test case này kiểm tra xem phản hồi từ API có mã trạng thái khác 429 hay không. Mã
trạng thái 429 thường được sử dụng để chỉ việc vượt quá giới hạn truy cập cho phép. Test
case này đảm bảo rằng API không vượt quá giới hạn truy cập được cho phép. Nếu phản
hồi có mã trạng thái là 429, test case này sẽ không thành công.

c, Chức năng Chatbot


- Mô tả: Người dùng có thể trò chuyện, đặt câu hỏi với chatbot AI được cung cấp bởi
model Claude-AI. Chatbot sẽ đóng vai trò như một trợ lý ảo giúp đỡ người đọc giải đáp thắc mắc
trong nhiều lĩnh vực.
- Đường dẫn: http://localhost:3001/api/chatbot
- Đầu vào: Định dạng json với đoạn text "Hello"

- Bộ test cases

31
- Giải thích test cases:
● pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
Test case này kiểm tra xem mã trạng thái của phản hồi từ API có phải là 200 hay không.
Mã trạng thái 200 thường đại diện cho thành công trong giao thức HTTP. Nếu mã trạng
thái không phải là 200, test case này sẽ không thành công.
● pm.test("Does not exceed allowed access limit", function () {
pm.response.to.not.have.status(429); });
Test case này kiểm tra xem phản hồi từ API có mã trạng thái khác 429 hay không. Mã
trạng thái 429 thường được sử dụng để chỉ việc vượt quá giới hạn truy cập cho phép. Test
case này đảm bảo rằng API không vượt quá giới hạn truy cập được cho phép. Nếu phản
hồi có mã trạng thái là 429, test case này sẽ không thành công.
● pm.test("Response time less than 3000ms", function () {
pm.expect(pm.response.responseTime).to.be.below(3000); });
Test case này kiểm tra xem thời gian phản hồi từ API có nhỏ hơn 3000ms hay không.
Điều này đảm bảo rằng API trả về kết quả một cách nhanh chóng. Nếu thời gian phản hồi
vượt quá 3000ms, test case này sẽ không thành công.

d, Kiểm thử với API không hợp lệ


- Đường dẫn sai: http://localhost:3001/api/quizzess

- Giải thích test cases:


● pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
Test case này kiểm tra xem mã trạng thái của phản hồi từ API có phải là 200 hay không.
Mã trạng thái 200 thường đại diện cho thành công trong giao thức HTTP. Nếu mã trạng
thái không phải là 200, test case này sẽ không thành công.

32
4.4 Thực hiện
1. Mở Postman và tạo một collection mới.
2. Thêm từng request mới trong collection và đặt method lần lượt theo từng đường dẫn API.
Đặt URL của từng request như sau:
a. Request 1 (Quiz): "http://localhost:3001/api/quizzes"
b. Request 2 (Daily Quiz): "http://localhost:3001/api/daily_quiz"
c. Request 3 (Chatbot): "http://localhost:3001/api/chatbot"
d. Request 4 (API không hợp lệ): "http://localhost:3001/api/quizzess"
3. Chọn tab "Body" và chọn "raw" cho các request cần có phần body. Trong phần body, nhập
dữ liệu tương ứng với yêu cầu của từng request. Ví dụ, request Quiz có thể yêu cầu một
đoạn văn về chiến tranh Triều Tiên dưới dạng định dạng JSON.
4. Thêm các test case vào từng request. Bạn có thể sử dụng các test case mẫu từ phần trước
hoặc tạo các test case phù hợp với yêu cầu cụ thể của bạn.
5. Bấm vào nút "Runner" ở góc trên bên phải của Postman.
6. Trong Runner, chọn collection mà bạn đã tạo.
7. Kiểm tra các request bạn muốn chạy trong collection.
8. Bấm vào nút "Run <collection name>" để chạy collection và kiểm tra các test case.
9. Sau khi quá trình chạy hoàn tất, bạn có thể xem kết quả của từng request và test case trong
tab "Runner" của Postman.

33
4.5 Kết quả chạy test
a, Lần chạy thứ nhất
- Khi chạy tự động 4 request trên bằng Postman lần thứ nhất với các test case đã xây
dựng, ta nhận được kết quả với 9 test passed và 4 test failed.

- Các test case failed chủ yếu là do thời gian API phản hồi vượt quá 3000ms. Test case của
đường dẫn http://localhost:3001/api/quizzess bị failed do đường dẫn API không hợp lệ, mã trạng
thái của phản hồi từ API khác 200.

34
b. Lần chạy thứ ba
- Chúng em đã thiết lập giới hạn lượt truy cập API không được vượt quá 6 lần trong 15
phút để tránh spam API. Khi số lần truy cập vượt quá giới hạn này, API sẽ không thể truy cập
được nữa. Khi chạy tự động 4 request trên bằng Postman lần thứ ba với các test case đã xây dựng,
ta nhận được kết quả với 5 test passed và 8 test failed.
- Các test case pass là do thời gian phản hồi từ API nhỏ hơn 3000ms hay không. API trả về
kết quả một cách nhanh chóng vì nó không cho phép truy cập.

- Các test case failed chủ yếu do mã trạng thái phản hồi là 429 cho thấy việc vượt quá
giới hạn số lần truy cập vào API.

35
CHƯƠNG 5: TỔNG KẾT

5.1 Ưu điểm của Postman


● Giao diện thân thiện người dùng: Postman cung cấp một giao diện sạch sẽ và trực quan,
giúp các nhà phát triển và người kiểm thử dễ hiểu và điều hướng công cụ một cách dễ dàng.
Đồng thời, Postman có thể hỗ trợ cho bạn chạy được giao diện bằng UI và non-UI.
● Kiểm thử và tự động hóa API: Postman cung cấp khả năng kiểm thử mạnh mẽ, cho phép
người dùng tạo và thực thi các bài kiểm thử cho API. Nó hỗ trợ cả kiểm thử thủ công và
quy trình làm việc tự động.
● Collections và Environments: Tính năng Collections của Postman cho phép người dùng tổ
chức và nhóm các yêu cầu API, giúp dễ dàng quản lý và chia sẻ chúng với thành viên
nhóm. Môi trường cho phép người dùng định nghĩa biến và cấu hình cho các môi trường
kiểm thử khác nhau (ví dụ: phát triển, staging, production).
● Hợp tác và làm việc nhóm: Postman cung cấp các tính năng hợp tác giúp đội ngũ làm việc
cùng nhau trên phát triển và kiểm thử API. Nó cho phép các thành viên chia sẻ Collections,
cộng tác trên các yêu cầu, và quản lý vai trò và quyền hạn.
● Tự động hóa và tích hợp: Postman tích hợp tốt với các công cụ và dịch vụ phát triển khác,
tạo điều kiện cho tích hợp luồng làm việc mượt mà. Nó hỗ trợ tích hợp với các hệ thống
quản lý phiên bản, hệ thống xây dựng, đường ống CI/CD, và nhiều hơn nữa.
● API Documentation: Postman cung cấp các tính năng để tạo và xuất bản tài liệu API. Nó
cho phép người dùng thêm mô tả chi tiết, ví dụ và chú thích cho các điểm cuối API, giúp
nhà phát triển hiểu và sử dụng API một cách dễ dàng.
● Mock Servers: Chức năng máy chủ giả mạo của Postman cho phép nhà phát triển mô phỏng
điểm cuối và phản hồi API. Điều này đặc biệt hữu ích cho phát triển và kiểm thử song song
khi backend thực tế không khả dụng.

5.2 Nhược điểm của Postman


● Phương pháp xác thực: Mặc dù hỗ trợ nhiều phương pháp xác thực, nhưng một số người
dùng cho rằng quản lý xác thực trong Postman có thể phức tạp, đặc biệt là đối với những
dự án lớn.
● Giới hạn cho phiên bản miễn phí: Phiên bản miễn phí của Postman có một số hạn chế về
số lượng yêu cầu và tính năng so với phiên bản trả phí.

36
● Yêu cầu nhiều tài nguyên: Postman có thể tốn nhiều tài nguyên, đặc biệt là khi xử lý bộ
sưu tập API lớn hoặc thực hiện các kịch bản kiểm thử phức tạp. Điều này có thể dẫn đến
việc tiêu thụ nhiều bộ nhớ và công suất xử lý, ảnh hưởng đến hiệu suất hệ thống.
● Thách thức với quản lý phiên bản: Mặc dù Postman tích hợp với các hệ thống quản lý phiên
bản, việc quản lý và giải quyết xung đột trong môi trường cộng tác có thể đầy thách thức,
đặc biệt là khi nhiều thành viên nhóm đang làm việc trên cùng một bộ sưu tập đồng thời.
● Hỗ trợ thấp cho API không phải REST: Postman được tạo ra chủ yếu cho các API theo kiểu
RESTful, điều này có nghĩa là nó có thể hạn chế trong việc xử lý các API không phải
REST.

5.3 Phương hướng phát triển trong tương lai


Theo em, Postman có nhiều tiềm năng phát triển trong tương lai vừa để khắc phục những
nhược điểm hiện có vừa mở rộng những tính năng mới và nâng cao chất lượng. Dưới đây là một
số xu hướng phát triển mà một công cụ kiểm thử API như Postman có thể theo đuổi:
● Tích hợp AI và tự động hóa: Nâng cao khả năng tự động hóa trong quá trình kiểm thử API
bằng cách tích hợp công nghệ trí tuệ nhân tạo (AI). Điều này có thể giúp trong việc tạo và
quản lý các kịch bản kiểm thử tự động, cũng như tối ưu hóa quá trình xác định lỗi.
● Hỗ trợ mở rộng cho nhiều loại API: Mở rộng khả năng hỗ trợ cho nhiều loại API khác
nhau, bao gồm cả các chuẩn không phải RESTful như GraphQL và SOAP. Điều này có thể
tăng tính linh hoạt của công cụ.
● Mở rộng tính năng bảo mật: Nâng cấp tính năng bảo mật để đáp ứng các yêu cầu ngày
càng cao về an ninh trong việc kiểm thử API, đặc biệt là khi thông tin cá nhân và dữ liệu
người dùng trở nên quan trọng.
● Tích hợp với công nghệ đám mây: Hỗ trợ tốt hơn cho việc làm việc với các dịch vụ và tài
nguyên đám mây, giúp người dùng kiểm thử các API mà họ triển khai trên nền tảng đám
mây.
● Mở rộng tính năng giả mạo: Cải thiện khả năng giả mạo để tạo ra môi trường phát triển và
kiểm thử mạnh mẽ hơn, đặc biệt là khi đối mặt với các dự án lớn.
● Hỗ trợ tốt hơn cho DevOps: Tích hợp chặt chẽ với các quy trình và công cụ DevOps để tối
ưu hóa luồng làm việc từ quá trình phát triển đến triển khai.

37
TÀI LIỆU THAM KHẢO

[1] N. T. Trang, Bài giảng điện tử môn học Kiểm thử và đảm bảo chất lượng phần mềm, Trường
Đại học Công nghệ - ĐHQGHN.
[2] G. Nguyen, API testing với Postman, 2018 link.
[3] Postman documentation overview link.
[4] Craig Risi, The Pros and Cons of Different API Test Tools – Postman, 2023 link.

38

You might also like