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

相关推荐
春风解人意15 分钟前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
智能体与具身智能27 分钟前
TVA具身智能的概念、架构与应用(19)
人工智能·python·具身智能
小灰灰搞电子31 分钟前
Rust+Slint 实现动态消息提示框源码分享
开发语言·后端·rust
2601_962294611 小时前
python中range函数怎么用
python·for循环·可迭代对象·range函数·整数列表
云絮.1 小时前
网络原理---- 网络层,数据链路层,应用层
网络
传奇开心果编程2 小时前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
青 春 记 忆2 小时前
零基础入门python70:Docker Compose 编排完整后端
python·后端开发
新时代牛马2 小时前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
swordbob2 小时前
ReentrantLock 与 AQS 完整学习手册
java·开发语言
Johny_Zhao3 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm