Tổng hợp các câu hỏi về api testing

https://www.logigear.com/magazine/API-testing/breaking-down-a-web-service/

Câu 1: Làm thế nào để biết dự án của mình có sử dụng API hay không?

  • Cách 1: Hỏi dev
  • Cách 2: Hỏi dev

Nếu không muốn hỏi, tự mình mò mẫm thì gợi ý như sau:

  • Nếu Mobile App thì sure là 99% có sử dụng API
  • Nếu là Web thì hên xui, nó phụ thuộc vào công nghệ mà dự án sử dụng:
    • Nếu trang web sử dụng framework front-end như React, Angular, Vuejs thì 99% là có sử dụng API.
    • Nếu trang web dạng Server-rendering thì hên xui, có thể vẫn có API như bình thường

Đọc thêm bài viết này

Câu 2: Em đọc đi đọc lại các bài viết của anh về API rồi mà vẫn không hiểu API là cái gì? Cái gì được gọi là API test, cái gì là test bình thường?

API test khác với “test thông thường” ở điểm nào?

Ảnh tự chế

Nhìn ảnh trên, bạn sẽ thấy đối tượng của API là toàn bộ system trừ front-end. Nó không thể test được phần hiển thị trên front-end, nó chỉ test được data mà back-end xử lý nghiệp vụ trả ra có đúng không.

Câu 3: Khi em tra dev tool của Chrome thì thấy có lúc response là HTML, có lúc response là Json, cả 2 đều là HTTP request, vậy cái gì là API? Thế API và HTTP request khác nhau như thế nào?

  • Về cơ bản, API chính HTTP request. Nói chính xác, API là con của HTTP request.
  • HTTP là 1 chuẩn giao tiếp (protocol), vận chuyển thông tin giữa các đối tượng. Bạn có thể đọc lại bài này.
  • API tận dụng HTTP protocol để tự cấu trúc nội dung thông tin được gửi với 1 số điều kiện bị giới hạn lại hoặc thay đổi. Ví dụ:
    • Nội dung trong body sẽ là json hoặc xml, chứ nguyên bản của HTTP thì nhiều định dạng: plain text, html, json, xml …
    • Tận dụng HTTP method để nói về mục đích: CRUD (Create-Read-Update-Delete) –> POST – GET – PUT – DELETE. Ngoài ra HTTP method còn có rất rất nhiều methods khác OPTION – TRACE – HEAD – CONNECT… Nói như vậy, không có nghĩa là API chỉ dùng 4 loại ở trên, tùy mục đích họ có thể sử dụng thêm HTTP method, tuy nhiên 4 methods đã gần đủ hết các yêu cầu rồi.
    • Tận dụng HTTP status code để thông báo cho client biết về tình trạng xử lý request. Ví dụ 200, 400, 401, 403.Tương tự như những phần khác, HTTP status code thực tế có rất nhiều.

Ví dụ về API document https://petstore.swagger.io/#/

Câu 4: Web chị dùng api thì có làm performance testing được không? Bình thường chị đều dùng chức năng record của jmeter, bây giờ làm với api thì làm thế nào?

  • Như câu 3 đã trả lời, API thực tế cũng sử dụng HTTP protocol nên làm việc với Jmeter bình thường như làm việc với HTTP request mà trả về HTML.

Câu 5: Thế Test cases của API test thì viết ở đâu? viết ở postman luôn ah?

  • Test case là thứ nằm ngoài Test Type, nên trước bạn viết TC cho UI ở đâu thì giờ cũng có thể viết TC cho API ở đấy, ví dụ trên excel, google sheet hay các tool chuyên dụng.
  • Postman là tool giúp bạn có thể gửi request – nhận và hiển thị response – viết test script để tự động check response. Bạn có viết TC hay không, postman không quan tâm.

Câu 6: Em dùng Auto test selenium rồi thì có phải test API nữa không?

  • Như câu 2 đã phân tích, selenium test chức năng + hiển thị của UI, đối tượng test của nó là toàn bộ hệ thống thông qua Front-end. Sẽ có những case mà test selenium trùng với test API nhưng mà sẽ có rất nhiều case khác nhau. –> Tóm lại, nên có cả 2 loại test.

Câu 7: Mình mới biết đến API test thôi, mình nên bắt đầu từ đâu?

+1

Leave a Reply

Your email address will not be published. Required fields are marked *