Simulates slow-3g, fast-3g, and offline network conditions via CDP to test web apps' loading states, PWAs, and poor connectivity handling.
From user-testing-agentnpx claudepluginhub ncklrs/claude-chrome-user-testing --plugin user-testing-agentThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Simulate slow or offline network conditions during user testing. Tests how well sites handle poor connectivity.
bad-connection-user personaSimulates a poor mobile connection:
| Metric | Value |
|---|---|
| Download | 400 Kbps |
| Upload | 400 Kbps |
| Latency | 400ms |
Use for: Testing patience thresholds, loading indicators, progressive loading
Simulates a decent mobile connection:
| Metric | Value |
|---|---|
| Download | 1.6 Mbps |
| Upload | 750 Kbps |
| Latency | 100ms |
Use for: Typical mobile user experience, image loading, API response times
Simulates no network access:
| Metric | Value |
|---|---|
| Download | 0 |
| Upload | 0 |
| Status | Offline |
Use for: Service worker testing, offline fallbacks, cached content
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';
}
| Speed | Bytes/sec |
|---|---|
| 400 Kbps | 50,000 |
| 750 Kbps | 93,750 |
| 1.6 Mbps | 200,000 |
| 10 Mbps | 1,250,000 |
When throttling is active, automatically adjust persona timing:
| Network | Patience Multiplier |
|---|---|
| normal | 1x |
| fast-3g | 1.5x |
| slow-3g | 3x |
| offline | N/A (expect failures) |
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."
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..."
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..."
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]
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.
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.