HomeOur Team
Tìm hiểu sơ lược về API testing

Tìm hiểu sơ lược về API testing

By nhung.ngo
Published in Testing
November 12, 2022
4 min read

Xin chào các bạn đã đến với chủ đề tìm hiểu về test API của mình nhé. Đây là lần đầu tiên mình chia sẻ về API testing. Các dự án trước đây mình tham gia thì không có test API. Khi vào công ty mình mới biết test API nên mình cũng đã tự tìm hiểu. Và dưới đây là các kiến thức mà mình đã tìm hiểu được. Ở bài này, mình sẽ tìm hiểu về các nội dung sau:

  • API testing là gì?
  • Tại sao cần test API?
  • Khác biệt giữa Unit Test và API Test
  • Những khó khăn khi test API

1. API Testing là gì? Trước khi tìm hiểu khái niệm API Testing là gì, bạn cần hiểu API là gì. API là viết tắt của cụm từ Application Programming Interface nghĩa là giao diện lập trình ứng dụng. API chính là phương thức kết nối giữa client và server, giữa thư viện và các ứng dụng. Khi yêu cầu được gửi từ client tới server, kết quả sẽ được phản hồi lại qua giao thức HTTP hoặc HTTPS.

API Testing hay kiểm thử API là hoạt động kiểm thử giao diện lập trình ứng dụng trực tiếp mà không tác động gì tới client. API Testing được thực hiện trên các business layer, trong đó dữ liệu sẽ được yêu cầu từ XML hoặc JSON và phản hồi lại qua HTTP hoặc HTTPS. Đây cũng là điều giúp phương thức này làm việc được với nhiều ngôn ngữ lập trình và nền tảng công nghệ khác nhau. image

Ví dụ: Giả sử bạn là 1 người hướng dẫn viên du lịch, và quản lý 1 nhóm du lịch đến từ nhiều nước khác nhau. Trong nhóm có người Nga, Mỹ, Nhật, Thụy Điển, Đức, Việt Nam. Để có thể làm mọi việc một cách suôn sẻ, tất cả cái nhóm này phải cùng nói 1 ngôn ngữ, có thể là tiếng anh hoặc tiếng Nga. Ở đây người hướng dẫn viên sẽ đóng vai trò là Server, và người du lịch sẽ đóng vai trò là client. Khi đi trên đường hoặc đến thăm địa danh du lịch, những người khách có thể hỏi hướng dẫn viên rất nhiều câu hỏi khác nhau. “Cái kia là cái gì?”, “Quả này ăn như thế nào?”… Với mỗi một hành động hỏi như vậy, tương ứng với việc gửi 1 request được gửi lên server với những tham số đầu vào như “Cái kia” hay “quả này”. (Gửi request còn được gọi là Call API). Với mỗi câu hỏi, người hướng dẫn viên sẽ trả lời 1 cách khác nhau – cái này gọi là response.

API Testing thường được sử dụng để kiểm thử:

  • Functional: kiểm trả API response trả về có đúng hay với tài liệu mô tả hay không?
  • Performance: kiểm tra thời gian phản hồi có thể chấp nhận được hay không?
  • Security: xác thực quyền, kiểm soát truy cập, dữ liệu nhạy cảm được truyền qua mạng an toàn không và phản hồi (để đảm bảo an toàn cho hệ thống) tới các cuộc tấn công bảo mật tiềm ẩn.

Các tool được sử dụng để kiểm thử API như REST Client (là addon trên Firefox, Chrome), Postman.

2. Tại sao cần test API? 2.1. Kiểm thử ứng dụng sớm mà không cần giao diện người dùng Nếu bạn tìm thấy lỗi càng muộn thì bạn càng mất nhiều thời gian và công sức để sửa nó. API Testing sẽ giúp người kiểm thử tham gia sớm vào vòng đời phát triển của sản phẩm. Với API Testing, bạn hoàn toàn có thể bắt đầu kiểm thử ứng dụng sớm mà không cần đến giao diện người dùng. Điều này sẽ giúp bạn sớm khắc phục được các vấn đề trong vòng đời phát triển, nếu không thì sẽ mất nhiều chi phí để khắc phục khi lỗi được xác định ở quá trình kiểm thử GUI. Ưu điểm của API Testing là có thể kiểm tra rất nhiều logic mà không bị phụ thuộc vào GUI.

2.2. Tạo ra một chiến lược kiểm thử tự động, giảm thiểu chi phí image

Đây là hình ảnh của “Kim tự tháp tự động hóa” (Automation pyramid). Nếu chúng ta nắm được, chúng ta có thể tạo ra một chiến lược tự động hoá hiệu quả.

Đi từ tầng dưới của kim tự tháp, các chi phí liên quan đến việc tạo ra và duy trì các phương pháp, thời gian thực hiện, phạm vi kiểm thử sẽ dần tăng lên. Kim tự tháp chỉ ra rằng chúng ta cần làm nhiều kiểm thử tự động thông qua Unit Test và API Testing hơn là thực hiện kiểm thử dựa trên GUI.

Trên thực tế, việc liên tục tích hợp, thời gian để kiểm thử hồi quy GUI mấy khá nhiều thời gian để nhận lại phản hồi. Các chi phí liên quan đến việc thực hiện và duy trì các phương pháp kiểm thử sẽ dần tăng lên.

3. Khác biệt giữa Unit test với API test

Unit TestAPI Test
Thực hiện bởi developerThực hiện bởi cả developer và tester
Kiểm thử những chức năng riêng biệtKiểm thử những chức năng liên quan đến nhau
Dev có thể truy cập vào source codeTester không thể truy cập vào source code nên chỉ kiểm tra qua API
Giới hạn phạm viPhạm vi rộng hơn
Thường được chạy trước khi buildThường được chạy sau khi build

4. Những khó khăn khi test API Theo ý kiến cá nhân của mình thì khi test API sẽ gặp những khó khăn như sau:

  • Khó khăn đầu tiên khi test API là bạn sẽ không có giao diện để test. Do đó, các bạn mới sẽ bối rối ko biết test nó như thế nào.
  • Trong body request sẽ có rất nhiều tham số, nếu bạn không hiểu rõ yêu cầu thì bạn sẽ không biết truyền tham số như thế nào cho đúng, cách lấy token như thế nào.
  • Tương tự thế, khi bạn send request, response data sẽ trả về rất nhiều items. Để verify được data trả về có đúng hay không, lúc này đòi hỏi bạn phải biết cách query SQL từ database.
  • Bạn phải hiểu rõ các http status code. Ví dụ như mã 200, 401, 500 … để có thể phán đoán được lỗi xảy ra ở client hay phía server.

Kết

Như vậy, mình đã chia sẻ những kiến thức sơ lược về API testing. Cám ơn các bạn đã đọc bài viết của mình và hi vọng nhận được sự góp ý của mọi người. Hẹn gặp lại các bạn ở bài viết tiếp theo nhé!!!


Tags

API testing

Share

nhung.ngo

nhung.ngo

Tester

Expertise

Related Posts

Giao thức trong kiểm thử API và HTTP Status code là gì? Các loại HTTP status code trong API testing
Testing
Giao thức trong kiểm thử API và HTTP Status code là gì? Các loại HTTP status code trong API testing
December 16, 2022
8 min
© 2023, All Rights Reserved.
Powered By

Quick Links

HomeOur Team

Social Media