News & Events
API Testing là gì? Vai trò, môi trường kiểm thử API, các Test Case được dùng
- Tháng Tám 30, 2024
- Posted by: SEOMKT
- Category: Uncategorized
1. Tìm hiểu API Testing là gì?
API (Application Programming Interface) Testing là quá trình kiểm tra các giao diện lập trình ứng dụng (API) để xác nhận rằng chúng hoạt động đúng như mong đợi. API là các giao diện cho phép các hệ thống, ứng dụng khác nhau giao tiếp với nhau. Kiểm thử API thường tập trung vào việc gửi yêu cầu đến API và kiểm tra phản hồi mà API trả về để đảm bảo tính chính xác, hiệu suất, bảo mật và tuân thủ các quy tắc.
2. Lý do nên thực hiện kiểm thử API
1. Kiểm thử ứng dụng sớm và không cần giao diện người dùng
+ Phát hiện lỗi sớm: Việc tìm ra lỗi sớm trong quá trình phát triển giúp giảm thiểu chi phí và công sức để sửa chữa sau này. Các lỗi phát hiện muộn thường khó sửa chữa và tốn kém hơn nhiều.
+ Không phụ thuộc vào giao diện người dùng: Kiểm thử API cho phép người kiểm thử bắt đầu kiểm thử ứng dụng ngay cả khi giao diện người dùng chưa hoàn thiện. Điều này giúp xác định và khắc phục sớm các vấn đề trong vòng đời phát triển.
+ Kiểm tra logic ứng dụng: API testing cho phép kiểm tra các logic kinh doanh và các chức năng của ứng dụng mà không cần phải có giao diện người dùng. Điều này rất hữu ích trong việc xác minh tính đúng đắn của hệ thống trước khi triển khai giao diện người dùng.
2. Để có được một chiến lược kiểm thử tự động tuyệt vời và giảm chi phí
+ Chiến lược tự động hóa hiệu quả: Dựa trên “Kim tự tháp Tự động hoá” của Mike Cohn, việc kiểm thử nên bắt đầu từ tầng dưới cùng của kim tự tháp, nơi mà unit test và API test nằm. Điều này giúp giảm chi phí và công sức so với việc kiểm thử dựa trên GUI.
Unit Test: Là tầng thứ nhất của kim tự tháp, kiểm tra các đơn vị nhỏ nhất của mã nguồn.
API Test: Là tầng thứ hai, kiểm tra các chức năng và logic của ứng dụng mà không cần giao diện người dùng.
+ GUI Test: Là tầng cao nhất, kiểm tra giao diện người dùng, tốn kém và phức tạp hơn.
+ Giảm chi phí: Kiểm thử API giúp giảm chi phí phát triển và duy trì kiểm thử. Kiểm thử GUI tốn kém hơn vì yêu cầu nhiều công sức để phát triển và bảo trì, và một thay đổi nhỏ trong giao diện người dùng có thể dẫn đến việc phải kiểm thử lại rất nhiều.
+ Phản hồi nhanh chóng: Kiểm thử API cung cấp phản hồi nhanh hơn về chất lượng ứng dụng, giúp phát triển nhanh chóng và liên tục.
3. Phát triển phần mềm theo phương pháp Agile và giảm việc thực hiện kiểm thử hồi quy bằng tay
+ Thích ứng nhanh chóng: Theo phương pháp Agile, việc phát triển phần mềm cần phải nhanh chóng và linh hoạt. Kiểm thử API hỗ trợ điều này bằng cách cung cấp phản hồi nhanh và chính xác về chất lượng ứng dụng.
+ Tăng tần suất phát hành: Agile yêu cầu tần suất phát hành cao, do đó kiểm thử tự động API giúp giảm thiểu thời gian và công sức cần thiết cho kiểm thử hồi quy.
+ Giảm áp lực lên QA: Kiểm thử tự động API giúp giảm áp lực lên nhóm QA bằng cách tự động hóa các kiểm thử hồi quy và cung cấp phản hồi nhanh chóng.
+ Đánh giá nhanh: API testing cho phép đánh giá nhanh chóng chất lượng hệ thống trước khi thực hiện kiểm thử GUI, giúp đảm bảo chất lượng ngay từ các giai đoạn đầu.
+ Ổn định: API thường ổn định sớm hơn và ít thay đổi hơn so với giao diện người dùng, do đó việc kiểm thử API có thể thực hiện sớm và đảm bảo độ tin cậy cao.
Tầm quan trọng của kiểm thử API
+ Chất lượng sản phẩm: Kiểm thử API đảm bảo rằng sản phẩm phần mềm có chất lượng cao, hoạt động ổn định và đáng tin cậy.
+ Trải nghiệm khách hàng: Kiểm thử API giúp đảm bảo rằng sản phẩm sẽ đáp ứng tốt nhu cầu của khách hàng, nâng cao trải nghiệm người dùng.
+ Thành công của doanh nghiệp: Một sản phẩm chất lượng cao sẽ giúp doanh nghiệp thu hút và giữ chân khách hàng, từ đó tăng cường sự thành công trên thị trường.
3. So sánh API Testing và GUI Testing
Tiêu chí | API Testing | GUI Testing |
Phạm vi kiểm thử | Kiểm thử logic kinh doanh và dịch vụ nền tảng | Kiểm thử giao diện người dùng và luồng ứng dụng |
Thời điểm thực hiện | Trước khi hoàn thiện GUI | Sau khi GUI hoàn thiện |
Tốc độ | Nhanh chóng và dễ dàng tự động hóa | Chậm hơn và khó tự động hóa hơn |
Phát hiện lỗi | Phát hiện lỗi sớm, ngay cả trước khi có GUI | Phát hiện lỗi giao diện và luồng người dùng |
Độ phụ thuộc | Ít phụ thuộc vào GUI | Phụ thuộc nhiều vào giao diện và trình duyệt |
4. Các Test Case được sử dụng trong kiểm thử API
Kiểm tra tính hợp lệ của dữ liệu (Validation Testing)
+ Giá trị đầu vào hợp lệ: Gửi các yêu cầu với dữ liệu đầu vào hợp lệ và xác minh rằng API trả về phản hồi mong đợi.
+ Giá trị đầu vào không hợp lệ: Gửi các yêu cầu với dữ liệu đầu vào không hợp lệ và kiểm tra rằng API trả về lỗi thích hợp, ví dụ như mã trạng thái 400 Bad Request.
+ Giới hạn dữ liệu: Kiểm tra các giới hạn trên và dưới của dữ liệu, chẳng hạn như độ dài chuỗi hoặc giá trị số học tối đa và tối thiểu.
Kiểm tra trạng thái HTTP (HTTP Status Code Testing)
+ Trạng thái thành công: Đảm bảo rằng API trả về mã trạng thái 200 OK khi yêu cầu thành công.
+ Lỗi không tìm thấy: Kiểm tra rằng API trả về mã trạng thái 404 Not Found khi yêu cầu một tài nguyên không tồn tại.
+ Lỗi máy chủ: Đảm bảo rằng API trả về mã trạng thái 500 Internal Server Error khi xảy ra lỗi máy chủ.
+ Xác thực thất bại: Kiểm tra rằng API trả về mã trạng thái 401 Unauthorized hoặc 403 Forbidden khi xác thực không thành công.
Kiểm tra bảo mật (Security Testing)
+ Xác thực và ủy quyền: Đảm bảo rằng các yêu cầu API yêu cầu xác thực đúng cách và chỉ cho phép truy cập các tài nguyên theo đúng quyền hạn của người dùng.
+ Kiểm tra các lỗ hổng bảo mật: Kiểm tra các lỗ hổng bảo mật như Injection, Cross-site scripting (XSS), và Cross-Site Request Forgery (CSRF).
+ Dữ liệu nhạy cảm: Đảm bảo rằng dữ liệu nhạy cảm được bảo vệ và không bị lộ ra trong phản hồi API.
Kiểm tra hiệu suất (Performance Testing)
+ Kiểm tra tải (Load Testing): Đánh giá hiệu suất của API dưới điều kiện tải bình thường.
+ Kiểm tra sức chịu đựng (Stress Testing): Kiểm tra cách API xử lý tải cao hơn mức bình thường và xác định ngưỡng giới hạn.
+ Kiểm tra khả năng mở rộng (Scalability Testing): Đánh giá khả năng của API để mở rộng và xử lý số lượng yêu cầu tăng cao.
Kiểm tra chức năng (Functional Testing)
- Kiểm tra từng chức năng riêng lẻ: Xác minh rằng từng chức năng của API hoạt động đúng như mô tả.
- Kiểm tra các trường hợp ngoại lệ: Đảm bảo rằng API xử lý đúng các trường hợp ngoại lệ, chẳng hạn như các lỗi hoặc điều kiện đặc biệt.
Kiểm tra luồng công việc (Workflow Testing)
+ Kiểm tra các luồng công việc nhiều bước: Xác minh rằng các API hoạt động đúng trong một chuỗi các thao tác liên tiếp.
+ Kiểm tra tính logic của luồng công việc: Đảm bảo rằng các API hoạt động đúng khi được sử dụng trong các kịch bản sử dụng thực tế.
Kiểm tra tính idempotent
Idempotent Methods: Đảm bảo rằng các phương thức idempotent (như GET, PUT) không thay đổi trạng thái của tài nguyên nếu được gọi nhiều lần với cùng một đầu vào.
Kiểm tra tích hợp (Integration Testing)
+ Tích hợp với các hệ thống khác: Đảm bảo rằng API hoạt động đúng khi tích hợp với các hệ thống hoặc dịch vụ bên ngoài.
+ Kiểm tra liên hệ giữa các API: Xác minh rằng các API liên quan hoạt động đúng khi được sử dụng cùng nhau.
Kiểm tra lỗi và hồi phục (Error and Recovery Testing)
+ Mô phỏng lỗi: Kiểm tra cách API xử lý khi gặp phải lỗi bất ngờ, chẳng hạn như mất kết nối hoặc lỗi hệ thống.
+ Khả năng hồi phục: Đảm bảo rằng API có thể hồi phục sau khi gặp lỗi và tiếp tục hoạt động bình thường.
5. Môi trường kiểm thử API
+ Môi trường phát triển: Được sử dụng để kiểm thử API trong giai đoạn phát triển.
+ Môi trường tích hợp: Kiểm thử API khi được tích hợp với các hệ thống khác.
+ Môi trường sản xuất: Môi trường thật, nơi API được triển khai để kiểm thử các tình huống thực tế.
+ Công cụ kiểm thử: Các công cụ như Postman, SoapUI, JMeter, hoặc các khung kiểm thử tự động như Rest Assured (Java), HTTPClient (Python).
+ Mock Servers: Được sử dụng để kiểm thử các API chưa hoàn thiện hoặc chưa sẵn sàng cho môi trường kiểm thử.
Postman là một công cụ mạnh mẽ giúp tạo, lưu, gửi yêu cầu HTTP và kiểm tra phản hồi API. Ngoài kiểm tra phản hồi, Postman cung cấp các tính năng như Collections để tổ chức và lưu trữ yêu cầu, Tests để kiểm tra tự động phản hồi API, và Pre-request scripts để thực hiện các thao tác trước khi gửi yêu cầu. Những tính năng này giúp tự động hóa và tối ưu hóa quy trình làm việc, nâng cao hiệu suất và độ chính xác trong kiểm thử API.
>> Xem thêm về: test api bằng postman
Khóa học Tester cho người mới bắt đầu tại CodeStar Academy trang bị kiến thức và kỹ năng kiểm thử phần mềm từ cơ bản đến nâng cao. Với đội ngũ giảng viên thực chiến như Nguyễn Thị Lệ Chi và Trần Văn Lực, học viên được thực hành >= 60% thời gian khóa học trong môi trường chuyên nghiệp. Học viên sẽ tự tin thực hiện dự án đạt chuẩn CodeStar và nhận hỗ trợ nghề nghiệp sau khi tốt nghiệp. Ngoài ra, khóa học còn tặng kèm các khóa đào tạo kỹ năng mềm, giúp học viên phát triển toàn diện.
>> Tham khảo ngay: Lộ trình học Tester cho người mới bắt đầu trong 16 buổi