美文网首页测试之路
弱网模拟tc/netem辅助工具pynetem

弱网模拟tc/netem辅助工具pynetem

作者: 我叫GTD | 来源:发表于2019-12-27 21:54 被阅读0次

https://github.com/GuoTengda1993/pynetem
因为tc/netem只在linux系统中存在,所以只能在Linux系统中安装:

pip install pynetem

使用

有两种模式:命令行模式、Web模式,两种模式下每次传入新规则都会将旧规则替换掉。

  • 命令行模式
    输入pynetem -h可以查看帮助信息,参数和tc/netem基本一致,只使用上有些许区别,点击此链接即可查看tc/netem的相关文档:netem
    使用示例:
# 该命令将 eth0 网卡的传输设置为 100ms ,同时,大约有 30% 的包会延迟 ± 10ms 发送
pynetem -i eth0 --delay=100ms,10ms,30%

# 该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包,成功率为 30%
pynetem -i eth0 --loss=1%,30%

# 该命令将 eth0 网卡的传输设置为随机产生 1% 的重复数据包
pynetem -i eth0 --duplicate=1%

# 该命令将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包 。 (内核版本需在2.6.16以上)
pynetem -i eth0 --corrupt =0.2%

# 该命令将 eth0 网卡的传输设置为:有 25% 的数据包(50%相关)会被立即发送,其他的延迟 10ms
pynetem -i eth0 --delay=10ms --reorder=25%,50%

# 该命令将 eth0 网卡的传输设置为 延迟100ms,同时限定网卡的出速率
pynetem -i eth0 --delay=100ms --rate=256kbit

# 该命令将 eth0 网卡的传输设置为 在符合CIDR条件下延迟100ms&限定网卡的出速率
pynetem -i eth0 --delay=100ms --rate=256kbit --dst=10.10.10.10/32
  • Web模式
    运行此模式可以对外提供接口,默认开启8899端口,也可以指定其它端口。
pynetem --web --port=9000

共有5个API可以调用:

[GET] /pynetem/help                                     -- Get demo post data and simple description
[GET] /pynetem/listInterfaces                           -- Get interfaces name of host
[GET] /pynetem/getRules?eht=<interface name>            -- Get qdisc rules by interface
[GET/DELETE] /pynetem/clear?eth=<interface name>        -- Clear all rules
[POST] /pynetem/setRules?eth=<interface name>           -- Set tc qdisc rule

请求体中,如果设置参数为None"",则会忽略此参数,请求体示例如下:

{
    "delay": "100ms 10ms 25%",
    "distribution": "normal",
    "reorder": "25% 50%",
    "loss": "0.3% 25%",
    "duplicate": "1%",
    "corrupt": "0.1%",
    "rate": "256kbit",
    "buffer": 1600,
    "limit": 3000,
    "dst": "10.10.10.0/24"
}

需要注意的是,当按下ctrl + c关停web服务时,会自动将所有网卡接口下的所有qdisc规则全部清空。

相关文章

  • 弱网模拟tc/netem辅助工具pynetem

    https://github.com/GuoTengda1993/pynetem因为tc/netem只在linux...

  • 模拟弱网环境 -NetEm

    https://www.sohu.com/a/403380016_262549

  • openwrt上的弱网测试

    TC使用 安装tc和netem: 使用 效果显示30%的丢包 学习 Class 类 class 用来表示控制策略....

  • TC控制流量

    模拟延迟传输简介 netem netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能...

  • 使用 TC 和 Netem 模拟网络异常

    参考:https://juejin.cn/post/6844903673760350221[https://jue...

  • Charles弱网测试

    1. 如何进行弱网测试 弱网环境测试主要依赖于弱网环境的模拟,搭建弱网环境,模拟一个弱网环境即可。可以通过软硬件...

  • Fiddler弱网模拟

    基于Fiddler的弱网模拟 Fiddler的限速功能开启:Rules-->Performance-->Simul...

  • iOS弱网模拟

    关于应用弱网环境下的测试,之前还怎么注意。直到最近收到用户提的bug才引起了重视。这里简单总结一下iOS设备以及模...

  • Fildler模拟弱网

    前提:手机与fiddler连接成功 测试过程中,经常需要模拟客户弱网环境,我们通过fiddler实现 一 按图示操...

  • Charles模拟若网环境

    弱网测试模拟 什么样的网络属于弱网低于2G速率的时候都属于弱网,3G也可划分为弱网,一般Wi-Fi不划入弱网测试范...

网友评论

    本文标题:弱网模拟tc/netem辅助工具pynetem

    本文链接:https://www.haomeiwen.com/subject/phhjoctx.html