agentleFS
ncklrsncklrs/claude-chrome-user-testing/skills/network-throttling/SKILL.md

network-throttling

Skill20 starsChanged 10 months agoMITView on GitHub

Simulate slow or offline network conditions during user testing. Tests how well sites handle poor connectivity. Simulates a poor mobile connection: Use for: Testing patience thresholds, loading indicators, progressive loading Simulates a decent mobile connection: Use for: Typical mobile user experience, image loading, API response times Simulates no network access: Use for: Service worker testing, offline fallbacks, cached content Network throttling uses Chrome DevTools Protocol: When throttling is active, automatically adjust persona timing: When network throttling is used, include in…

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When throttling is active, automatically adjust persona timing:

    line 81
  2. Distinctive:

    When network throttling is used, include in report:

    line 121
  3. Distinctive:

    Match persona expectations: Don't use slow-3g with impatient personas unless testing abandonment

    line 169

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Network Throttling Skill

Simulate slow or offline network conditions during user testing. Tests how well sites handle poor connectivity.

When to Use

  • Testing loading states and spinners
  • Validating offline/PWA functionality
  • Simulating real-world mobile conditions
  • Testing error handling for slow requests
  • Pairing with bad-connection-user persona

Network Presets

slow-3g

Simulates a poor mobile connection:

MetricValue
Download400 Kbps
Upload400 Kbps
Latency400ms

Use for: Testing patience thresholds, loading indicators, progressive loading

fast-3g

Simulates a decent mobile connection:

MetricValue
Download1.6 Mbps
Upload750 Kbps
Latency100ms

Use for: Typical mobile user experience, image loading, API response times

offline

Simulates no network access:

MetricValue
Download0
Upload0
StatusOffline

Use for: Service worker testing, offline fallbacks, cached content

Implementation via CDP

Network throttling uses Chrome DevTools Protocol:

async (page) => {
  const client = await page.context().newCDPSession(page);

  await client.send('Network.emulateNetworkConditions', {
    offline: false,
    downloadThroughput: 50000,   // bytes/sec (400 Kbps)
    uploadThroughput: 50000,
    latency: 400                 // ms
  });

  return 'Network throttling applied';
}

Throughput Conversion

SpeedBytes/sec
400 Kbps50,000
750 Kbps93,750
1.6 Mbps200,000
10 Mbps1,250,000

Persona Patience Adjustment

When throttling is active, automatically adjust persona timing:

NetworkPatience Multiplier
normal1x
fast-3g1.5x
slow-3g3x
offlineN/A (expect failures)

Testing Patterns

Loading States

1. Apply slow-3g throttling
2. Navigate to page
3. Observe: Does spinner appear? How long until content?
4. Narrate: "This is taking a while... at least there's a loading indicator."

Offline Mode

1. Apply offline throttling
2. Try to navigate
3. Observe: Does site handle gracefully? Cached content?
4. Narrate: "Nothing's loading. Let me check if there's an offline mode..."

Progressive Loading

1. Apply fast-3g throttling
2. Navigate to image-heavy page
3. Observe: Do images load progressively? Placeholders?
4. Narrate: "The text loaded first, images are still coming in..."

Report Section

When network throttling is used, include in report:

## Session Overview
- **Network**: slow-3g (400 Kbps, 400ms latency)

## Network Experience

### Loading Performance
- Page load time: ~8 seconds
- First meaningful paint: ~3 seconds
- Loading indicator: Yes/No

### Issues Under Throttling
- [List issues exacerbated by slow network]

### Positive Behaviors
- [What the site did well under poor conditions]

Combination Testing

Mobile + Slow Network

Most realistic mobile testing:

/user-test --url https://example.com --persona genz-digital-native --viewport mobile --network slow-3g

Tests: Real-world mobile conditions where users are impatient AND on poor connections.

Bad Connection Persona + Throttling

Full experience simulation:

/user-test --url https://example.com --persona bad-connection-user --network slow-3g

The bad-connection-user persona already has higher patience for slow loads. Adding actual throttling makes the simulation realistic.

Best Practices

  1. Start with fast-3g: Most common real-world scenario
  2. Use slow-3g for stress testing: Catches edge cases
  3. Test offline intentionally: PWA and service worker validation
  4. Combine with mobile viewport: Most realistic testing
  5. Match persona expectations: Don't use slow-3g with impatient personas unless testing abandonment
  6. Note loading indicators: Key UX element under slow conditions

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.