top of page

Mình test API như thế nào?

  • Ảnh của tác giả: Thuy Nguyen
    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


© 2023 by ThuyNguyen ・hoctestdao

bottom of page