Skip to content

Guides

Test on a slow network

Simulate 3G, high latency and packet loss for one host with Network Conditions, watch the effect in the timeline, and turn it off afterwards.

Your app feels fine on your office Wi-Fi, but you need to know how it behaves on a train. This guide slows one host (or everything) down to 3G, high latency, or intermittent packet loss with the Network Conditions tool, confirms the effect in the traffic list and timeline, and turns it off cleanly.

Cloak Proxy capturing the app you want to test See macOS traffic or Debug a mobile app
HTTPS decrypted for the host, if you want per-host throttling to match it See SSL Proxying — throttling matches by URL, which needs the request decrypted
  1. Capture a request to the host, right-click it, and choose Tools → Network Conditions…. The rule is created matching that host (wildcard, subpaths included) and the tool is turned on.

    You can also open Tools → Network Conditions (<kbd>⌥</kbd> <kbd>⌘</kbd> <kbd>T</kbd>) and add a rule by hand.

    A Network Conditions rule using the 3G preset.

    1. Tool on/off
    2. Matcher: the host to slow down
    3. Preset menu
    4. Latency, download, upload, packet loss
    The Network Conditions tool with a rule matching api.example.com and a 3G profile set to 300 ms latency, 780 kbps down, 330 kbps up
  2. Pick a preset from the Profile menu, or set the numbers by hand. Changing a value relabels the profile Custom.

    Preset Latency Download Upload Packet loss
    100% Loss 0 ms 0 0 100%
    Very Bad Network 500 ms 1000 kbps 1000 kbps 10%
    Edge 400 ms 240 kbps 200 kbps 0%
    3G 300 ms 780 kbps 330 kbps 0%
    DSL 50 ms 2000 kbps 256 kbps 0%
    LTE 50 ms 50000 kbps 10000 kbps 0%
    Wi-Fi 2 ms 40000 kbps 33000 kbps 0%

    Set Download or Upload to 0 for unlimited. Packet loss is the percentage of matching requests that fail as if the network dropped them.

To throttle all traffic rather than one host, set the rule’s matcher to *:

  1. In the rule’s matcher, set the URL to * and leave Include subpaths on.

  2. Choose a profile. Every request through the proxy is now shaped.

  1. Use the app and watch the Duration column in the traffic list climb. Throttled requests are tagged Network Conditions.

  2. With Packet loss above 0, some requests fail outright — they show as failed in the list, which is how the app would see a dropped connection.

  3. Open Insights (<kbd>⌥</kbd> <kbd>⌘</kbd> <kbd>I</kbd>) and the Timeline tab to see every request on one time axis, so you can spot the requests that now dominate the load time.

  4. The Performance tab flags Slow responses, which helps you find what suffers most under the condition.

    Performance findings. Slow requests rise to the top under a throttle.

    1. Filter by kind
    2. Slow requests, with the worst time
    The Insights Performance tab listing slow, error, burst, uncacheable, uncompressed and duplicate findings
  1. Turn off Network Conditions with the switch in the Tools window, or untick it in the Tools menu, so traffic runs at full speed again.

  2. Leave the rule in place to reuse it later, or select it and press the minus button to delete it.