Trong kỷ nguyên NetDevOps và Infrastructure as Code (IaC), việc chỉ tự động hóa cấu hình là chưa đủ. Một hệ thống mạng hiện đại cần được kiểm thử tự động, liên tục, và đáng tin cậy trong pipeline CI/CD.
Đó là lúc pyATS (Python Automated Test System) phát huy sức mạnh.
1. pyATS là gì?
pyATS là nền tảng test automation bằng Python do Cisco phát triển, ban đầu dùng nội bộ và được public qua Cisco DevNet từ năm 2017. Hiện nay, pyATS là kiến trúc automation chủ lực của Cisco cho các bài toán kiểm thử mạng.
pyATS được thiết kế đặc biệt cho:
2. Vì sao pyATS phù hợp với CI/CD?
Trong CI/CD:
Với hệ thống mạng:
👉 End-to-End testing thường quan trọng hơn unit test
pyATS sinh ra để giải quyết chính bài toán đó.
3. Kiến trúc pyATS – Xếp tầng như Lego
pyATS được xây dựng theo mô hình module mở rộng, giống như các khối Lego: 🔹 pyATS Core Test Infrastructure
🔹 pyATS Library Framework
🔹 pyATS Libraries (Genie)
👉 Đây là phần “ăn tiền” nhất của pyATS.
🔹 Integration & Tooling
pyATS không đứng một mình, mà gắn chặt vào hệ sinh thái DevOps.
4. Testbed – Trái tim của pyATS
Testbed là file YAML bắt buộc khi dùng pyATS.
Testbed mô tả toàn bộ hệ thống:
Lợi ích:
👉 Đây chính là Infrastructure as Code áp dụng cho testing.
5. AEtest – Engine test chuẩn của pyATS
AEtest (Automation Easy Testing) là test engine chính của pyATS:
AEtest giúp:
6. Cấu trúc testscript AEtest (rất quan trọng)
Mỗi testscript pyATS có 3 container chính: 🔹 Common Setup
🔹 Testcase(s)
🔹 Common Cleanup
👉 Cấu trúc này giúp test rõ ràng – dễ đọc – dễ trace lỗi.
7. Testcase vs Trigger – Điểm khác biệt lớn
❌ Testcase truyền thống
✅ Trigger (Genie Harness)
Trigger giống như Lego blocks:
🔥 Blitz Trigger
8. Tổng kết
pyATS không chỉ là một tool test, mà là nền tảng kiểm thử mạng chuẩn DevOps.
Giá trị cốt lõi của pyATS:
👉 Nếu bạn đang làm NetDevOps, Network Automation, hoặc Tester cho hệ thống mạng, pyATS là một kỹ năng rất đáng đầu tư.
Đó là lúc pyATS (Python Automated Test System) phát huy sức mạnh.
1. pyATS là gì?
pyATS là nền tảng test automation bằng Python do Cisco phát triển, ban đầu dùng nội bộ và được public qua Cisco DevNet từ năm 2017. Hiện nay, pyATS là kiến trúc automation chủ lực của Cisco cho các bài toán kiểm thử mạng.
pyATS được thiết kế đặc biệt cho:
- Network as Code (NaC)
- Infrastructure as Code (IaC)
- Continuous Integration / Continuous Deployment (CI/CD)
2. Vì sao pyATS phù hợp với CI/CD?
Trong CI/CD:
- Code được merge liên tục
- Cần phát hiện lỗi sớm
- Cần test nhanh, lặp lại được, có log & report rõ ràng
Với hệ thống mạng:
- Nhiều thiết bị
- Nhiều giao thức
- Nhiều trạng thái phụ thuộc lẫn nhau
👉 End-to-End testing thường quan trọng hơn unit test
pyATS sinh ra để giải quyết chính bài toán đó.
3. Kiến trúc pyATS – Xếp tầng như Lego
pyATS được xây dựng theo mô hình module mở rộng, giống như các khối Lego: 🔹 pyATS Core Test Infrastructure
- Nền tảng chạy test
- Định nghĩa:
- Testbed
- Topology
- Execution
- Reporting
🔹 pyATS Library Framework
- Nền móng để xây dựng thư viện automation
- Vendor / platform agnostic
- Giúp tái sử dụng logic test
🔹 pyATS Libraries (Genie)
- Parsers (parse output CLI)
- Feature / Protocol models
- Triggers & Verifications
👉 Đây là phần “ăn tiền” nhất của pyATS.
🔹 Integration & Tooling
- Jenkins / CI-CD pipelines
- Ansible
- Robot Framework
- XPRESSO (Web dashboard)
pyATS không đứng một mình, mà gắn chặt vào hệ sinh thái DevOps.
4. Testbed – Trái tim của pyATS
Testbed là file YAML bắt buộc khi dùng pyATS.
Testbed mô tả toàn bộ hệ thống:
- Devices
- Credentials
- Connection (SSH / Telnet)
- Interfaces
- IP addressing
- Topology
Lợi ích:
- Testscript không hard-code thiết bị
- Dễ scale
- Dễ tích hợp CI/CD
- Có thể generate từ Excel hoặc Ansible inventory
👉 Đây chính là Infrastructure as Code áp dụng cho testing.
5. AEtest – Engine test chuẩn của pyATS
AEtest (Automation Easy Testing) là test engine chính của pyATS:
- Viết hoàn toàn bằng Python
- Thiết kế theo hướng Object-Oriented
- Lấy cảm hứng từ unittest và pytest
AEtest giúp:
- Viết test rõ ràng
- Debug dễ
- Log & report đẹp
- Mở rộng linh hoạt
6. Cấu trúc testscript AEtest (rất quan trọng)
Mỗi testscript pyATS có 3 container chính: 🔹 Common Setup
- Chạy 1 lần
- Chuẩn bị môi trường test
- Ví dụ:
- Connect device
- Load topology
- Chuẩn bị dữ liệu
🔹 Testcase(s)
- Phần đánh giá chất lượng hệ thống
- Mỗi testcase gồm:
- Setup
- Test(s)
- Cleanup
🔹 Common Cleanup
- Chạy 1 lần sau cùng
- Dọn dẹp môi trường
- Disconnect device
- Restore trạng thái
👉 Cấu trúc này giúp test rõ ràng – dễ đọc – dễ trace lỗi.
7. Testcase vs Trigger – Điểm khác biệt lớn
❌ Testcase truyền thống
- Không tái sử dụng
- Copy/paste nhiều nơi
- Khó bảo trì
✅ Trigger (Genie Harness)
- Là testcase độc lập
- Có thể tái sử dụng
- Kết hợp linh hoạt cho nhiều kịch bản
Trigger giống như Lego blocks:
- Viết 1 lần
- Dùng cho smoke, regression, scale test
🔥 Blitz Trigger
- Viết bằng YAML
- Gần như không cần Python
- Chạy rất nhanh
- Rất phù hợp cho CI/CD
8. Tổng kết
pyATS không chỉ là một tool test, mà là nền tảng kiểm thử mạng chuẩn DevOps.
Giá trị cốt lõi của pyATS:
- Chuẩn hóa test automation
- Tái sử dụng test logic
- Phù hợp CI/CD
- Giảm manual testing
- Nâng chất lượng hệ thống mạng
👉 Nếu bạn đang làm NetDevOps, Network Automation, hoặc Tester cho hệ thống mạng, pyATS là một kỹ năng rất đáng đầu tư.