blob: e566f141694249ffb69566413af40f483f438194 [file] [log] [blame]
Jon Hall7bd8d0f2021-04-12 14:32:16 -07001..
2 SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
3 SPDX-License-Identifier: Apache-2.0
4
5Fabric Testing
6==============
7
8
9Test Framework
10--------------
11
12We use `TestON`_ to connect to and manipulate different test components using CLI or REST
13API. These tests use a common set of library functions for Segment Routing testing to
14make writing new tests easier. For Aether, we are porting our existing set of Segment
15Routing functionality tests written for Mininet to using Stratum hardware switches.
16
17We use Jenkins to schedule and trigger our tests which run against either the QA Pod or
18the Staging Pod.
19
20Resources:
21^^^^^^^^^^
22
23#. `ONOS System Test Guide`_
24#. `Segment Routing Funcationality Test Plan`_
25
26Integration Testing
27-------------------
28
29We are in the process of moving existing functionality tests to written for OVS or BMv2
30software switches running in Mininet to running on hardware switches, starting with
31bridging and routing functionality. These tests will run nightly on the QA Pod.
32
33Failure/Recovery Performance Testing
34------------------------------------
35
36We run several experiments every night on the Staging Pod and measure the performance of
37Aether during the experiment.
38The test job can be found in Aether Jenkins under `tost-teston-staging-nightly`.
39
40#. Port Down/Up
41
42 * **Summary**: Uses onos CLI `portstate` command to send gNMI request to disable/enable
43 a port on a leaf leading to a spine. There are two versions of this test, one on the
44 access leaf and one on the upstream leaf.
45
46 * **Test code**:
47
48 * `Access Leaf Port Failure/Recovery Test`_
49
50 * `Upstream Leaf Port Failure/Recovery Test`_
51
52#. Stratum Agent Stop/Start
53
54 * **Summary**: Uses Kubernetes to delete/restart the stratum pod on a spine
55
56 * **Test code**:
57
58 * `Stratum Restart Test`_
59
60#. ONL Shutdown/Startup
61
62 * **Summary**: Restart ONL on a spine
63
64 * **Test code**:
65
66 * `ONL Reboot Test`_
67
68#. ONOS Node Reboot
69
70 * **Summary**: Restart each ONOS node in the cluster one by one
71
72 * **Test code**: To be implemented
73
74 * `Rolling ONOS Restart Test`_
75
76.. _TestON: https://github.com/opennetworkinglab/OnosSystemTest
77.. _ONOS System Test Guide: https://wiki.onosproject.org/display/ONOS/System+Testing+Guide
78.. _Segment Routing Funcationality Test Plan: https://wiki.opencord.org/display/CORD/Test+Plan+-+Fabric+Control
79.. _Access Leaf Port Failure/Recovery Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SReNBLeafSpinePortstateFailure
80.. _Upstream Leaf Port Failure/Recovery Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRupstreamLeafSpinePortstateFailure
81.. _Stratum Restart Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart
82.. _ONL Reboot Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRONLReboot
83.. _Rolling ONOS Restart Test: https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON/tests/USECASE/SegmentRouting/SRStaging/SRrollingRestart