iperf3 + Python-- 网络带宽、网速、网络稳定性

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 = 自动化网络测速工具

主要用途:

  1. 测网络带宽(能跑多快)
  2. 测网络稳定性(掉不掉包)
  3. 自动化网口验收测试
  4. 设备出厂网口质量检测

下面我直接给你一套 可直接复制、能跑、极简版 Python iperf3 测速代码 ,适配 Windows、Linux、嵌入式设备都能用,不用额外依赖、不用 pip 装包、纯调用系统 iperf3 命令


一、iperf3 环境要求

  1. 电脑/设备 安装 iperf3
    • Windows:下载 iperf3.exe 放 PATH
    • Linux:apt install iperf3
  2. 服务端:iperf3 -s
  3. 客户端: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'}")

三、直接就能用

  1. 设备/电脑上开服务端:
bash 复制代码
iperf3 -s
  1. 运行上面 Python 代码
  2. 自动输出:带宽、丢包、PASS/FAIL

相关推荐
仰泳之鹅3 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
qingfeng154153 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
之歆4 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
cen__y5 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
社交怪人5 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
郭涤生6 小时前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS6 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言