Chi tiết bài viết
Tóm tắt nội dung
API Testing đã trở thành một phần không thể thiếu trong quá trình phát triển và kiểm thử phần mềm. Với sự gia tăng của các dịch vụ và kiến trúc dựa trên đám mây, API đã trở thành xương sống của các ứng dụng hiện đại, điều quan trọng đối với các doanh nghiệp tổ chức là đảm bảo Test API hoạt động chính xác.
Quy trình test API là gì?
API được biết đến là Application Program Interface hay còn là một loại kiểm thử phần mềm mà nội dung test là các giao diện lập trình ứng dụng. Bên cạnh đó nội dung kiểm thử còn bao gồm chức năng, hiệu suất và độ bảo mật của phần mềm dựa trên các bài test tích hợp. Chủ yếu khu vực kiểm thử nằm ở phần trung gian giữa Client và Server
Trong Test API, các phép thử sẽ thực hiện giao thức để Client và Server giao tiếp với nhau. Giao thức chủ yếu để chúng có thể giao tiếp là HTTP. API chủ yếu được xây dựng dựa trên 2 thành phần là: Yêu cầu (request) và phản hồi (respond)
Thông thường có 4 loại Request chính đó là:
- GET: để truy cập vào object
- POST: tạo ra object mới
- PUT: dùng để thay thế hoặc sửa 1 object cũ
- DELETE: loại bỏ 1 object cũ
Các yêu cầu đầu vào phải được API thông qua, sau đó chỉ thỉ được gửi đến server để thực thi. Hiện nay thông thường các bài Test API thường chỉ tập trung vào business logic mà ít tập trung vào giao diện phần mềm
Cách thực hiện test API
Như đã nói ở trên để thực hiện bài test API, cần tích hợp nhiều bài test dưới đây là các loại test và cách thực hiện bên trong API:
SynTax Testing
Ở bài kiểm thử này, API tập trung vào điều kiện Method check: Các data đầu vào đúng sẽ được chấp nhận (Accept) và từ chối (Reject) với data sai. Đây là các trường hợp diễn ra bên trong Syntax test:
- Bỏ khoảng trống trường bắt buộc: Ở trường hợp này đầu ra của bài test sẽ phải thông báo lỗi cho nhân viên kiểm thử và các phần khác của phần mềm sẽ không được cập nhật. Đồng thời Server cũng không thực hiện bất kì một giao thức nào
- Bỏ trống ở trường không bắt buộc: Trường hợp này không có bất kỳ lỗi gì ở đầu ra và Server vẫn sẽ được thực hiện business logic
- Điền thông tin sai kiểu định dạng: Trong Respond sẽ có thông báo lỗi phản hồi.
Tóm lại: Cũng giống như các trường hợp Validate dữ liệu mà các tester vẫn thực hiện hàng ngày
Functional test
Để đảm bảo Method bên trong API thực hiện đúng chức năng của mình thì bắt buộc gần như phải sử dụng Functional test. Trong đó Kiểm thử viên sẽ phải thực hiện đầy đủ cả 8 kỹ thuật bên trong Testing Functional để có thể chắc chắn từng chức năng nhỏ nhất hoạt động theo đúng ý muốn.
Có thể bạn quan tâm: Functional testing là gì? Functional và Non Functional testing khác nhau ở đâu?
Một số ví dụ về tác dụng của kiểm thử chức năng ở bên trong các bài test api:
- Giá trị là X và số phần trăm discount của sản phẩm là Y thì số tiền phải trả là X*(1-Y) hay không; Nó chính là việc test Method tính toán với tham số X và Y. Việc thực hiện business logic có thể sẽ không được ghi lại vào DB
- Việc Update trường Name ở ví dụ ban đầu có được ghi lại ở DB hay không? Việc này đòi hỏi nhân viên tester vào DB và check kết quả
- Hay nếu như để yêu cầu thông tin của những user có tên là “Nam”, vào DB thực hiện câu lệnh Query sau đó so sánh với kết quả trả về ở Respond xem 2 kết quả có trùng khớp với nhau hay không?
Test Scenarios
Kịch bản kiểm thử là các bước hay kỹ thuật để xác định tính năng của ứng dụng. Thông thường test scenarios bên trong test API là tập hợp nhiều Test Case và Test Suite.
Vì hiện nay đa phần các bài test API đều tập trung vào business logic mà ít tập trung vào giao diện nên bên trong Scenariors sẽ gần như không có User Interface Test.
Test case bên trong test API
Các test case bên trong cho kiểm thử API dựa trên:
- Dữ liệu trả về dựa trên dữ liệu đầu vào: Yếu tố này tương đối dễ dàng được kiểm tra dựa trên kết quả trả về có đúng như trên lý thuyết hay không
- Không có kết quả trả về: ở trường hợp không có kết quả, hành vị của API trên hệ thống có thể được kiểm tra
- Kích hoạt API/event và interrupt: Trong trường hợp đầu ra của API kích hoạt các event hay interrupt thì các listeners của event và interrupt cần phải được kiểm tra
- Cập nhật cấu trúc dữ liệu: Việc cập nhật cấu trúc dữ liệu sẽ có những kết quả ảnh hưởng đến hệ thống của cả phần mềm. Chính vì thế mỗi lần có dữ liệu cập nhật thì nhân viên kiểm thử cũng như developers phải phối hợp xem lại dữ liệu đầu vào.
- Chỉnh sửa các tài nguyên (resource) nhất định, sẵn có bên trong API: Nếu API cần phải chỉnh sửa một vài tài nguyên thì cần phải được thực hiện việc truy cập vào mục tài nguyên đó, rồi sau đó thực hiện các lệnh đầu vào tương ứng
Những lưu ý cần quan tâm khi thực hiện Test API
Các điểm cần phải kiểm tra
Quy trình test API cần được thực hiện theo quy trình và đầy đủ các bước sau:
- Discovery testing: Kiểm tra các API khi truy cập các tài nguyên và xem các API truy cập tài nguyên, có quyền xem, hủy và điều chỉnh hợp lệ hay không.
- Usability testing: là một loại test bên trong Functional test, để xác minh chức năng của phần mềm có hoạt động đúng hay không và API có được tích hợp tốt trên các nền tảng hay không
- Security testing: Các bài test yêu cầu xác minh yêu cầu và xem xét các dữ liệu nhạy cảm trên API có được mã hóa thông qua HTTP hay không
- Automated testing:Kiểm thử API được nâng cao trong việc tạo ra các đoạn mã hay công cụ có thể chạy API thường xuyên
- Documentation: Các tester phải đảm bảo rằng tất cả tài liệu tích hợp và cung cấp thông tin tương tác vơi API
Các lỗi có thể phát hiện
- Lỗi do xử lý điều kiện đầu vào tạo ra
- Thiếu hoặc lặp chức năng
- Độ tin cậy không được đảm bảo; khó khăn trong việc kết nối và nhận được phản hồi từ API
- Vấn đề về xử lý đa luồng
- Vấn đề về hiệu năng hoạt động; công suất hoạt động của API không tốt ở cường độ cao
- Cấu trúc dữ liệu trả về không chính xác…
Tools cần được sử dụng bên trong Test API
Vì bản chất của test API là đã đụng chạm đến source code nên các tool được sử dụng cho source có thể được sử dụng trong test API như: Postman, soapui, rungscope, curl, ctesk…
Khóa học Test API sử dụng công cụ Postman
API Testing là một quá trình tương đối phức tạp, các bài kiểm thử này là thử thách lớn cho cả những kiểm thử viên lâu năm cũng như người mới bắt đầu. Chính vì thế để giúp các nhân viên kiểm thử nâng cao, Khóa học API Testing sử dụng công cụ POSTMAN của daotaotester đem đến những kiến thức thực chiến cũng như những buổi thực hành chuyên sâu cho học viên. Khóa học rất phù hợp với những bạn đang tập làm quen với POSTMAN, những bạn có kiến thức cơ bản hay tối thiểu về Java, các học viên đã hoàn thiệt khóa học tester cơ bản đang thực hiện quá trình kiểm thử thủ công và kể cả những bạn chưa có kiến thức lập trình cũng rất phù hợp với khóa học.
Nội dung khóa học bao gồm 6 buổi cả lý thuyết lẫn thực hành, thời lượng mỗi buổi kéo dài 120 phút. Dưới sự dẫn dắt của các giảng viên uy tín, nhiều năm kinh nghiệm chinh chiến trong ngành Kiểm thử nói chung và Test API nói riêng. Chắc chắn khi tham gia khóa học, bạn sẽ được trang bị đầy đủ kiến thức và cách làm việc với Postman, kiến thức về API Testing REST bằng cách sử dụng Rest Assured với các ví dụ thực tế…
Trên đây là những kiến thức về Test API mà Daotaotester đã chọn lọc và cung cấp tới bạn đọc. Chúng tôi mong rằng các bạn có thể có thể hiểu được khái niệm và quy trình kiểm thử API để áp dụng thực tiễn vào công việc của mình.