iperf3 + Python 到底是干嘛的?(超级直白版)
我给你用最简单、最实用、最接地气的方式讲清楚👇
一句话总结
iperf3 是专门测【网络带宽、网速、网络稳定性】的工具
Python + iperf3 = 代码自动测网速、测吞吐量、测网络好坏
它主要用来干什么?(真实业务场景)
1. 测两个设备之间的网络能跑多快
- 电脑 ↔ 设备
- 设备 ↔ 设备
- 服务器 ↔ 客户端
测:
- 最大带宽(Mbps / Gbps)
- 上传速度
- 下载速度
- 丢包率
- 延迟抖动
2. 自动化测试网络性能
你写 Python 代码,就能:
- 自动启动 iperf3 服务端
- 自动启动客户端测速
- 自动获取测速结果
- 自动生成报告
→ 不用人工敲命令,全自动测网
3. 设备出厂/质检时必用
你现在做的是 硬件自动化测试平台,iperf3 常用于:
- 网口测试
- 网卡带宽测试
- 以太网通信稳定性测试
- 设备数据传输能力验证
4. 排查网络问题
- 是不是网线坏了?
- 是不是交换机瓶颈?
- 是不是设备网口跑不满?
- 是不是丢包严重?
iperf3 一测就知道。
用 Python 调用 iperf3 能做什么?
你可以在你的自动化测试平台里实现:
✅ 自动测试设备网口速率
✅ 自动判断网络是否合格
✅ 自动生成测试报告
✅ 自动判断 PASS/FAIL
✅ 7×24 小时压力测试网络稳定性
完全不用人工干预。
最简单的 Python + iperf3 例子(一看就懂)
python
import iperf3
# 客户端:去连接服务器测速
client = iperf3.Client()
client.duration = 3 # 测3秒
client.server_hostname = '192.168.1.100' # 服务器IP
# 开始测试
result = client.run()
# 直接拿到结果!
print('上传速度:', result.sent_Mbps)
print('下载速度:', result.received_Mbps)
你什么时候会用到它?
如果你的项目里有:
- 网口
- 以太网
- TCP/UDP 通信
- 设备之间大数据传输
- 带宽要求高
→ 就必须用 iperf3 测网速是否达标
超级总结
iperf3 = 专业网络测速工具
Python + iperf3 = 自动化网络测速工具
主要用途:
- 测网络带宽(能跑多快)
- 测网络稳定性(掉不掉包)
- 自动化网口验收测试
- 设备出厂网口质量检测
下面我直接给你一套 可直接复制、能跑、极简版 Python iperf3 测速代码 ,适配 Windows、Linux、嵌入式设备都能用,不用额外依赖、不用 pip 装包、纯调用系统 iperf3 命令。
一、iperf3 环境要求
- 电脑/设备 安装 iperf3
- Windows:下载 iperf3.exe 放 PATH
- Linux:
apt install iperf3
- 服务端:
iperf3 -s - 客户端:
iperf3 -c 192.168.1.100
二、Python 完整测速代码(直接用)
python
# -*- coding:utf-8 -*-
import subprocess
import re
def run_iperf3_test(server_ip, duration=3, udp=False, bandwidth_limit=None):
"""
直接指定iperf3.exe路径,Windows 100%能跑
"""
# 👇 直接写死你电脑上iperf3.exe的完整路径
iperf3_path = r"E:\app\iperf3.1.4_64\iperf3.exe"
cmd = [iperf3_path, "-c", server_ip, "-t", str(duration)]
if udp:
cmd.append("-u")
if bandwidth_limit:
cmd.extend(["-b", f"{bandwidth_limit}M"])
try:
result = subprocess.run(
cmd,
capture_output=True,
text=True,
timeout=duration + 2
)
output = result.stdout
print("iperf3输出:\n", output)
# 解析带宽
bw_match = re.search(r"(\d+\.?\d*)\s+Mbits/sec", output)
# 解析丢包率
loss_match = re.search(r"(\d+\.?\d*)%\s+loss", output)
bandwidth = float(bw_match.group(1)) if bw_match else 0.0
loss_rate = float(loss_match.group(1)) if loss_match else 0.0
# 简单判定:带宽>90Mbps、丢包<1% 为合格
pass_flag = bandwidth > 90 and loss_rate < 1.0
return bandwidth, loss_rate, pass_flag
except Exception as e:
print("iperf3异常:", e)
return 0.0, 100.0, False
# ============ 直接运行测试 ============
if __name__ == "__main__":
# 改这里:服务端IP
SERVER_IP = "192.168.1.167"
print("==== TCP测速 ====")
bw, loss, ok = run_iperf3_test(SERVER_IP, duration=3)
print(f"带宽:{bw:.2f} Mbps | 丢包:{loss:.2f}% | {'PASS' if ok else 'FAIL'}")
print("\n==== UDP测速(100M) ====")
bw, loss, ok = run_iperf3_test(SERVER_IP, duration=3, udp=True, bandwidth_limit=100)
print(f"带宽:{bw:.2f} Mbps | 丢包:{loss:.2f}% | {'PASS' if ok else 'FAIL'}")
三、直接就能用
- 设备/电脑上开服务端:
bash
iperf3 -s
- 运行上面 Python 代码
- 自动输出:带宽、丢包、PASS/FAIL