Debugging tools
Network Conditions
Slow matching requests down with added latency, limited upload and download speed, and packet loss. Every preset from 100% Loss to Wi-Fi, with exact values.
Network Conditions makes matching requests behave as if they went over a slower or less reliable network. You can add latency, limit upload and download speed, and drop a share of requests. Use it to see loading states, timeouts and retry logic on a fast office connection, for one API or the whole Mac.
Slow down an API
Section titled “Slow down an API”-
Right-click a request from the host you want to slow down and choose Tools › Network Conditions….
Cloak Proxy creates a rule named after the host that matches every request to it, picks the 3G profile, turns Network Conditions on and opens the rule. To start from scratch, choose Tools › Edit Network Conditions Rules… (⌥ ⌘ T) and click +.
-
Pick a profile from the menu under Profile, or type your own values.
-
Use your app. Slowed requests show a
Network Conditionsbadge in the traffic list, and their duration includes the added delay.
To slow down everything Cloak Proxy handles, use a matcher such as * in Wildcard mode.
A Network Conditions rule using the 3G preset.
- Pick a preset profile.
- Added latency in milliseconds.
- Download and upload speed in kbps. 0 means unlimited.
- Share of requests to drop.
Profiles
Section titled “Profiles”Choosing a preset fills in all four values. Network Conditions is off by default, and new rules start with 3G.
| Preset | Latency | Download | Upload | Packet loss |
|---|---|---|---|---|
| 100% Loss | 0 ms | Unlimited (0) | Unlimited (0) | 100% |
| Very Bad Network | 500 ms | 1,000 kbps | 1,000 kbps | 10% |
| Edge | 400 ms | 240 kbps | 200 kbps | 0% |
| 3G | 300 ms | 780 kbps | 330 kbps | 0% |
| DSL | 50 ms | 2,000 kbps | 256 kbps | 0% |
| LTE | 50 ms | 50,000 kbps | 10,000 kbps | 0% |
| Wi-Fi | 2 ms | 40,000 kbps | 33,000 kbps | 0% |
When you change a value so the profile no longer matches a preset, its name becomes Custom.
Fields
Section titled “Fields”| Field | Unit | What it does |
|---|---|---|
| Latency | ms | Added round-trip time. Half is added before the request is sent and half before the response reaches the app. |
| Download | kbps (0 = unlimited) | Speed for response bodies, in kilobits per second (1 kbps = 1,000 bits per second). |
| Upload | kbps (0 = unlimited) | Speed for request bodies. |
| Packet loss | % of requests dropped | The chance, from 0 to 100, that a request fails as if the network dropped it. |
How the delay is calculated
Section titled “How the delay is calculated”For each matching request:
- Before sending: half the latency, plus the request body size divided by the upload speed.
- Before delivering the response: half the latency, plus the response body size divided by the download speed.
A speed of 0 adds no transfer time. Cloak Proxy holds the whole response for the computed time, then sends it to the app in one go; it doesn’t trickle the bytes.
For example, with 3G a GET with no body and a 100 KB response is delayed by:
| Part | Calculation | Delay |
|---|---|---|
| Upload | 300 ms ÷ 2, no body | 150 ms |
| Download | 300 ms ÷ 2 + (100,000 bytes × 8) ÷ 780,000 bits per second | 150 ms + 1,026 ms |
| Total added | about 1.33 s, plus the server’s own time |
Packet loss
Section titled “Packet loss”Each matching request has the Packet loss percentage as its chance of being dropped. A dropped request waits for the profile’s full latency, then Cloak Proxy closes the app’s connection without a response. The traffic list shows it as failed with Dropped by Network Conditions (<profile name>).
With 100% Loss, every matching request fails. Use it to test an app’s offline mode for one API while the rest of the Mac stays online.
How Network Conditions works with other tools
Section titled “How Network Conditions works with other tools”- Only the first matching rule applies to a request.
- The packet-loss check runs right after the Block List and before scripts and breakpoints, so a dropped request never reaches them.
- Responses from Map Local and Mock Sets skip the upload delay but still get the download delay, so mocked data loads at the simulated speed.
- Time you spend paused at a breakpoint is separate from, and added to, the simulated delay.