Skip to content

流量控制

此页面由 docs/rules/timing-throttle.md 自动同步生成。

本章介绍模拟网络延迟和带宽限制的规则。


在发送请求之前添加延迟。

pattern reqDelay://milliseconds
参数说明
milliseconds延迟时间,单位毫秒
Terminal window
# 延迟 1 秒
www.example.com reqDelay://1000
# 延迟 500 毫秒
www.example.com/api reqDelay://500
# 延迟 3 秒
www.example.com/slow reqDelay://3000
Terminal window
# 模拟慢速网络
www.example.com reqDelay://2000
# 测试超时处理
www.example.com/api reqDelay://10000
# 测试加载状态
www.example.com/data reqDelay://1500
测试场景规则预期
1 秒延迟test.com reqDelay://1000请求发送延迟 ~1000ms
500ms 延迟test.com reqDelay://500请求发送延迟 ~500ms

在返回响应之前添加延迟。

pattern resDelay://milliseconds
Terminal window
# 响应延迟 1 秒
www.example.com resDelay://1000
# 响应延迟 2 秒
www.example.com/api resDelay://2000
Terminal window
# 模拟服务器处理延迟
www.example.com/api resDelay://500
# 测试前端 loading 状态
www.example.com/data resDelay://2000
# 测试超时重试
www.example.com/slow resDelay://5000
测试场景规则预期
1 秒延迟test.com resDelay://1000响应返回延迟 ~1000ms
2 秒延迟test.com resDelay://2000响应返回延迟 ~2000ms

限制请求发送速度(模拟上传带宽限制)。

pattern reqSpeed://kb_per_second
参数说明
kb_per_second每秒传输千字节数
Terminal window
# 限制上传速度为 10 KB/s
www.example.com reqSpeed://10
# 限制上传速度为 100 KB/s
www.example.com reqSpeed://100
# 极慢上传(1 KB/s)
www.example.com reqSpeed://1
Terminal window
# 测试大文件上传
www.example.com/upload reqSpeed://50
# 模拟 2G 网络上传
www.example.com reqSpeed://5
# 模拟 3G 网络上传
www.example.com reqSpeed://30
测试场景规则预期
10 KB/stest.com reqSpeed://10上传速度限制在 ~10 KB/s

限制响应接收速度(模拟下载带宽限制)。

pattern resSpeed://kb_per_second
Terminal window
# 限制下载速度为 10 KB/s
www.example.com resSpeed://10
# 限制下载速度为 100 KB/s
www.example.com resSpeed://100
# 极慢下载(1 KB/s)
www.example.com resSpeed://1
Terminal window
# 测试大文件下载
www.example.com/download resSpeed://50
# 模拟 2G 网络
www.example.com resSpeed://5
# 模拟 3G 网络
www.example.com resSpeed://30
# 测试流式加载
www.example.com/stream resSpeed://20
网络类型速度设置说明
2G (GPRS)5-10 KB/s极慢网络
2G (EDGE)20-30 KB/s慢速网络
3G100-300 KB/s中速网络
4G1000-5000 KB/s快速网络
WiFi5000-10000 KB/s高速网络
测试场景规则预期
10 KB/stest.com resSpeed://10下载速度限制在 ~10 KB/s
100 KB/stest.com resSpeed://100下载速度限制在 ~100 KB/s

延迟和限速规则可以组合使用:

Terminal window
# 请求延迟 + 响应延迟
www.example.com reqDelay://500 resDelay://1000
# 延迟 + 限速
www.example.com resDelay://500 resSpeed://10
# 完整慢速网络模拟
www.example.com reqDelay://200 resDelay://500 reqSpeed://10 resSpeed://20
# 配合路由规则
www.example.com host://backend.local resDelay://1000
# 配合过滤器
www.example.com resDelay://2000 includeFilter://m:POST

Terminal window
www.example.com reqDelay://500 resDelay://1000 reqSpeed://5 resSpeed://10
Terminal window
www.example.com reqDelay://100 resDelay://200 reqSpeed://50 resSpeed://100
Terminal window
www.example.com reqDelay://50 resDelay://50 reqSpeed://500 resSpeed://1000
Terminal window
www.example.com reqDelay://1000 resDelay://1000

  1. 延迟单位reqDelay/resDelay 的单位是毫秒
  2. 速度单位reqSpeed/resSpeed 的单位是 KB/s
  3. 组合效果:延迟和限速可以叠加使用
  4. 测试建议:测试超时时,确保测试超时时间大于设置的延迟时间
  5. 性能影响:极低的速度设置可能导致长时间等待