Charles Tool – Web Debugging Proxy

Simulate data using Charles:

Charles is a network debugging the application. Charles which used to identify what are all the request send to the server from the local machine and what are all the response is getting from the server.

Which used to identify the network related issues.

Which used to record the request and response.

It’s not an open source tool and we have to paid and get the full version.

It’s very easy to debug comparing with using Wireshark to debugging the application.

Main features of Charles:

  1. Recording
  2. Breakpoints
  3. Throttling
  4. Repeat and Advanced Repeat
  5. Blacklist and whitelist
  6. External proxy
  7. Debugging from device
  8. Debugging HTTPS traffic

Recording:

All the request that is running from the machine where Charles is installed will pass through Charles. If the recording is on, it records all the request going from your browser or simulator and records all the response received for the request.

Recording depends on the Charles configuration. By default, the local machine is configured. Hence it records all HTTP and HTTPS traffic from the local machine.

I’ve attached the screenshot of recording and capture the request is sending from the server and the response is getting from the server.

In the below screenshot, we can find out where is the image is downloaded from the server,

In the above screenshot, we can see the downloaded image from the server.

 

In the above screenshot, we can see all the request send to the server. (Under structure tab)

 

 

In the above screenshot, we can see the sequence tab. What are all the request is sent to the server?

In the above screenshot, we can see the response which we got from the server

In the above screenshot, we can see the requested URL and timing of the request and response. We can see all the information like SSL, method, connection, remote address, request address, response address, Size and other information.

 

Breakpoints:

Breakpoints allow intercepting the request & response passing through Charles. It helps to edit the request & response passed. The user can also decide whether to execute the request or block (Abort) it.

Right click on the endpoint and enable breakpoint to intercept request.

In the above screenshot, you can see the breakpoint settings.

In the above screenshot, we can see the ‘Breakpoint’ option.

Throttling:

Throttling helps to simulate slow internet connections through Charles.

Start & stop throttling through Proxy -> Start throttling / Stop Throttling.

In the above screenshot, you can see how to turn on and off the throttling.

We can change the internet speed in the throttle settings. We can analyze the performance of the web application in the high and low speed of the internet.

Throttle Speed – We can change the speed from 56 kbps, 256 Kbps, 512 kbps, 1 mbps, 2 mbps ADSL, 8 mbps ADSL, 16 mbps ADSL 2, 32 MBPS ADSL 2, 32 MBPS fiber, 100 Mbps fiber, 3G network, 4G network.

In the above screenshot, we can see the options of Throttle speed. The tester has to tap the dropdown and change the net speed based on their need.

Repeat and Advance Repeat:

With the help of Charles, you can resend the request to the server as a new request. This is very useful when you are testing some back end changes especially when the effect of recreating the request in client consumes a lot of effort.

As the request is resent from Charles, response won’t be reflected in your client. The response will be visible only in Charles.

The Repeat Advanced tool is the extension of Repeat tool which resends the request for the specified number of iterations. This is mostly used in load testing.

Right click on the endpoint and select Repeat / Advanced Repeat to resend the request.

In the above screenshot, we can set the iteration and concurrency.

 

Blacklist and whitelist:

Blacklist tool helps to block particular endpoints. When the client request for the endpoints which is blacklisted, that particular request is blocked.

Tools -> Black List to modify Black List settings. It also accepts wildcard domain names to block all subdomains which match the wild-carded domain name.

Blacklisting is helpful when you are testing a site that loads resources, such as images, from another server. Blocking all these requests to another server helps to identify the size and speed of the site without those request.

Leave a comment