blob: e566f141694249ffb69566413af40f483f438194 [file] [log] [blame]
..
SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
SPDX-License-Identifier: Apache-2.0
Fabric Testing
==============
Test Framework
--------------
We use `TestON`_ to connect to and manipulate different test components using CLI or REST
API. These tests use a common set of library functions for Segment Routing testing to
make writing new tests easier. For Aether, we are porting our existing set of Segment
Routing functionality tests written for Mininet to using Stratum hardware switches.
We use Jenkins to schedule and trigger our tests which run against either the QA Pod or
the Staging Pod.
Resources:
^^^^^^^^^^
#. `ONOS System Test Guide`_
#. `Segment Routing Funcationality Test Plan`_
Integration Testing
-------------------
We are in the process of moving existing functionality tests to written for OVS or BMv2
software switches running in Mininet to running on hardware switches, starting with
bridging and routing functionality. These tests will run nightly on the QA Pod.
Failure/Recovery Performance Testing
------------------------------------
We run several experiments every night on the Staging Pod and measure the performance of
Aether during the experiment.
The test job can be found in Aether Jenkins under `tost-teston-staging-nightly`.
#. Port Down/Up
* **Summary**: Uses onos CLI `portstate` command to send gNMI request to disable/enable
a port on a leaf leading to a spine. There are two versions of this test, one on the
access leaf and one on the upstream leaf.
* **Test code**:
* `Access Leaf Port Failure/Recovery Test`_
* `Upstream Leaf Port Failure/Recovery Test`_
#. Stratum Agent Stop/Start
* **Summary**: Uses Kubernetes to delete/restart the stratum pod on a spine
* **Test code**:
* `Stratum Restart Test`_
#. ONL Shutdown/Startup
* **Summary**: Restart ONL on a spine
* **Test code**:
* `ONL Reboot Test`_
#. ONOS Node Reboot
* **Summary**: Restart each ONOS node in the cluster one by one
* **Test code**: To be implemented
* `Rolling ONOS Restart Test`_
.. _TestON: https://github.com/opennetworkinglab/OnosSystemTest
.. _ONOS System Test Guide: https://wiki.onosproject.org/display/ONOS/System+Testing+Guide
.. _Segment Routing Funcationality Test Plan: https://wiki.opencord.org/display/CORD/Test+Plan+-+Fabric+Control
.. _Access Leaf Port Failure/Recovery Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SReNBLeafSpinePortstateFailure
.. _Upstream Leaf Port Failure/Recovery Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRupstreamLeafSpinePortstateFailure
.. _Stratum Restart Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart
.. _ONL Reboot Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRONLReboot
.. _Rolling ONOS Restart Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRrollingRestart