1. Giới thiệu về Breakpoints trong Charles Proxy
Breakpoints là một tính năng quan trọng trong công cụ Charles Proxy, cho phép người dùng tạm dừng yêu cầu và phản hồi của API. Điều này giúp chúng ta có thể kiểm tra và thay đổi dữ liệu trước khi nó tiếp tục được xử lý. Nhờ vậy, chúng ta có cái nhìn sâu sắc hơn về cách mà ứng dụng tương tác với API.
Breakpoints hoạt động như các điểm dừng trong quá trình giao tiếp giữa ứng dụng và API. Khi một breakpoint được thiết lập, Charles Proxy sẽ tạm dừng tại điểm đó, giúp chúng ta kiểm tra và sửa đổi thông tin trong yêu cầu hoặc phản hồi để phát hiện và gỡ lỗi khi có sự cố xảy ra.
Tóm tắt vai trò của Breakpoints:
- Kiểm tra yêu cầu và phản hồi: Breakpoints cho phép người dùng xem xét và so sánh thông tin trong yêu cầu và phản hồi, đảm bảo tính chính xác và đầy đủ của dữ liệu từ API.
- Gỡ lỗi: Khi xuất hiện lỗi trong quá trình giao tiếp với API, Breakpoints cho phép người dùng dừng lại để xem xét và thay đổi các chi tiết trong yêu cầu và phản hồi, từ đó xác định nguyên nhân và khắc phục vấn đề kịp thời.
2. Hướng dẫn sử dụng Breakpoints trong Charles Proxy
2.1. Cách thiết lập Breakpoints
Cách 1: Nhấp chuột phải vào API cần thiết lập Breakpoints và chọn "Breakpoints"
Cách này cho phép Charles Proxy thêm chính xác URL của API vào danh sách yêu cầu cần đặt Breakpoints. Điều này có nghĩa là cả host, path, và query của API cần phải trùng khớp.
Cách 2: Truy cập vào "Proxy" -> "Breakpoints Settings..." và chọn "Add"
Tại đây, bạn sẽ điền thông tin của API mà bạn muốn đặt Breakpoints, bao gồm:
- Scheme: Phương thức của API (GET, POST, v.v.).
- Host: Tên miền của API (ví dụ: gorest.co.in).
- Path: Đường dẫn đến API (ví dụ: public/v2/users).
- Checkbox Request và Response: Để xác định khi nào cần dừng, có thể chọn cả hai để breakpoints đều ở yêu cầu và phản hồi.
Sau khi hoàn tất các thông tin, hãy chọn "OK" để lưu lại cài đặt.
Chú ý: Mặc định, Charles Proxy sẽ bật Breakpoints cho cả Request và Response, tức là 1 API sẽ bị dừng 2 lần khi gửi yêu cầu và nhận phản hồi.
2.2. Xem và thay đổi dữ liệu
Sau khi đã thiết lập Breakpoints, người dùng có thể quay lại ứng dụng và thực hiện giao dịch gọi lại API. Ví dụ, mở trình duyệt Safari và nhập URL https://gorest.co.in/public/v2/users?gender=male.
Nếu việc thiết lập Breakpoints thành công, một hộp thoại sẽ xuất hiện.
Hộp thoại này cho biết API đã dừng tại REQUEST. Tại đây, bạn có các tùy chọn:
- Edit Request: Để xem và chỉnh sửa thông tin yêu cầu.
- Cancel: Để bỏ qua và cho API tiếp tục chạy mà không thay đổi gì.
- Abort: Để Charles trả về lỗi cho API này.
- Execute: Để tiếp tục xử lý API sau khi đã chỉnh sửa yêu cầu.
Thay đổi Request
Để thay đổi yêu cầu, chọn Edit Request. Tại đây, bạn có thể sửa đổi Header, body, hoặc các tham số khác của yêu cầu. Ví dụ, hãy thử đổi phương thức từ GET sang POST.
Sau khi thay đổi, hãy chọn Execute để cho API tiếp tục xử lý. Có thể có một hộp thoại breakpoints khác xuất hiện dành cho RESPONSE, nhưng bạn chỉ cần chọn Execute để tiếp tục.
Kết quả là server sẽ trả về lỗi 401 vì chỉ hỗ trợ phương thức GET.
Thay đổi Response
Hộp thoại Breakpoints cho RESPONSE cũng có các tùy chọn tương tự:
- Edit Response: Để xem và chỉnh sửa các thông tin trong phản hồi.
- Cancel: Bỏ qua và cho API tiếp tục.
- Abort: Để trả về lỗi cho API.
- Execute: Để tiếp tục xử lý API sau khi đã sửa đổi phản hồi.
Khi chọn Edit Response, bạn có thể thay đổi Headers, Text, JSON, và bất kỳ thành phần nào khác trong phản hồi. Sau khi thực hiện thay đổi, hãy chọn Execute để tiếp tục giao dịch. Kết quả sẽ cho thấy phản hồi mới thay vì phản hồi cũ từ server.
2.3. Gỡ bỏ Breakpoints
Khi không còn cần thiết đặt Breakpoints, người dùng nên gỡ bỏ chúng để tránh làm dừng đột ngột các yêu cầu API.
Để gỡ bỏ Breakpoints, bạn có thể thực hiện theo hai cách:
- Cách 1: Nhấp chuột phải vào API đã thiết lập Breakpoints và bỏ tích ở mục Breakpoints.
- Cách 2: Vào Proxy -> Breakpoint Setting và bỏ tích cho API cần gỡ bỏ hoặc chọn Remove.
Kết luận
Breakpoints trong Charles Proxy là công cụ đắc lực trong quá trình kiểm thử API. Chúng cho phép người dùng tạm dừng và thay đổi yêu cầu cũng như phản hồi, giúp phát hiện và khắc phục lỗi dễ dàng. Việc sử dụng Breakpoints một cách hiệu quả sẽ giúp nâng cao độ chính xác và độ tin cậy của ứng dụng và cải thiện chất lượng của API mà bạn đang kiểm thử.
source: viblo