Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
System Testing SDN
- A Case Study on ONOS
Suibin Zhang, ON.Lab
Jon Hall, Ciena
Known
UNKNOWNs
Known
KNOWNs
Unknown
UNKNOWNs
Quality Assurance on Software System
Subjective Perception
ObjectiveReality
✔
2#ONOSProject
3#ONOSProject
• Black/Grey Box Testing
– Often mimic usage scenarios
– Validity not influenced by internal design
• Product Verification/Qualification
• Pre-Deployment Verification
System Test - Where Used
4#ONOSProject
Testing SDN OS – Nontrivial
SDN Network Domain
Distributed
Controllers
SDN
CTRL
1
SDN
CTRL
2
SDN
CTRL
n
APP APPAPP
Test
Exec.
Legacy Network Domain
Dependencies
5#ONOSProject
• Technical
– Accessing heterogeneous, evolving interfaces
– Scaling test environment
– Facilitate Debugging
• Arise from Community/Open Source
– Run “anywhere”
– Handling test dependencies
– Contribution and merging tests
Challenges in Building System Tests
6#ONOSProject
A Case Study on ONOS
7#ONOSProject
• Functionality Suite
– NB: Intents and Flow operations
– SB: OF 1.0 &1.3, NETCONF, OVSDB, etc.
• High Availability Suite
– Various scenarios of cluster failures
• Performance and Scale-out Suites
– Intent, flow throughputs, latency as scaling-out
– Topology discovery latency as scaling-out
• Longevity
– Continuous operation under typical deployment scenarios
• Selected Use Case Suites
– SDNIP App, Segment Routing App
ONOS System Test Suites
8#ONOSProject
 Establish Test Handles
 Run-time Configuration
 Test Logic
 Reset/Clean Test Env.
 Inject Run Params to
TestStation
 Start Test Cases
 Jenkins Plugins
 Update Codes
 Publish Results
Onos System Test CI
9#ONOSProject
A Deeper Dive into TestON
Onos System Test CI
10#ONOSProject
TestON – Key Benefits
• TestON
o SDN-focused Testing Framework
o Test case authoring, execution
o Python-based
• Key Benefits:
o Extensibility – Simplify case authoring by compartmentalizing
concerns
o Flexibility - Handle heterogeneous test env. OVS, HW, Quagga, etc.
o Debuggability - Facilitate troubleshooting
11#ONOSProject
*.params
*.py*.topo Dependency
Details on TestON Framework
TestON Core Framework:
Logging, Utilities, …
Mininet Driver ONOS Rest
Driver Quagga Driver
ONOS CLI
Driver
Test Files
.params File – XML file, used to pass variables into test, such as order of test cases
.topo file – XML File, defines the components of the test
Dependency Folder – Config files or Mininet topology files used by the test
.py file – Combine TestON and driver functions to define your test cases.
Test Cases are split into steps, each of which should have an assertion in them
• Driver Files
• Can use REST, CLI via SSH, or other custom connection interfaces
• Defined in a hierarchical structure
• Creates a library of functions to be used in the test
12#ONOSProject
ONOS Intent Feature
• Set intent through NB REST interface
• Validate intent and flows are correctly added
• Test end-to-end connectivity in Mininet with the specific selectors
System Test Procedure
• Need a library to send packets with test-specified selector
• Leveraging Python Scapy module
System Test Requirement
• High-level abstraction of setting end to end connectivity
• Can be defined by “Selectors” of MAC, IP, PORT, MPLS label, etc.
Example: ONOS Intent Functionality Test
13#ONOSProject
Building a Scapy Driver
(send/recv user-defined packets)
class ScapyCliDriver( Emulator ):
def sendPacket( self, iface=None, packet=None, timeout=1 ):
try:
sendCmd = 'srp( '
if packet:
sendCmd += packet
else:
...
if iface:
sendCmd += ", iface='{}'".format( iface )
sendCmd += ', timeout=' + str( timeout ) + ')'
self.handle.sendline( sendCmd )
self.handle.expect( self.scapyPrompt )
except:
...
TestON
|--drivers
| |--common
| |--api
| |--cli
| | |--emulator
| | |--ScapyCliDriver.py
|--tests
Example: ONOS’ Intent Functionality Test
14#ONOSProject
for hostName in [ “h1”,”h2” ]:
# Create two host components with the scapy driver4
main.Scapy.createHostComponent( hostName )
main.step( ”Login to scapy on these new components" )
for host in [ main.h1, main.h2 ]:
host.startHostCli()
host.startScapy()
Using Scapy Library
- in Mininet Host Handle
<Scapy>
<host>192.168.1.101</host>
<user>admin</user>
<password></password>
<type>ScapyCliDriver</type>
<connect_order>6</connect_order>
</Scapy>
TestON
|--drivers
|--tests
|--Example
|--Example.py
|--Example.params
|--Example.topo
Example: ONOS’ Intent Functionality Test
15#ONOSProject
# Add connectivity from h1 to h2 (unidirectional)
addResult = main.ONOS1.addPointIntent( ingress, egress, ethDst, ipDst)
main.h2.startFilter() # Start packet filter on host2
main.h1.buildEther( dst=main.h2.hostMac ) # build ethernet frame
main.h1.buildIP( dst=main.h2.hostIp ) # Build IP frame
main.h1.sendPacket() # Send built packet
finished = main.h2.checkFilter() # Check if host2 received any packets
Intent Test Case
- Using Scapy Driver
TestON
|--drivers
|--tests
|--Example
|--Example.py
|--Example.params
|--Example.topo
Example: ONOS’ Intent Functionality Test
16#ONOSProject
• Parameterize Test Env & Run Var
– Jenkins to inject at run time
– Test cases deal with “pure” test
logic
• Extensive Exception Handling in
Drivers
– Take care of exceptions, timeout
– Use “retry” method
• Test Dependencies
– Run-time Activation
– “Dockerize” Fixture (Future Work)
• Debug Utilities
– Test pausing
– Log collation
– More (Future Work)
• Scale Test Network (Future Work)
Lessons Learned and Future Work
17#ONOSProject
For more Information
• S3 Showcase: “SDN/ONOS System Test”
• Wiki: https://wiki.onosproject.org/display/ONOS/System+Tests
• Repo: https://gerrit.onosproject.org/#/admin/projects/OnosSystemTest
• Github: https://github.com/opennetworkinglab/OnosSystemTest
Summary
Python-Based
Extensibility
DebuggabilityFlexibility
ONOS Test Suites:
Functionality
High Availability
Performance
Scale-out Capability
Longevity
Use Cases
ONOS System Test Highlights
Open Source
18#ONOSProject
Join the journey @ onosproject.org
Software Defined Transformation of Service Provider Networks
Q&A

More Related Content

What's hot

InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017
Mandi Walls
 
Adding Security to Your Workflow with InSpec (MAY 2017)
Adding Security to Your Workflow with InSpec (MAY 2017)Adding Security to Your Workflow with InSpec (MAY 2017)
Adding Security to Your Workflow with InSpec (MAY 2017)
Mandi Walls
 
CCI2019 - I've got the Power! I've got the Shell!
CCI2019 - I've got the Power! I've got the Shell!CCI2019 - I've got the Power! I've got the Shell!
CCI2019 - I've got the Power! I've got the Shell!
walk2talk srl
 
2014-10-30 Taverna 3 status
2014-10-30 Taverna 3 status2014-10-30 Taverna 3 status
2014-10-30 Taverna 3 status
Stian Soiland-Reyes
 
(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language
Nico Ludwig
 
FUNTASY - Functional testing automated system
FUNTASY - Functional testing automated systemFUNTASY - Functional testing automated system
FUNTASY - Functional testing automated system
Qualitest
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
CloudLinux
 
Nagios Conference 2007 | State of the Plugins by Ton Voon
Nagios Conference 2007 | State of the Plugins by Ton VoonNagios Conference 2007 | State of the Plugins by Ton Voon
Nagios Conference 2007 | State of the Plugins by Ton Voon
NETWAYS
 
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi WallsOSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
NETWAYS
 
A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
SaltStack
 
PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2
Bryan Cafferky
 
Distributed tracing in OpenStack
Distributed tracing in OpenStackDistributed tracing in OpenStack
Distributed tracing in OpenStack
Ilya Shakhat
 
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
SaltStack
 
Monit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & UsageMonit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & Usage
Amit Solanki
 
Consul - service discovery and others
Consul - service discovery and othersConsul - service discovery and others
Consul - service discovery and others
Walter Liu
 
CNIT 127 Ch 8: Windows overflows (Part 1)
CNIT 127 Ch 8: Windows overflows (Part 1)CNIT 127 Ch 8: Windows overflows (Part 1)
CNIT 127 Ch 8: Windows overflows (Part 1)
Sam Bowne
 
Monitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineMonitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachine
Wooga
 
LCE13: LAVA Multi-Node Testing
LCE13: LAVA Multi-Node TestingLCE13: LAVA Multi-Node Testing
LCE13: LAVA Multi-Node Testing
Linaro
 
Puppet meetup testing
Puppet meetup testingPuppet meetup testing
Puppet meetup testing
Phil Zimmerman
 
Fundamental of Shell Programming
Fundamental of Shell ProgrammingFundamental of Shell Programming
Fundamental of Shell Programming
Rahul Hada
 

What's hot (20)

InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017
 
Adding Security to Your Workflow with InSpec (MAY 2017)
Adding Security to Your Workflow with InSpec (MAY 2017)Adding Security to Your Workflow with InSpec (MAY 2017)
Adding Security to Your Workflow with InSpec (MAY 2017)
 
CCI2019 - I've got the Power! I've got the Shell!
CCI2019 - I've got the Power! I've got the Shell!CCI2019 - I've got the Power! I've got the Shell!
CCI2019 - I've got the Power! I've got the Shell!
 
2014-10-30 Taverna 3 status
2014-10-30 Taverna 3 status2014-10-30 Taverna 3 status
2014-10-30 Taverna 3 status
 
(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language
 
FUNTASY - Functional testing automated system
FUNTASY - Functional testing automated systemFUNTASY - Functional testing automated system
FUNTASY - Functional testing automated system
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
 
Nagios Conference 2007 | State of the Plugins by Ton Voon
Nagios Conference 2007 | State of the Plugins by Ton VoonNagios Conference 2007 | State of the Plugins by Ton Voon
Nagios Conference 2007 | State of the Plugins by Ton Voon
 
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi WallsOSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
 
A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
 
PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2
 
Distributed tracing in OpenStack
Distributed tracing in OpenStackDistributed tracing in OpenStack
Distributed tracing in OpenStack
 
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
 
Monit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & UsageMonit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & Usage
 
Consul - service discovery and others
Consul - service discovery and othersConsul - service discovery and others
Consul - service discovery and others
 
CNIT 127 Ch 8: Windows overflows (Part 1)
CNIT 127 Ch 8: Windows overflows (Part 1)CNIT 127 Ch 8: Windows overflows (Part 1)
CNIT 127 Ch 8: Windows overflows (Part 1)
 
Monitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineMonitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachine
 
LCE13: LAVA Multi-Node Testing
LCE13: LAVA Multi-Node TestingLCE13: LAVA Multi-Node Testing
LCE13: LAVA Multi-Node Testing
 
Puppet meetup testing
Puppet meetup testingPuppet meetup testing
Puppet meetup testing
 
Fundamental of Shell Programming
Fundamental of Shell ProgrammingFundamental of Shell Programming
Fundamental of Shell Programming
 

Viewers also liked

Open network operating system (onos)
Open network operating system (onos)Open network operating system (onos)
Open network operating system (onos)
Ameer Sameer
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
Noah Weinstock
 
Energías del futuro
Energías del futuroEnergías del futuro
Energías del futuro
Sofía Martínez
 
21 claves-sexualizar-convencer
21 claves-sexualizar-convencer21 claves-sexualizar-convencer
21 claves-sexualizar-convencer
JUAN CARLOS MARQUEZ
 
Criminalistica.
Criminalistica.Criminalistica.
Criminalistica.
Luis Enrique Gil Castillo
 
Tail f - Why ConfD
Tail f - Why ConfDTail f - Why ConfD
Tail f - Why ConfD
Tail-f Systems
 
OVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
OVNC 2015-Enabling Software-Defined Transformation of Service Provider NetworksOVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
OVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
NAIM Networks, Inc.
 
презентация бизнес плана Таль
презентация бизнес плана  Тальпрезентация бизнес плана  Таль
презентация бизнес плана Таль
Jinn1979
 
Inter-controller Traffic in ONOS Clusters for SDN Networks
Inter-controller Traffic in ONOS Clusters for SDN Networks Inter-controller Traffic in ONOS Clusters for SDN Networks
Inter-controller Traffic in ONOS Clusters for SDN Networks
Paolo Giaccone
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
呈 李
 
Python (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network AutomationPython (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network Automation
Rick Sherman
 
Film distribution
Film distributionFilm distribution
Film distribution
charlie meadows
 
ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating System
ON.Lab
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction
Yi Tseng
 

Viewers also liked (14)

Open network operating system (onos)
Open network operating system (onos)Open network operating system (onos)
Open network operating system (onos)
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 
Energías del futuro
Energías del futuroEnergías del futuro
Energías del futuro
 
21 claves-sexualizar-convencer
21 claves-sexualizar-convencer21 claves-sexualizar-convencer
21 claves-sexualizar-convencer
 
Criminalistica.
Criminalistica.Criminalistica.
Criminalistica.
 
Tail f - Why ConfD
Tail f - Why ConfDTail f - Why ConfD
Tail f - Why ConfD
 
OVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
OVNC 2015-Enabling Software-Defined Transformation of Service Provider NetworksOVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
OVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
 
презентация бизнес плана Таль
презентация бизнес плана  Тальпрезентация бизнес плана  Таль
презентация бизнес плана Таль
 
Inter-controller Traffic in ONOS Clusters for SDN Networks
Inter-controller Traffic in ONOS Clusters for SDN Networks Inter-controller Traffic in ONOS Clusters for SDN Networks
Inter-controller Traffic in ONOS Clusters for SDN Networks
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
 
Python (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network AutomationPython (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network Automation
 
Film distribution
Film distributionFilm distribution
Film distribution
 
ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating System
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction
 

Similar to ONOS System Test - ONS2016

Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...
LinkCompanyAdmin
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
Daryl Walleck
 
Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsMastering selenium for automated acceptance tests
Mastering selenium for automated acceptance tests
Nick Belhomme
 
Osquery
OsqueryOsquery
Osquery
Animesh Roy
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos Engineering
SIGHUP
 
Apache Cloudstack QA Strategy
Apache Cloudstack QA StrategyApache Cloudstack QA Strategy
Apache Cloudstack QA Strategy
Sudha R Ponnaganti
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
Pavel Chunyayev
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
Amazon Web Services Korea
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
aragozin
 
Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...
Lucas Jellema
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest
openstackindia
 
Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)
Alexander Shalimov
 
stackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdf
stackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdfstackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdf
stackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdf
NETWAYS
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching Programmability
Robb Boyd
 
Into The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsInto The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applications
Ortus Solutions, Corp
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
Samuel Brown
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Vietnam Open Infrastructure User Group
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
wajrcs
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
Postman
 

Similar to ONOS System Test - ONS2016 (20)

Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
 
Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsMastering selenium for automated acceptance tests
Mastering selenium for automated acceptance tests
 
Osquery
OsqueryOsquery
Osquery
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos Engineering
 
Apache Cloudstack QA Strategy
Apache Cloudstack QA StrategyApache Cloudstack QA Strategy
Apache Cloudstack QA Strategy
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
 
Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest
 
Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)
 
stackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdf
stackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdfstackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdf
stackconf 2024 | How to hack and defend (your) open source by Roman Zhukov.pdf
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching Programmability
 
Into The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsInto The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applications
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 

Recently uploaded

Mastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GISMastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GIS
Safe Software
 
SOCRadar's Hand Guide For the 2024 Paris Olympics--.pdf
SOCRadar's Hand Guide For the 2024 Paris Olympics--.pdfSOCRadar's Hand Guide For the 2024 Paris Olympics--.pdf
SOCRadar's Hand Guide For the 2024 Paris Olympics--.pdf
SOCRadar
 
'Build Your First Website with WordPress' Workshop Introduction
'Build Your First Website with WordPress' Workshop Introduction'Build Your First Website with WordPress' Workshop Introduction
'Build Your First Website with WordPress' Workshop Introduction
Sunita Rai
 
Viswanath_Cover letter_Scrum Master_10+yrs
Viswanath_Cover letter_Scrum Master_10+yrsViswanath_Cover letter_Scrum Master_10+yrs
Viswanath_Cover letter_Scrum Master_10+yrs
cviswanathsai
 
Gurugram Meetup Salesforce integration patterns - 20 July 2024.pptx
Gurugram Meetup Salesforce integration patterns - 20 July 2024.pptxGurugram Meetup Salesforce integration patterns - 20 July 2024.pptx
Gurugram Meetup Salesforce integration patterns - 20 July 2024.pptx
Gupta Pryank
 
Moder Java-WeAreDevelopers - Berlin - 2024.pdf
Moder Java-WeAreDevelopers - Berlin - 2024.pdfModer Java-WeAreDevelopers - Berlin - 2024.pdf
Moder Java-WeAreDevelopers - Berlin - 2024.pdf
RonVeen1
 
Learning Rust with Advent of Code 2023 - Princeton
Learning Rust with Advent of Code 2023 - PrincetonLearning Rust with Advent of Code 2023 - Princeton
Learning Rust with Advent of Code 2023 - Princeton
Henry Schreiner
 
My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)
My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)
My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)
Apk2me
 
Navigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdf
Navigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdfNavigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdf
Navigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdf
Banibro IT Solutions
 
Full stack odoo development solutions provided by Fortune 500 trusted supplier
Full stack odoo development solutions provided by Fortune 500 trusted supplierFull stack odoo development solutions provided by Fortune 500 trusted supplier
Full stack odoo development solutions provided by Fortune 500 trusted supplier
Odoo Red
 
Augmented Reality (AR) in Ionic Apps Transforming User Experiences.pdf
Augmented Reality (AR) in Ionic Apps Transforming User Experiences.pdfAugmented Reality (AR) in Ionic Apps Transforming User Experiences.pdf
Augmented Reality (AR) in Ionic Apps Transforming User Experiences.pdf
Grey Space Computing
 
Literals - A Machine Independent Feature
Literals - A Machine Independent FeatureLiterals - A Machine Independent Feature
Literals - A Machine Independent Feature
21h16charis
 
How Generative AI is Shaping the Future of Software Application Development
How Generative AI is Shaping the Future of Software Application DevelopmentHow Generative AI is Shaping the Future of Software Application Development
How Generative AI is Shaping the Future of Software Application Development
MohammedIrfan308637
 
SOCRadar-2024-Mid-Year-Cybersecurity-Report.pdf
SOCRadar-2024-Mid-Year-Cybersecurity-Report.pdfSOCRadar-2024-Mid-Year-Cybersecurity-Report.pdf
SOCRadar-2024-Mid-Year-Cybersecurity-Report.pdf
SOCRadar
 
The two flavors of Python 3.13 - PyHEP 2024
The two flavors of Python 3.13 - PyHEP 2024The two flavors of Python 3.13 - PyHEP 2024
The two flavors of Python 3.13 - PyHEP 2024
Henry Schreiner
 
Automating Enterprise Workflows with Node.pdf
Automating Enterprise Workflows with Node.pdfAutomating Enterprise Workflows with Node.pdf
Automating Enterprise Workflows with Node.pdf
Jane Brewer
 
Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...
Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...
Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...
kalichargn70th171
 
Transform Your Innovations with Best Product Engineering Services
Transform Your Innovations with Best Product Engineering ServicesTransform Your Innovations with Best Product Engineering Services
Transform Your Innovations with Best Product Engineering Services
David Wilson
 
Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...
Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...
Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...
Trisha Kumari
 
Assessing Mock Classes: An Empirical Study (ICSME 2020)
Assessing Mock Classes: An Empirical Study (ICSME 2020)Assessing Mock Classes: An Empirical Study (ICSME 2020)
Assessing Mock Classes: An Empirical Study (ICSME 2020)
Andre Hora
 

Recently uploaded (20)

Mastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GISMastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GIS
 
SOCRadar's Hand Guide For the 2024 Paris Olympics--.pdf
SOCRadar's Hand Guide For the 2024 Paris Olympics--.pdfSOCRadar's Hand Guide For the 2024 Paris Olympics--.pdf
SOCRadar's Hand Guide For the 2024 Paris Olympics--.pdf
 
'Build Your First Website with WordPress' Workshop Introduction
'Build Your First Website with WordPress' Workshop Introduction'Build Your First Website with WordPress' Workshop Introduction
'Build Your First Website with WordPress' Workshop Introduction
 
Viswanath_Cover letter_Scrum Master_10+yrs
Viswanath_Cover letter_Scrum Master_10+yrsViswanath_Cover letter_Scrum Master_10+yrs
Viswanath_Cover letter_Scrum Master_10+yrs
 
Gurugram Meetup Salesforce integration patterns - 20 July 2024.pptx
Gurugram Meetup Salesforce integration patterns - 20 July 2024.pptxGurugram Meetup Salesforce integration patterns - 20 July 2024.pptx
Gurugram Meetup Salesforce integration patterns - 20 July 2024.pptx
 
Moder Java-WeAreDevelopers - Berlin - 2024.pdf
Moder Java-WeAreDevelopers - Berlin - 2024.pdfModer Java-WeAreDevelopers - Berlin - 2024.pdf
Moder Java-WeAreDevelopers - Berlin - 2024.pdf
 
Learning Rust with Advent of Code 2023 - Princeton
Learning Rust with Advent of Code 2023 - PrincetonLearning Rust with Advent of Code 2023 - Princeton
Learning Rust with Advent of Code 2023 - Princeton
 
My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)
My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)
My Bully Is My Lover Apk CH1 EP4 (Gallery Unlock, MOD)
 
Navigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdf
Navigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdfNavigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdf
Navigating the Digital Supply Chain_ Odoo ERP’s Impact on Logistics.pdf
 
Full stack odoo development solutions provided by Fortune 500 trusted supplier
Full stack odoo development solutions provided by Fortune 500 trusted supplierFull stack odoo development solutions provided by Fortune 500 trusted supplier
Full stack odoo development solutions provided by Fortune 500 trusted supplier
 
Augmented Reality (AR) in Ionic Apps Transforming User Experiences.pdf
Augmented Reality (AR) in Ionic Apps Transforming User Experiences.pdfAugmented Reality (AR) in Ionic Apps Transforming User Experiences.pdf
Augmented Reality (AR) in Ionic Apps Transforming User Experiences.pdf
 
Literals - A Machine Independent Feature
Literals - A Machine Independent FeatureLiterals - A Machine Independent Feature
Literals - A Machine Independent Feature
 
How Generative AI is Shaping the Future of Software Application Development
How Generative AI is Shaping the Future of Software Application DevelopmentHow Generative AI is Shaping the Future of Software Application Development
How Generative AI is Shaping the Future of Software Application Development
 
SOCRadar-2024-Mid-Year-Cybersecurity-Report.pdf
SOCRadar-2024-Mid-Year-Cybersecurity-Report.pdfSOCRadar-2024-Mid-Year-Cybersecurity-Report.pdf
SOCRadar-2024-Mid-Year-Cybersecurity-Report.pdf
 
The two flavors of Python 3.13 - PyHEP 2024
The two flavors of Python 3.13 - PyHEP 2024The two flavors of Python 3.13 - PyHEP 2024
The two flavors of Python 3.13 - PyHEP 2024
 
Automating Enterprise Workflows with Node.pdf
Automating Enterprise Workflows with Node.pdfAutomating Enterprise Workflows with Node.pdf
Automating Enterprise Workflows with Node.pdf
 
Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...
Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...
Experience Enhanced Testing with the Best Test Automation Tools for Salesforc...
 
Transform Your Innovations with Best Product Engineering Services
Transform Your Innovations with Best Product Engineering ServicesTransform Your Innovations with Best Product Engineering Services
Transform Your Innovations with Best Product Engineering Services
 
Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...
Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...
Cal Girls Fort Chandragupt Jaipur 8445551418 Khusi Top Class Girls Call Jaipu...
 
Assessing Mock Classes: An Empirical Study (ICSME 2020)
Assessing Mock Classes: An Empirical Study (ICSME 2020)Assessing Mock Classes: An Empirical Study (ICSME 2020)
Assessing Mock Classes: An Empirical Study (ICSME 2020)
 

ONOS System Test - ONS2016

  • 1. System Testing SDN - A Case Study on ONOS Suibin Zhang, ON.Lab Jon Hall, Ciena
  • 2. Known UNKNOWNs Known KNOWNs Unknown UNKNOWNs Quality Assurance on Software System Subjective Perception ObjectiveReality ✔ 2#ONOSProject
  • 3. 3#ONOSProject • Black/Grey Box Testing – Often mimic usage scenarios – Validity not influenced by internal design • Product Verification/Qualification • Pre-Deployment Verification System Test - Where Used
  • 4. 4#ONOSProject Testing SDN OS – Nontrivial SDN Network Domain Distributed Controllers SDN CTRL 1 SDN CTRL 2 SDN CTRL n APP APPAPP Test Exec. Legacy Network Domain Dependencies
  • 5. 5#ONOSProject • Technical – Accessing heterogeneous, evolving interfaces – Scaling test environment – Facilitate Debugging • Arise from Community/Open Source – Run “anywhere” – Handling test dependencies – Contribution and merging tests Challenges in Building System Tests
  • 7. 7#ONOSProject • Functionality Suite – NB: Intents and Flow operations – SB: OF 1.0 &1.3, NETCONF, OVSDB, etc. • High Availability Suite – Various scenarios of cluster failures • Performance and Scale-out Suites – Intent, flow throughputs, latency as scaling-out – Topology discovery latency as scaling-out • Longevity – Continuous operation under typical deployment scenarios • Selected Use Case Suites – SDNIP App, Segment Routing App ONOS System Test Suites
  • 8. 8#ONOSProject  Establish Test Handles  Run-time Configuration  Test Logic  Reset/Clean Test Env.  Inject Run Params to TestStation  Start Test Cases  Jenkins Plugins  Update Codes  Publish Results Onos System Test CI
  • 9. 9#ONOSProject A Deeper Dive into TestON Onos System Test CI
  • 10. 10#ONOSProject TestON – Key Benefits • TestON o SDN-focused Testing Framework o Test case authoring, execution o Python-based • Key Benefits: o Extensibility – Simplify case authoring by compartmentalizing concerns o Flexibility - Handle heterogeneous test env. OVS, HW, Quagga, etc. o Debuggability - Facilitate troubleshooting
  • 11. 11#ONOSProject *.params *.py*.topo Dependency Details on TestON Framework TestON Core Framework: Logging, Utilities, … Mininet Driver ONOS Rest Driver Quagga Driver ONOS CLI Driver Test Files .params File – XML file, used to pass variables into test, such as order of test cases .topo file – XML File, defines the components of the test Dependency Folder – Config files or Mininet topology files used by the test .py file – Combine TestON and driver functions to define your test cases. Test Cases are split into steps, each of which should have an assertion in them • Driver Files • Can use REST, CLI via SSH, or other custom connection interfaces • Defined in a hierarchical structure • Creates a library of functions to be used in the test
  • 12. 12#ONOSProject ONOS Intent Feature • Set intent through NB REST interface • Validate intent and flows are correctly added • Test end-to-end connectivity in Mininet with the specific selectors System Test Procedure • Need a library to send packets with test-specified selector • Leveraging Python Scapy module System Test Requirement • High-level abstraction of setting end to end connectivity • Can be defined by “Selectors” of MAC, IP, PORT, MPLS label, etc. Example: ONOS Intent Functionality Test
  • 13. 13#ONOSProject Building a Scapy Driver (send/recv user-defined packets) class ScapyCliDriver( Emulator ): def sendPacket( self, iface=None, packet=None, timeout=1 ): try: sendCmd = 'srp( ' if packet: sendCmd += packet else: ... if iface: sendCmd += ", iface='{}'".format( iface ) sendCmd += ', timeout=' + str( timeout ) + ')' self.handle.sendline( sendCmd ) self.handle.expect( self.scapyPrompt ) except: ... TestON |--drivers | |--common | |--api | |--cli | | |--emulator | | |--ScapyCliDriver.py |--tests Example: ONOS’ Intent Functionality Test
  • 14. 14#ONOSProject for hostName in [ “h1”,”h2” ]: # Create two host components with the scapy driver4 main.Scapy.createHostComponent( hostName ) main.step( ”Login to scapy on these new components" ) for host in [ main.h1, main.h2 ]: host.startHostCli() host.startScapy() Using Scapy Library - in Mininet Host Handle <Scapy> <host>192.168.1.101</host> <user>admin</user> <password></password> <type>ScapyCliDriver</type> <connect_order>6</connect_order> </Scapy> TestON |--drivers |--tests |--Example |--Example.py |--Example.params |--Example.topo Example: ONOS’ Intent Functionality Test
  • 15. 15#ONOSProject # Add connectivity from h1 to h2 (unidirectional) addResult = main.ONOS1.addPointIntent( ingress, egress, ethDst, ipDst) main.h2.startFilter() # Start packet filter on host2 main.h1.buildEther( dst=main.h2.hostMac ) # build ethernet frame main.h1.buildIP( dst=main.h2.hostIp ) # Build IP frame main.h1.sendPacket() # Send built packet finished = main.h2.checkFilter() # Check if host2 received any packets Intent Test Case - Using Scapy Driver TestON |--drivers |--tests |--Example |--Example.py |--Example.params |--Example.topo Example: ONOS’ Intent Functionality Test
  • 16. 16#ONOSProject • Parameterize Test Env & Run Var – Jenkins to inject at run time – Test cases deal with “pure” test logic • Extensive Exception Handling in Drivers – Take care of exceptions, timeout – Use “retry” method • Test Dependencies – Run-time Activation – “Dockerize” Fixture (Future Work) • Debug Utilities – Test pausing – Log collation – More (Future Work) • Scale Test Network (Future Work) Lessons Learned and Future Work
  • 17. 17#ONOSProject For more Information • S3 Showcase: “SDN/ONOS System Test” • Wiki: https://wiki.onosproject.org/display/ONOS/System+Tests • Repo: https://gerrit.onosproject.org/#/admin/projects/OnosSystemTest • Github: https://github.com/opennetworkinglab/OnosSystemTest Summary Python-Based Extensibility DebuggabilityFlexibility ONOS Test Suites: Functionality High Availability Performance Scale-out Capability Longevity Use Cases ONOS System Test Highlights Open Source
  • 18. 18#ONOSProject Join the journey @ onosproject.org Software Defined Transformation of Service Provider Networks Q&A

Editor's Notes

  1. Good Afternoon. Welcome to our talk on System Testing SDN I am Suibin Zhang from Open Net… My co-presenter is Jon Hall from Ciena Today we will use ONOS as a case study to present to you some of our learning expereince in developing SDN system tests.
  2. First of all, SDN involves complex software. This is one view of how to quality assuring a complex software system We look at the typical 4 quadrants of subjective perceptions and objective reality.
  3. Applications, Devices – OF, etc. ONOS Network operator qualify ONOS Using Black/grey box approach – test scenarios not influenced by internal design
  4. Building a system integration test is non-trivial - SDN network domain - Controllers, usually in a cluster - Apps How to make a test executor handle control of the complex env?
  5. Pure Technical challenges APIs – fast changing in early product stage; CLI, REST, etc. How to mimic a large network with hundreds/thousands of switches - same time isolating env-caused issues from real product issues Test should facilitate debugging activities – adding in test case hooks to pause, replay Engaging Community – another set of challenges
  6. In ONOS, what we have built.
  7. Describe the cluster components - TestON is a test authoring, execution framework – more details later
  8. Jon will be diving in deeper in to the TestON framework
  9. Applications, Devices – OF, etc. ONOS Network operator qualify ONOS Using Black/grey box approach – test scenarios not influenced by internal design
  10. In summary, we presented to you An SDN System Test Framework That we have used to build all these test suites What enable us to do that is with those benefits