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

相关推荐
程序喵大人9 小时前
【C++进阶】STL容器与迭代器 - 01 STL 容器先解决元素放在哪里
开发语言·c++·stl
cui_ruicheng9 小时前
Python从入门到实战(十六):多进程编程
开发语言·python
wdfk_prog10 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
_Jimmy_10 小时前
FastAPI + SQLAlchemy全局事务管理
python·fastapi
晴空了无痕11 小时前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
用户83562907805111 小时前
如何使用 Python 在 Excel 中添加、编辑和删除超链接
后端·python
神明不懂浪漫11 小时前
【第五章】Java中的继承与多态
java·开发语言
神州世通11 小时前
解密企业通信安全防线:Avaya Aura 三层安全架构深度解析
开发语言·php
AC赳赳老秦12 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
qq_25183645713 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端