电脑工场
白蓝主题五 · 清爽阅读
首页  > 网络基础

做网络测试怎么实现自动化?手把手带你跑通第一个脚本

公司新上了几台核心交换机,每次上线前都要手动 ping 一堆 IP、查端口状态、测带宽、抓包看丢包率……重复干三天,眼睛发酸,手也点麻了。其实这些活儿,早就能用几行代码自动跑完。

先搞清楚:哪些网络测试自动

不是所有测试都适合写脚本,但下面这几类,90% 的日常运维场景都能覆盖:

  • 连通性检测(ping、traceroute)
  • 端口可用性扫描(telnet / nc 检查 SSH、HTTP、数据库端口)
  • 接口状态与流量采集(通过 SNMP 或设备 API 获取 up/down、in/out 流量)
  • 配置一致性比对(比如对比两台路由器的 ACL 列表是否一致)
  • 基础性能压测(用 iperf3 批量跑带宽测试)

重点不是“全自动化”,而是把最枯燥、最重复、最容易手抖出错的部分先交给脚本。

工具选哪个?别纠结,从 Python + requests + netmiko 开始

你不用重学一门语言。Python 上手快、库成熟,配合几个轻量工具,5 分钟就能写出第一个可用脚本。

装好 Python 3.8+ 后,执行这行命令:

pip install netmiko requests paramiko iperf3

netmiko 是专为网络设备设计的 SSH 封装库,支持华为、思科、H3C、Juniper 等主流厂商,连命令行交互都帮你处理好了。

举个真实例子:自动检查 10 台交换机的管理口连通性

假设你有一张 Excel 表,列着设备 IP、登录用户名、密码、设备类型(cisco_ios / huawei)。写一个 check_ping.py

import netmiko
from netmiko import ConnectHandler

devices = [
{"device_type": "huawei", "host": "192.168.10.1", "username": "admin", "password": "pass123"},
{"device_type": "cisco_ios", "host": "192.168.10.2", "username": "cisco", "password": "cisco"},
]

for dev in devices:
try:
conn = ConnectHandler(**dev)
output = conn.send_command("ping -c 4 192.168.1.1") # 测网关
if "100% packet loss" in output:
print(f"❌ {dev['host']} → 网关不通!")
else:
print(f"✅ {dev['host']} → 连通正常")
conn.disconnect()
except Exception as e:
print(f"⚠️ {dev['host']} 连接失败:{str(e)}")

保存后直接运行:python check_ping.py,结果立马出来。以后每次巡检,双击一下就行。

进阶一点:用 YAML 管理设备清单,加个日志记录

把设备信息从代码里抽出来,单独存成 devices.yaml

switches:
- host: 192.168.10.1
device_type: huawei
username: admin
password: pass123
- host: 192.168.10.2
device_type: cisco_ios
username: cisco
password: cisco

再加几行 logging,每次执行结果自动记到 network_check.log 里,领导要报告时直接拖文件过去——省下的时间,够你泡杯茶歇会儿。

别被“自动化”三个字吓住

有人一听“自动化”就想到 Jenkins、GitLab CI、Docker 容器编排……其实真没必要。你今天写的第一个 ping 脚本,就是自动化;下周改成批量查 CPU 使用率,也是自动化;下个月加上邮件通知,还是自动化。

关键是动起手来。哪怕只把每天早上抄写的 5 个端口状态,变成一键输出表格,你就已经甩开纯手动党一大截了。

电脑工场不讲虚的——你照着上面改个 IP、换俩密码,现在就能跑起来。