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:
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.
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ử:
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í
Đâ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 Test | API Test |
---|---|
Thực hiện bởi developer | Thực hiện bởi cả developer và tester |
Kiểm thử những chức năng riêng biệt | Kiểm thử những chức năng liên quan đến nhau |
Dev có thể truy cập vào source code | Tester không thể truy cập vào source code nên chỉ kiểm tra qua API |
Giới hạn phạm vi | Phạm vi rộng hơn |
Thường được chạy trước khi build | Thườ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:
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é!!!