empower your testing - clnv.s3.amazonaws.com · •installation, getting started ... launched...

31

Upload: vanthuan

Post on 06-May-2018

222 views

Category:

Documents


1 download

TRANSCRIPT

Empower your testingwith Cisco TestAutomation SolutionFeaturing pyATS & Genie

Siming Yuan, Technical Leader, Engineering, Cisco

Jean-Benoit Aubin, Engineer, Software Engineering, Cisco

Sedy Yadollahi, Manager, Software Engineering, Cisco

Ramesh Yeevani-Srinivas, Director, Engineering, Cisco

DEVNET-1480

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Cisco Spark

Questions? Use Cisco Spark to communicate with the speaker after the session

1. Find this session in the Cisco Live Mobile App

2. Click “Join the Discussion”

3. Install Spark or go directly to the space

4. Enter messages/questions in the space

How

cs.co/ciscolivebot#DEVNET-1480

• Introduction, Background

• Solution Overview

• pyATS Features At-a-Glance

• Genie Library, SDK

• Installation, Getting Started

• Examples & Resources

• Roadmap, Upcoming Releases

Agenda

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 5DEVNET-1480

Intuitive Test Automation For Intuitive Networks

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

pyATS, 2014 - present

Launched internally in Cisco engineering late 2014

Quickly became the most adopted test framework within Cisco

Running in sanity, regression, solution labs, etc.

6DEVNET-1480

3000+ developers 5,000,000+ LoC 1,000,000+ runs

month

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 7DEVNET-1480

- Dave Wapstra, Architect, Solution Integration, Cisco

“Can we share this with our customers?”

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

DevNet: pyATS

developer.cisco.com/site/pyats/

8

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 9DEVNET-1480

Why?

Traditional Test Automation

o linear and monolithic

o functional based

o single-purpose

o favors functional, test automation specialist teams

New Requirements

heterogeneous and polymorphic

dynamic and data-driven

pluggable and extendable

cross-functional teams with SMEs

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 10DEVNET-1480

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

pyATS Features At-a-Glance

Agnostic: Multi-Vendor Support

Python 3.4 +

Independent Modules

Tcl Library Reuse

Asynchronous Execution

Data-Driven Test Cases

Extensible Framework

YAML-defined, Object-based Topology

Reusable Tests, Looping

Pre/Post/Exception Processors

Selective Execution

Pause & PDB on [Anything]

Configurable Report

Device Connection Management

Parametrized Test cases

Test cases, Sections, Steps

Device Bring-up/Clean Management

11

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

Test Script Example

12

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

Genie

Provides feature-centric object models Focuses development effort on writing

test cases & suites

Shields the end scripter from explicit CLI/YANG-RPCs

Objects are agnostic Works across management interfaces:

CLI, YANG, XML, etc.

Handles feature differences between images, releases, platforms, etc.

Genie is plug & play Use only the classes you need

SDK’s triggers and verifications plug directly into pyATS as test cases and sections

Genie is extensible Inherent & extend whenever needed

Modify only what’s required & accommodate for deltas between release/image/etc.

genie.conf genie.ops genie.sdk

13

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480 14

Genie: Next Level Testing

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Test Ecosystem: pyATS + Genie

DEVNET-1480

pyATS Test Framework

Execution Engine

Plugins & Hooks

Result ReportingEmail Notification

Device ConnectionsTest Definition

Result Archive

Tcl Integration Topology Definition

Genie Library/SDK

TGN Devices Links Interfaces BGP MCAST OSPF

WebDriver CLI NETCONF RESTCONF …Implementation

Layer

Library Layer

(API Interface)

15

Testbed/DUT

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

Genie SDK

Stimulus & Event Driven

• Pool of triggers & verification: trigger events,

verify the aftermath

• Dynamic topology & feature discovery via

system/testbed profiling

• Abstraction-enabled: works across a variety

of platforms and Cisco IOx platforms.

Agnostic, Data driven Tests

• Plug & Play: select test scenarios based on

component and required feature coverage

• Dynamic: runtime generation of testcases

based on input data (yaml) file, combining

triggers & verifications as per demand

• Reusable: plugs directly into any existing

pyATS test script

16

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 17DEVNET-1480

Reusable, Scalable Test Automation

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 18DEVNET-1480

Robot Framework Integration

< 200 LoC

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Getting Started

pyATS is available in the Python Package Index (PyPI)

https://pypi.python.org/pypi/pyats/

Requirements:

Linux Environment (including WSL)

Python 3.4.x virtual environment

Examples are available under ~/pyats/examples after installation.

DEVNET-1480

# create a new python virtual environment$ python3 –m venv ~/pyats

# install in your new environment$ source ~/pyats/bin/activate$ pip install pyats genie

19

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

Day Zero Packages

• Selenium web page object design

pattern on steroids

• Integrates with pyATS models

(testbed YAML, connection classes)

Genie.WebDriver

• Universal CLI Connection class:

telnet, ssh to network devices

• Platform independent core: new

platform support via plugins

Unicon

• Automated CLI table to data

structure converter

• CLI parser using markup language

instead of regular expressions

Parsergen

• Calling pyATS data structures,

libraries and test cases in Robot

• Reusing Genie libraries and SDK in

Robot

Genie.Robot

• Promotes easy-to-maintain parser

library structure

• Structure/schema unification among

different (but similar) output contexts

Genie.Metaparser

• Standardizes platform-agnostic

library definition and structure

• Dynamic function lookup with auto-

fallback based on current tokens

Genie.Abstract

20

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

Upcoming Releases

• Request package adapter to pyATS

connection model

REST.Connector

• NcClient adaptor to pyATS

connection model

• NETCONF configuration tools:

merge, diff

YANG.Connector

• Provide a generic, plugin-based

telemetry infrastructure to collect

statistical and analytical data from

your testbed devices

Genie.Telemetry

21

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1480

Roadmap

20182017

Nov 2017

pyATS available

through DevNet

Dec 2017

pyATS Docker

Image Release

Cisco Live! Barcelona

DevNet-1480

Empower Your Test Automation With Cisco Test

Automation Solution, featuring pyATS & Genie

Q3 FY18

Genie SDK

Released on DevNet,

Integration with Robot

Framework

Soon

Self-Serve Service Dashboard

for pyATS/Genie test suites,

featuring testbed management,

reservation, monitoring, etc.

22

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Cisco Test Automation Solution

Users

Jenkins Test Env

LaaS

S3 Dashboard

Host Server

Test EnvTest Env

LaaSPlugin:

pyATS Project

pyATS Result

DEVNET-1480 23

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Resources

DevNet: pyATS - https://developer.cisco.com/site/pyats/

Framework Documentation: https://developer.cisco.com/site/pyats/docs/

Package Documentation: https://developer.cisco.com/site/pyats/docs/packages/

Community Forum: https://communities.cisco.com/community/developer/pyats

GitHub Folder: https://github.com/CiscoTestAutomation

DockerHub: https://hub.docker.com/r/ciscotestautomation/pyats/

DEVNET-1480 24

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Cisco Spark

Questions? Use Cisco Spark to communicate with the speaker after the session

1. Find this session in the Cisco Live Mobile App

2. Click “Join the Discussion”

3. Install Spark or go directly to the space

4. Enter messages/questions in the space

How

cs.co/ciscolivebot#DEVNET-1480

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

• Please complete your Online Session Evaluations after each session

• Complete 4 Session Evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt

• All surveys can be completed via the Cisco Live Mobile App or the Communication Stations

Don’t forget: Cisco Live sessions will be available for viewing on-demand after the event at www.ciscolive.com/global/on-demand-library/.

Complete Your Online Session Evaluation

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Continue Your Education

• Demos in the Cisco campus

• Walk-in Self-Paced Labs

• Tech Circle

• Meet the Engineer 1:1 meetings

• Related sessions

27DEVNET-1480

Thank you

Backups

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Test Ecosystem

DEVNET-1480 31

Test Framework Library Framework

pyATS GenieReusable, Scalable

Test Automation