+1

Charles Rewrite: Đơn giản hóa quá trình chỉnh sửa và thay đổi yêu cầu HTTP

1. Giới thiệu Rewrite

Charles là một trình gỡ lỗi HTTP proxy và ghi lại lưu lượng mạng. Nó cho phép bạn xem, gỡ lỗi và thay đổi các yêu cầu và phản hồi HTTP giữa máy tính và máy chủ web. Với tính năng Rewrite, Charles cung cấp một cách tiện lợi để chỉnh sửa yêu cầu HTTP mà không cần thay đổi mã nguồn gốc.

Vậy Rewrite là gì và tại sao nó hữu ích? Đơn giản, Rewrite cho phép bạn thay đổi nội dung của yêu cầu HTTP mà không ảnh hưởng đến mã nguồn hoặc cấu trúc của ứng dụng web. Điều này rất hữu ích khi bạn muốn thử nghiệm các kịch bản khác nhau, sửa lỗi hoặc điều chỉnh yêu cầu để đảm bảo tính ổn định và chính xác của ứng dụng.

Với Rewrite của Charles, bạn có thể thực hiện nhiều tác vụ, bao gồm:

  • Thay đổi phương thức HTTP: Bạn có thể thay đổi phương thức của yêu cầu từ GET sang POST hoặc ngược lại, mở rộng khả năng kiểm thử và sửa lỗi trong ứng dụng web.
  • Sửa đổi tham số và giá trị: Bạn có thể thay đổi các tham số và giá trị trong yêu cầu, giúp bạn kiểm tra ứng dụng với các kịch bản và giá trị khác nhau.
  • Thay đổi Header: Rewrite cho phép bạn thêm, sửa đổi hoặc xóa các Header trong yêu cầu và phản hồi, giúp bạn điều chỉnh các yêu cầu và phản hồi mạng theo ý muốn.
  • Chặn và chuyển hướng yêu cầu: Bạn có thể chặn hoặc chuyển hướng yêu cầu HTTP để kiểm tra và phân tích tác động của chúng đến ứng dụng.
  • Quan trọng nhất, Rewrite của Charles giúp bạn tiết kiệm thời gian và nỗ lực trong quá trình chỉnh sửa và thay đổi yêu cầu HTTP. Bạn không cần phải thay đổi mã nguồn hay triển khai lại ứng dụng. Thay vào đó, chỉ cần sử dụng Charles và Rewrite, bạn có thể thực hiện các thay đổi một cách nhanh chóng và dễ dàng.

Với tính năng Rewrite của Charles, bạn sẽ có sự linh hoạt và quyền kiểm soát đáng kể trong việc chỉnh sửa yêu cầu HTTP. Điều này giúp bạn nhanh chóng tìm ra và sửa lỗi, thử nghiệm các tình huống khác nhau và tăng cường tính tin cậycủa ứng dụng web của bạn.

2. Cách sử dụng

Để sử dụng Tool Rewrite bạn cần chọn Tools -> Rewrite...

Screenshot 2024-06-17 at 14.52.40.png

Sau đó bật Enable Rewrite

Screenshot 2024-06-17 at 14.54.23.png

Hãy xem thử cách sử dụng qua các ví dụ dưới đây nhé.

2.1. Thay đổi tham số gửi lên

Trên điện thoại bạn bật Safari và load link sau: https://gorest.co.in/public/v2/users?gender=male Link này sẽ trả về danh sách User có giới tính là "male". Đây sẽ là kết quả thu được trên Charles: Screenshot 2024-06-17 at 15.42.22.png

Giờ hãy thử dùng Charles sửa tham số male thành female nhé.

Bước 1: Vào Rewrite Settings, chọn thêm mới, rồi điền tên cho rule vừa tạo

Screenshot 2024-06-17 at 15.45.08.png

Bước 2: Thêm điều kiện chỉ định API cần Rewrite Screenshot 2024-06-17 at 15.47.09.png

Screenshot 2024-06-17 at 15.48.30.png

Ở đây bạn cần phải chỉ định chính xác API mà mình muốn sửa.

Trong ví dụ này thì cần điền

Bước 3: Chỉ định thông tin cần thay đổi

Chọn Add ở mục bên dưới Screenshot 2024-06-17 at 15.51.30.png

Sau đó điền thông tin cần chỉnh sửa: Screenshot 2024-06-17 at 15.53.15.png

Trong ví dụ này ta cần sửa Param nên sẽ chọn

  • Type: Modify Query Param
  • Match: Điền Name là gender
  • Replace: Điền value là female

Sau khi điền xong bạn sẽ được kết quả như hình sau: Screenshot 2024-06-17 at 15.55.33.png

Done, hay quay lại điện thoại và reload lại link https://gorest.co.in/public/v2/users?gender=male và cùng xem kết quả: Screenshot 2024-06-17 at 15.56.50.png

Như bạn thấy ở trên, dù điện thoại vẫn gửi gender=male nhưng request thực sự gửi lên server đã được thay bằng gender=female. Bạn có thể thấy kết quả hiển thị trên màn hình điện thoại cũng đã thay đổi theo.

2.2. Thay đổi kết quả trả về

Ở đây chúng ta có thể tận dụng chính Rule ở trên nhé. Ở bước chỉ định thông tin cần thay đổi thay vì sửa param chúng ta sẽ đi sửa response: Screenshot 2024-06-17 at 16.06.06.png

Chúng ta thử sửa như sau:

  • Type: Body
  • Where: chọn Response
  • Replace: value điền NOT FOUND (phá app 1 tý ✌️)

Sau đó chọn OK để lưu và cho điện thoại reload lại cùng xem kết quả nào:

Screenshot 2024-06-17 at 16.07.49.png

BÙM, cái json lúc nãy đã biến mất, giờ nó thay bằng 1 chữ NOT FOUND

Vậy là bạn đã có thể chỉnh sửa thông tin của API rồi đó. Ngoài 2 ví dụ trên bạn hoàn toàn có thể tự vọc thay đổi các thông tin khác của API nhé.

2.3. Export / Import Rewrite settings

Có thể nhiều bạn sẽ thấy việc setup như trên rất là cực khổ và dễ sai lầm. Để giảm hỗ trợ điều đó Charles cho phép bạn Export / Import setting đề có thể chuyển cài đặt sang máy khác được. Hãy tận dụng nó.

Screenshot 2024-06-17 at 16.11.33.png

Kết luận

Hãy thử sử dụng công cụ Rewrite của Charles ngay hôm nay và trải nghiệm sự tiện lợi và hiệu quả của nó trong quá trình phát triển và gỡ lỗi ứng dụng cũng như trong kiểm thử API Testing của bạn


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.