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

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?

4.1 7 votes
Article Rating
Subscribe
Notify of
guest
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Chauph
Chauph
2 years ago

em đang tìm hiểu về API thì nên bắt đầu với khoá học nào của anh trước ạ.

min min
min min
6 months ago

trong 1 dự án, thì API nào mới được test, mình thấy có các loại api như:
+ API có document trên swagger rõ ràng, hay gọi là public API => cái này thì mình biết là sẽ có testing nè
+ API ko có document, nó có thể thấy được thông qua chrome dev tool, vậy những API này có cần test không? (hay còn gọi là private api hay internal api)

còn loại api nào nữa không?

min min
min min
6 months ago
Reply to  Giang Nguyen

nếu giả sử nói “API nào cũng nên test”, thì các api không có document, ko có hướng dẫn, thì mình test như thế nào, vì nó ko có expected rõ ràng, bạn có thể share kinh nghiệm bạn gặp không