Genie Documentation


Genie is a Python library solution for PyATS which contains all the tools needed for Network Test Automation. Genie bundled with the modular architecture of the pyATS framework accelerates and simplifies development of network test automation, while leveraging all the perks of the Python programming language and promoting the development of agnostic libraries. Genie is redefining how network test scripters interact with devices through libraries and avoiding functional programming.

Genie is used internally within Cisco for automating network testing and has also been released externally through Cisco DevNet. This means that the same tests which are used internally at Cisco during product development can also be executed externally on a customer setup. This is massive news for automation within and outside of Cisco!

Genie at a glance

  • 500+ Parsers that supports all OS
  • Feature-centric object models * Bgp is a object which has properties - What is the as number, what are the neighbors
  • Provides structured data by parsing devices configuration and operation data which are fully OS Agnostic (One common structure for all OS/Interface management)
  • Apply configuration on all Cisco devices using a common structure for all OS/Platform/Cli/Yang
  • Test Harness to generate testscript and re-use existing testcases
  • Testbed Health Status Monitoring - Supports any pyATS script and can also be used as a standalone tool
  • Community-driven libraries

Test Automation oriented examples

  • Re-use any of the available testcases
  • Write re-usable libraries which are turned into testcases
  • Future-proof design so it works across all future connection (Cli/Yang/Xml/OpenConfig/Native models/…)
  • One script which works across platforms, spend time writing good libraries and less into modifying scripts
  • Verify Cli outputs with Yang and xml outputs!

DevNet oriented examples

  • Connect to your devices and make sure that all devices are up, running and pingable between each other
  • Connect to your devices and retrieve information about the state of your network
  • Collect snapshot of your network and compare with the initial snapshot
  • Take a snapshot of your network and compare the snapshot once a new image has been applied to verify the state of the network
  • Create a script to actually put your topology under test:
  • Perform action such as Reload Devices, Perform Switchover, ShutNoShutBgp, ConfigUnconfigOspf, etc
  • Verify your topology is stable
  • And many more! Once you have the libraries, everything can be automated!

Other Genie Packages

Genie umbrella also includes the following packages:

  • genie.parsergen - Provides a one-step parsing mechanism that is capable of parsing tabular and non-tabular device outputs
  • genie.telemetry - Testbed Health Status Monitoring Tool
  • genie.metaparser - Homogenize the parsing structure between multiple different communication interfaces(Cli, xml, netconf, …)
  • genie.abstract - Build os/platform/… libraries and dynamically refer them without modifying
  • genie.predcore - Simple truth checker

Learn more about Genie