KIỂM THỬ API VỚI CHARLES – Một số vấn đề cần lưu ý khi làm việc với charles

Trong quá trình làm việc với charles, mình có gặp một số vấn đề khiến quá trình làm việc bị gián đoạn khá nhiều. Công cụ này cũng đòi hỏi khá nhiều những lưu ý, sai 1 setting nào đó là không thể kết nối được với device để kiểm thử. 1. Certification đã hết

Trong quá trình làm việc với charles, mình có gặp một số vấn đề khiến quá trình làm việc bị gián đoạn khá nhiều. Công cụ này cũng đòi hỏi khá nhiều những lưu ý, sai 1 setting nào đó là không thể kết nối được với device để kiểm thử.

1. Certification đã hết hạn

Bước sau cùng khi cài đặt Charles là download và cài đặt certificate
Tuy nhiên, sau 1 thời gian chứng chỉ đó sẽ hết hạn, và bạn phải download lại thôi. Còn tại sao certificate hết hạn thì mình cũng không rõ, hiểu đơn giản như nó chỉ có hiệu lực trong 1 thời gian, muốn dùng tiếp thì phải update thôi :v
Để kiểm tra certificate còn hạn hay không bạn check theo cách
Helf > SSL Proxy Setting > Install Charles Root Certificate

Nếu đã hết hạn thì bạn mở browser trên device link sau: https://chls.pro/ssl và nó sẽ tự động tải certificate cho bạn.

  • Android: mở trên Chrome
  • iOS: mở trên safari

Các bước cài đặt chứng chỉ bạn có thể tham khảo bài viết trước của mình nhé
KIỂM THỬ API VỚI CHARLES – Hướng dẫn cài đặt chi tiết

2. Kết nối chưa chính xác địa chỉ IP

Trong thời gian làm remote, do kết nối mạng wifi ở nhà nên địa chỉ IP có thể bị thay đổi hàng ngày, hôm nay IP này, ngày mai IP khác,
nên trước khi kết nối, bạn hãy kiểm tra lại địa chỉ IP trên máy tính cho chắc chắn nhé.

3. Điện thoại và máy tính chưa kết nối cùng 1 mạng wifi

Tôi sẽ kể cho bạn 1 câu chuyện ngu si của mình.
Ngày hôm trước do mạng wifi ở nhà chậm quá nên tôi đã kết nối device tới 4G của điện thoại cá nhân, còn laptop thì vẫn dùng wifi.
Đến hôm sau, tôi bật Charles lên, kết nối IP các thứ các thứ, nhưng không kết nối được, không bắt được gói tin.
WHY?
Loay hoay tắt Charles đi bật lại vài lần, kiểm tra tới lui, vô tình vuốt status bar xuống thì phát hiện : Wifi đang kết nối là HanSora
Thì ra là: Điện thoại thì kết nối với 4G, còn máy tính thì kết nối với wifi.
Bây giờ thì kết nối cả 2 với wifi là ngon rồi.
Hoặc bạn cũng có thể phát wifi từ máy tính, rồi kết nối điện thoại tới mạng wifi được phát ra đó cũng được.

4. Firewall chưa được turn off hoàn toàn

Sau khi tôi đã đảm bảo kết nối device và máy tính với 1 wifi, IP và Port đã nhập đúng không sai con số nào, vậy mà cứ ngày thì được , ngày thì không. Nó giống như là dùng app mà phải nhờ đến tâm linh vậy đó.
WHY?
Sau khi thử 7 7 49 cách không được, thì tôi có nhờ 1 đồng nghiệp support. Tôi phải Turn Off toàn bộ Firewall trên máy tính.
Và từ đó đến giờ, việc kết nối với Charles đã ổn định hẳn, tôi có thể làm việc với nó bất kỳ lúc nào mà không cần phải nhờ đến tâm linh.

5. Không thể payment trên app khi kết nối charles

Hàng ngày tôi vẫn kết nối Charles để test 1 số chức năng, đến chi có task mới liên quan đến payment thì điện thoại lại không thể nào tiếp tục thanh toán được. Tưởng charles bị lỗi, tuy nhiên chạy thử các chức năng cũ thì vẫn bắt được Charles.
WHY?
Thông thường, địa chỉ Proxy setting sẽ sử dụng Location ở dạng * hoặc * 443.

Tuy nhiên Charles không cho phép thực hiện thanh toán qua Host mặc định mà cần setting địa chỉ Host đúng với địa chỉ mà app đang chạy. Việc này bạn có thể nhờ dev support để add và sử dụng đúng Host để thực hiện bắt gói tin khi thanh toán.

6. Tại sao breakpoint chạy không được vậy

Tôi đang breakpiont, không hiểu sao tôi lại tắt nó đi bằng cách close cái session đang chạy đó. Sau đó tôi cần breakpoint lại đúng cái api đó. Và khi chạy đến api đó, thì “bụp” , nó không thể breakpoint được. Mà response API thì cứ trả về Null.

Tôi đã phải tắt Charles đi và bật lại thì mới breakpoint được.
WHY?
Nguyên nhân là do tôi đã Close session đó khi nó chưa được Execute. Vậy nên breakpoint đó vẫn đang bị chặn. Để không bị xảy ra tình huống trên, để hủy bỏ 1 breakpoint đang chạy dở thì có thể click button Cancel , còn button About để kiểm tra lỗi hết Timeout của ứng dụng sẽ show như thế nào. Như vậy những lần breakpoint tiếp theo sẽ không bị gián đoạn nữa.

7. Path chạy sao mà nhiều thế

Charles là công cụ web proxy debuging nên việc nó bắt được các gói tin trên trình duyệt là đương nhiên. Điều này khiến cho số lượng đường dẫn mà Charles bắt được chạy rất nhiều trong quá trình làm việc với app.
Nếu không cần thiết, bạn có thể ngắt việc bắt gói tin từ browser bằng cách bỏ check Proxy > Windows Proxy
Như vậy Charles chỉ còn tập trung vào việc bắt các gói tin từ app mà thôi.

8. Thời gian chờ siêu ngắn

Vì đây là tool đa số mọi người sử dụng bản miễn phí, nên những bất tiện của nó là không thể tránh khỏi, điều bức xúc nhất đối với tôi đó là thời gian chờ bị giới hạn. Nếu bạn không thao tác với nó thường xuyên trong vòng 5 phút thì khi quay lại, sẽ mất khoảng 5 – 7s kết nối lại,
và mỗi lần bật Charles chỉ sử dụng được 30 phút, muốn sử dụng tiếp thì cần khởi động lại 😃

Trên đây là những vấn đề mình gặp phải trong quá trình sử dụng Charles, hy vọng sẽ giúp ích được các bạn xử lý được vấn đề tương tự khi sử dụng charles vào việc kiểm thử API.

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ