Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • pyATS – Nền tảng Test Automation chuẩn CI/CD cho NetDevOps

    Trong kỷ nguyên NetDevOpsInfrastructure 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ì?

    Click image for larger version

Name:	image.png
Views:	21
Size:	49.9 KB
ID:	438390
    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
    Click image for larger version

Name:	image.png
Views:	11
Size:	23.3 KB
ID:	438391

    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

    Click image for larger version

Name:	image.png
Views:	11
Size:	23.8 KB
ID:	438392
    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)

    Click image for larger version

Name:	image.png
Views:	11
Size:	34.1 KB
ID:	438393
    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ư.
Working...
X