Mình test API như thế nào?
- Thuy Nguyen
- 7 thg 5, 2024
- 4 phút đọc
Lần đầu tiên được hỏi "Em thực hiện test API như thế nào?" - mình có chút bối rối khi nghĩ câu trả lời cho câu hỏi này. Gần như trong tất cả các cuộc phỏng vấn thì mình đều nhận được câu hỏi đó.
Với các bạn chưa rõ về API và cách hoạt động thì có thể đọc thêm tại đây: Tìm hiểu kiến thức cơ bản về API (viblo.asia)
Trong bài viết này mình sẽ nói một chút về API và cách thực hiện test API dựa trên sự tìm hiểu của mình. Bài viết sẽ đề cập đến ba vấn đề:
Giới thiệu về API
Điểm khác biệt giữa test tính năng và test API
Cách thực hiện test API
Giới thiệu về API
API là gì?
API viết tắt của Application Programming Interface (Giao diện lập trình ứng dụng).
API thường hoạt động theo mô hình client/server. API là một ứng dụng được đặt ở phía server ⇒ muốn truy cập API phải có URL.
API cho phép giao tiếp giữa các processes, programs và/hoặc systems.
Bản chất của API là HTTP Request, thành phần gồm có request và response. Mình hiểu đơn giản là: tạo 1 request lên URL ở phía server → lấy response và kiểm tra response trả về xem có đúng không.
Có 2 loại API là: RestfulAPI và SoapAPI
RestfulAPI: format dữ liệu trả về dạng JSON
SoapAPI: format dữ liệu trả về dạng XML
API có 4 phương thức:
GET: để truy vấn object, gọi một xử lý ở phía server mà không cần cung cấp thêm bất cứ data gì.
POST: để tạo một object mới, yêu cầu một xử lý ở phía server kèm theo data người dùng gửi lên.
PUT: để sửa đổi hoặc thay thế một object, update data lưu trong DB.
DELETE: để loại bỏ một object.
Điểm khác biệt giữa test tính năng và test API
Test tính năng:
Có thể là test app, test web: kiểm tra hiển thị, UI/UX, luồng hoạt động đã đúng chưa, khi có lỗi thì sẽ hiển thị như nào.
Đối với App thì phải kiểm tra thêm khả năng tương thích với device khi sử dụng app: cuộc gọi đến, thông báo từ app khác, có mạng hay không, ...
Test API:
Dựa vào tài liệu mô tả API, ý nghĩa sử dụng của API để thiết kế test.
Với input dữ liệu hợp lệ, response trả về thế nào.
Khi có lỗi thì mã lỗi, message tương ứng ra sao.
Cách thực hiện test API
Để dễ hình dung thì mình sẽ dựa vào một số hoạt động trong “test process” để xác định các nhiệm vụ thực hiện tương ứng, bao gồm: test planning, test design & implement, test execution, test completion.
1. Test planning:
Trong khâu này, mình cần xác định được:
Phạm vi test, bao gồm:
Các chức năng cần test, tài liệu đặc tả yêu cầu với chức năng đó
API tương ứng với mỗi chức năng, tài liệu đặc tả API: kiểm tra xem đã đầy đủ thông tin về request, response chưa
Công cụ sử dụng để test API. Ví dụ: Swagger, Postman, JMeter, …
2. Test design & implement:
Nắm chắc yêu cầu nghiệp vụ để tạo bộ test case và test data tương ứng. Khi tạo test case cho 1 API thì mình thường focus vào các case liên quan đến:
Authentication: kiểm tra quyền thao tác với token được sử dụng
Method: kiểm tra thay đổi method Ví dụ: API tạo mới với method là “POST” ⇒ khi sửa thành “GET” để call thì có báo lỗi không
Validate: kiểm tra các case validate với dữ liệu đầu vào không hợp lệ, tương tự như khi test trên client Ví dụ: bỏ trống ở field bắt buộc/không bắt buộc, nhập full space, điền thông tin sai kiểu định dạng, …
Test function: thường mỗi API sẽ tương ứng với một chức năng, sử dụng bộ dữ liệu đầu vào hợp lệ để kiểm tra xem API hoạt động đúng chức năng yêu cầu chưa
Test case liên quan khác: thường là những case tích hợp. Giả sử trong trường hợp tạo mới, với dữ liệu đã được tạo thì mình có thể sử dụng nó bình thường không
3. Test execution:
Thực hiện kiểm tra dựa trên bộ tài liệu test case đã thiết kế và môi trường đã chuẩn bị. Kết quả kiểm thử cần được cập nhật vào tài liệu. Theo dõi và báo cáo lỗi đã tìm thấy lên công cụ quản lý lỗi, thực hiện retest để verify các bug đã được sửa và regression test trong trường hợp có sự thay đổi.
4. Test completion
Tổng kết, báo cáo kết quả về việc thực thi test case. Đánh giá các tiêu chí hoàn thành như: phạm vi kiểm tra, chất lượng, chi phí, thời gian hoàn thành.
Ngoài ra, tương ứng với mỗi tool sử dụng thì mình cũng có những cách khác nhau để bổ trợ cho việc thực hiện test API nhanh và hiệu quả.
Giả sử:
Import file data test với nhiều case khi thực hiện run API
Viết test-script để test API: bao gồm việc gán biến, viết hàm để tạo dữ liệu tự động, xây dựng bộ test suite …
Config để API có thể thực hiện nhiều lần
Còn có khá nhiều thứ cần tìm hiểu để thực hiện test API nhưng mình chưa tìm hiểu hết, hiuhiu. Ai có bổ sung thêm gì, rất mong các bạn có thể để lại bình luận phía dưới cho mình để có thể hoàn thiện hơn các ý phía trên, và cũng cảm ơn các bạn đã đọc hết bài viết này của mình. ^.^
Commenti