Professional Documents
Culture Documents
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ÀI TẬP LỚN MÔN KIỂM THỬ VÀ PHÁT TRIỂN PHẦN MỀM
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 ĐỀ
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.
6
CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ POSTMAN
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.
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.
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.
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.
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
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.
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.
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ử.
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ả.
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.
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
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.
29
- Bộ test cases
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.
- 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.
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
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.
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