Cách sử dụng charles proxy

Đối với việc kiểm thử ứng dụng hay app, khi muốn check việc gọi API xem ứng dụng đó gọi API nào hay API nào được gọi trước hoặc là muốn kiểm tra dữ liệu truyền đi/ trả về có đúng với mong đợi không? Thường những việc như vậy chúng cần phải nhờ dev debug để check log, việc này rất mất thời gian, đôi khi không đảm bảo chính xác được kết quả mà lại còn ảnh hưởng đến công việc của de .

Vì vậy, trong bài viết này Bizfly Cloud sẽ gợi ý cho Tester một công cụ có thể giúp ích cho những công việc trên. Đó chính là sử dụng Charles tool.

1. Giới thiệu Charles Tool

Ứng dụng công cụ Charles vào kiểm thử

Định nghĩa

Charles là: Một web proxy chạy trên máy tính của bạn, hữu ích cho việc debug hoặc test với các app/ ứng dụng mô hình client - server. Cho phép theo dõi tất cả đường truyền HTTP traffic giữa browser/ mobile app tới Internet, bao gồm các requests, responses và HTTP Headers [chứa cả cookies và các thông tin caching], đặc biệt là khả năng theo dõi các kết nối HTTPS đã được mã hóa.

Nói một cách dễ hiểu hơn là chúng ta có thể chỉnh sửa để web browser hoặc device bên ngoài truy cập vào internet thông qua máy tính của bạn. charles có thể theo dõi và hiển thị dữ liệu gửi đi và nhận về các request.

Một số chức năng chính của Charles

Một số chức năng chính của Charles tool:

- SSL Proxying – xem SSL requests and responses 

- Bandwidth Throttling – dùng để test với những đường truyền khác nhau [giới hạn tốc độ đường truyền] 

- AJAX debugging – xem XML and JSON requests and responses theo dạng cây thư mục hoặc dạng text 

- Repeat requests to test thay đổi back-end 

- Edit requests – để test nhiều inputs 

- Breakpoints để chỉnh sửa requests và responses

Ở phần sau sẽ chỉ đề cập đến những chức năng QA hay dùng và hướng dẫn lấy log với Charles.

1. Hướng dẫn cài đặt Charles Tool

Dowload charles tại trang chủ: //www.charlesproxy.com/download/. 

Sau khi dowload xong tiến hành cài đặt tương tự như các tool khác. 

Lưu ý là charles mất phí nhưng vẫn có thể dùng thử 1 tháng, đủ để sử dụng trong quá trình phát triển dự án. 

Sau khi cài đặt xong sẽ thấy giao diện của Charles như sau:

Tiếp theo, chúng ta cần setup cho thiết bị hoặc device. Ở đây, mình sẽ setup cho Iphone 6S Plus.

Kiểm tra ip máy tính bằng cách vào command line gõ ipconfig Sau đó vào device iphone, đi tới màn hình setting/wifi, tap vào wifi đang kết nối chọn http proxy/manual, nhập chỉ ip máy tính của bạn, port default là 8888.

Cài đặt SSL Certificate: để Charles có thể theo dõi được các kết nối HTTPS, client cần phải cài đặt và trust CA Certificate từ Charles.

Đối với iOS, mở trình duyệt Safari [hoặc Android Browser, Chrome đối với Android, lưu ý không dùng Firefox, tôi sẽ giải thích lí do bên dưới], truy cập vào địa chỉ //charlesproxy.com/getssl - lúc này hệ thống sẽ hỏi bạn có muốn cài đặt CA Certificate vào máy không, chọn có và cài đặt.

Note:

Đối với iOS 10.3 trở lên, bạn cần vào Settings > General > About > Certificate Trust Settings và enable certificate vừa cài đặt thì mới có hiệu lực.

Khi setting cho thiết bị xong, bên phía charles sẽ nhận được thông báo có thiết bị muốn truy cập qua máy bạn, hãy click allow.

2. Sử dụng Charles Tool

- Get log

Sau khi allow, thiết bị sẽ truy cập vào internet thông qua proxy mà máy tính của bạn. Khi tiến hành gửi request mạng trên device là Charles sẽ có đầy đủ thông tin kết nối.

Ví dụ khi vào một trang bất kì sẽ thấy charles bắt được request. Xem ảnh dưới đây:

Sau khi có thông tin của request, có thể get log bằng cách chọn File > Save sesion as > Chọn lưu file dưới format .chls. File này dùng để check thông tin log so với spec của dự án và cũng có thể dùng làm envidence khi có bug.

- Break point để chỉnh sửa request hoặc response

Chọn Proxy/Breakpoint Settings và break thử với link //viblo.asia/series

Khi chạy trên device tới trang nay, sẽ xuất hiện thông báo có thực thi tiếp hay cancel không?

Ở bước này , charles breaking request gói tin đó, bạn có thể chỉnh sửa header, body,... tuỳ ý, sau đó ấn execute để thực hiện tiếp.

Tiếp tục sẽ breakpoint response, tại đây bạn có thể chỉnh sửa format json trả về trước khi execute.

Như vậy mình có thể check được những case theo mong muốn.

Ví dụ như cần check một case thông tin call API sau khi xem video xong xem nó gọi API nào trước trong trường hợp: đang xem video -> Tắt mạng -> Tiếp tục xem video cho đến khi xong -> Bật mạng.

Khi mà thực hiện bằng tay , mình không thể căn đúng lúc gọi API để ngắt mạng đúng lúc được. Như vậy, trong trường hợp này Charles rất giúp ích cho QA trong việc kiểm thử.

- Bandwidth throttling - Giới hạn tốc độ đường truyền

Sẽ có những dự án yêu cầu test với các tốc độ mạng khác nhau để đảm bảo ứng dụng có thể chạy hoặc download app trong các điều kiện mạng nhất định. Khi đó chúng ta sẽ dùng chức năng Bandwidth throttling của Charles để thiết lập băng thông thích hợp để test.

Chọn Proxy > Throttling Settings...> Bạn chọn Enable Throttling và lựa chọn gói mạng phù hợp để kiểm tra

Trên đây là một số chức năng chính hữu dụng cho việc kiểm thử, mong là bài viết có thể giúp ích phần nào cho công việc của mọi người.

Tài liệu tham khảo trang chủ của Charles: 

//www.charlesproxy.com/

Link bài gốc: viblo.asia/p/charles-ung-dung-cong-cu-charles-vao-kiem-thu-Qbq5Q1A45D8

>> Có thể bạn quan tâm: Pentest theo tiêu chuẩn OWASP

Theo viblo.asia

Nếu bạn là một Mobile Developer thì việc chúng ta thao tác với API quá là quen thuộc rồi đúng không? Có nhiều trường hợp các bạn muốn tham khảo API của ứng dụng nào đó trên store, xem cách thức hoạt động của ứng dụng đó như thế nào? Trong video này mình sẽ hướng dẫn các bạn cách mà mình tham khảo API của ứng dụng khác với Charles Proxy, với cách này thì bạn có thể xem được cấu trúc dữ liệu gửi đi và trả về bao gồm những gì. 

Mục đích video này sẽ giúp các bạn làm quen với một tool rất chi là... bá đạo, có thể cân từ debugging đến testing. Ví dụ các bạn đang xây dựng một ứng dụng và muốn test các hiển thị lên UI của nhiều data set khác nhau như thế nào, ngay cả khi chưa implement API, bạn có thể dùng nó. Tool còn có thể giúp các bạn debugging cách mà bạn đã call API đúng chưa, kiểm tra các phương thức đang gọi GET/POST/…, header ra sao, parameter như nào,… Ngoài ra thì nó còn cho phép các bạn test những trường hợp download mang chậm nữa. 

Vâng, tool thần thánh được nhắc từ đầu bài viết đến trong video chính là Charles Proxy – Web Debugging Proxy Application. Cách dùng như thế nào thì mời các bạn xem video bên dưới. 

Lưu ý: Nội dung video chỉ mang tính chất tham khảo & học hỏi. App trong video mình cũng sử dụng để minh họa thôi nha!

Rất mong nhận được những phản hồi của mọi người để mình cải thiện chất lượng nội dung mỗi video. 

Còn bây giờ? Bất đầu thôi! 

Video liên quan

Chủ Đề