مقدمه
اتوماسیون شبکه عالی است، اما چگونه تأیید میکنید شبکه بعد از تغییرات درست کار میکند؟ تست خودکار شبکه به شما اجازه میدهد رفتار مورد انتظار را تعریف کنید و بهطور مداوم آزمایش کنید.
ابزارهای تست
| ابزار | هدف |
|---|---|
| Batfish | تحلیل پیکربندی آفلاین |
| Nornir + pytest | تست وضعیت واقعی دستگاه |
| NAPALM | API شبکه فروشنده-خنثی |
راهاندازی pytest برای شبکه
BASH
pip install pytest nornir nornir-netmiko napalmنمونه تست
PYTHON
def test_interface_up(nr):
'''تمام اینترفیسهای مورد انتظار باید Up باشند.'''
expected_up = {
"router01": ["GigabitEthernet0/0", "GigabitEthernet0/1"],
}
for host, interfaces in expected_up.items():
output = get_output(nr, host, "show interfaces status")
for iface in interfaces:
assert "connected" in output, f"{host}: {iface} down!"
def test_default_route_exists(nr):
'''همه روترها باید مسیر پیشفرض داشته باشند.'''
result = nr.run(task=netmiko_send_command, command_string="show ip route 0.0.0.0")
for host, task_result in result.items():
assert "0.0.0.0/0" in task_result[0].result, f"{host}: no default route!"اجرای تستها
BASH
pytest tests/ -v
pytest tests/ -v --html=report.htmlخلاصه
- تستهای خودکار شبکه رگرسیونها را قبل از کاربران شناسایی میکنند
- Nornir + pytest برای تست وضعیت دستگاه زنده استفاده کنید
- Batfish برای تحلیل آفلاین تغییرات پیکربندی استفاده کنید
- تستها را در CI/CD بعد از هر تغییر اجرا کنید
