Categories

Subscribe Now

* You will receive the latest news and updates on your favorite celebrities!

Automation Series

API Testing là gì?
API

API Testing là gì? 

API được sử dụng để tích hợp các hệ thống với nhau. Bạn có thể tạo sẵn dữ liệu cho các hệ thống khác truy cập thông qua API hoặc chấp nhận dữ liệu từ các hệ thống khác. Đây là cách các thiết bị và ứng dụng khác nhau nói chuyện với nhau và chia sẻ thông tin.

Các công ty thành công như Facebook, YouTube và Twitter sử dụng API để ứng dụng của họ có thể giao tiếp với các chương trình của bên thứ ba. Thông thường, API hoạt động tương tự như cách hoạt động của bất kỳ trang web nào. Yêu cầu (request) được gửi từ client tới server và kết quả phản hồi (response) thông qua giao thức http.

Ví dụ:

Trang web thương mại điện tử X có tích hợp với 1 cổng thanh toán Y (Payment gateway)

  1. Người dùng nhập thông tin thẻ tín dụng
  2. X sử dụng (thông tin thẻ + số tiền phải thanh toán) gọi 1 API của Y
  3. Y trả lại thông tin về việc thanh toán có thành công hay ko?
  4. X lấy thông tin đó, hiển thị lên cho người dùng biết họ đã thanh toán thành công chưa.

Định dạng trong việc hỏi và trả lời ở trên có thể thông qua trò chuyện trực tiếp hoặc viết giấy. Ở trong API thì có 2 định dạng chính là xml và json.

Vì sao phải test API?

  • Trong quá trình triển khai dự án, phần server và client làm độc lập với nhau nên có nhiều chỗ client chưa làm xong, mình không thể chờ client làm xong để test được dữ liệu mà test API bằng công cụ khác luôn –> Lúc này việc test hoàn toàn không phụ thuộc gì vào client.
  • Kể cả khi client làm xong rồi, nếu mình test trên client mà thấy lỗi liên quan đến logic và dữ liệu thì cũng cần test thêm cả API để biết chính xác là server sai hay client sai –> fix lỗi sẽ nhanh hơn.
  • Khi làm hệ thống web services, dự án của mình chỉ viết API cho bên khác dùng, mình sẽ không có client để test giống như các dự án khác –> phải test API hoàn toàn.
  • Giảm chi phí trong kiểm thử tự động

Nếu chúng ta hiểu được “Kim tự tháp Tự động hoá” ( Automation pyramid), chúng ta có thể đưa ra một chiến lược tự động hóa hiệu quả.

Khái niệm kim tự tháp được Mike Cohn phát triển và đã được mô tả trong cuốn sách “Thành công với Agile”. Tầng thứ nhất của kim tự tháp là Unit test. Thực hiện unit test là cách nhanh nhất và mang lại kết quả cao nhất. Tầng thứ 2 là kiểm thử API dựa trên service layer. Cuối cùng, ở đỉnh của kim tự tháp là kiểm thử UI.

Đi từ tầng dưới kim tự tháp lên trên, chi phí liên quan đến việc tạo ra và duy trì các phương pháp kiểm thử, thời gian thực hiện kiểm thử, phạm vi kiểm thử sẽ tăng lên. Các kim tự tháp tự động (Automation pyramid) nói rằng bạn nên làm nhiều hơn nữa kiểm thử tự động thông qua Unit test và API hơn là kiểm thử dựa trên GUI. Sự thành công của Agile rất phụ thuộc vào phản hồi (feedback) sớm. Trong các thực tiễn, việc tích hợp liên tục, thời gian kiểm thử hồi quy GUI và nhận lại phản hồi quá dài. Kiểm tra giao diện người dùng rất tốn kém để phát triển và duy trì. Một sự thay đổi nhỏ trong giao diện người dùng cũng có thể dẫn đến việc thực hiện kiểm thử lại rất nhiều.

Trong một số trường hợp, người kiểm thử bắt buộc phải thực hiện tự động hoá ở tầng UI. Tuy nhiên, kiểm thử có thể chậm và tốn nhiều chih phí. Đây là một trong những lý do khiến nhiều công ty thất bại trong nỗ lực thực hiện chiến lược tự động hoá hiệu quả.

  • 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 thủ công

Tự động hóa API có thể giảm đáng kể áp lực của kiểm thử hồi quy của nhóm Test. Bằng cách tích hợp kiểm thử tự động API , nhóm Test có thể cung cấp phản hồi nhanh về chất lượng ứng dụng ngay khi được triển khai (deploy). Điều này cung cấp một đánh giá nhanh chóng về hệ thống trước khi kiểm thử GUI. Kiểm thử tự động API yêu cầu code ít hơn và cung cấp kết quả kiểm tra nhanh hơn và phạm vi kiểm tra tốt hơn. API được ổn định sớm và không thay đổi thường xuyên như giao diện người dùng.

Related posts

Leave a Reply

Required fields are marked *

error: Content is protected !!