Current Testing
Overall Objectives
Key goals related to testing:
- validate current platform support for specific model-driven NFV use cases and model features
- add value to the FuncTest and CI/CD program of OPNFV by leveraging most (if not all) tests
- include full documentation inside each test case (see vHello_Tacker.sh for an example), including
- Use Case Description
- Pre-State: identifier of required test environment, pre-configuration, etc
- Test Steps and related Assertions (pass/fail criteria): by identifier
- Post-State: description of the system state after the test
- Cleanup: process to return the system to the pre-test state
Test Database Data
Test projects and planned tests are managed through the Swagger API UI at http://testresults.opnfv.org/test/swagger/spec.html#!/spec/update. Details are below.
Complete test database results for Models are available via this query (raw json) or the Swagger UI. This includes default values for fields not set below.
| Test | Swagger API UI Data (create, update) |
|---|---|
| Deployment on Cloud-Native VIM | { |
| Deployment on OpenStack VIM | { "name": "Deployment on OpenStack VIM", "url": "https://git.opnfv.org/models/plain/tests/openstack-deploy.sh", "description": "Deployment of a TOSCA VNF blueprint on an OpenStack-based NFV platform. Deployment of various applications/VNFs with various blueprint-specified deployment options can be validated by this test." } |
| Lifecycle Management on Cloud-Native VIM | { |
| Lifecycle Management on OpenStack VIM | { "name": "Lifecycle Management on OpenStack VIM", "url": "https://git.opnfv.org/models/plain/tests/openstack-lifecycle.sh", "description": "Handling of various application/VNF lifecycle events on an OpenStack-based NFV platform. Lifecycle management of various applications/VNFs with various blueprint-specified lifecycle/policy options can be validated by this test." } |
| Cloudify Hello World | { |
| Tacker Hello World | { "name": "vHello_Tacker", "url": "https://git.opnfv.org/models/plain/tests/vHello_Tacker.sh", "description": "A basic TOSCA blueprint based test using Tacker as VNFM. A single-node simple python web server, connected to two internal networks (private and admin), and accessible via a floating IP. Based upon the OpenStack Tacker project's 'tosca-vnfd-hello-world' blueprint, as modified/extended for testing of Tacker-supported features as of OpenStack Newton." } |
Earlier Information (cleanup in progress)
Test Cases
Following is a draft set of use cases, with contributors and relation to SDOs or other OPNFV projects.
Title | Contributors | Related to | Description | Status |
|---|---|---|---|---|
| Bryan | Cloudify Tacker | A basic "Hello World" TOSCA blueprint for a single-node Python web server. The same basic design is used in both tests, with the scripts supporting parameters to invoke one or more steps in the sequence: | Tacker: working on JOID and Apex. Cloudify: working on JOID. |
Valentin Boucher | 3GPP, Cloudify | Deploys Metaswitch's Clearwater IMS through a blueprint developed by Orange for OPNFV. | Used in Functest regularly. Needs updating to current Cloudify version. | |
| vLamp_Ansible | Bryan | Ansible | Deploys the Ansible-based lampstack blueprint defined by the OpenStack Operators group for the Interop Challenge. Will be migrated to a TOSCA-based blueprint. | Ansible: Working on JOID. Apex testing in progress. |
| Bryan | Attempt to deploy OpenWRT on OPNFV. Will be converted to a TOSCA blueprint once working. | Early development. | ||
| Intrusion Detector | Security, Copper | As described in unobtrusive-intrusion-detection-in-openstack (OpenStack Vancouver), setup a Network IDS (Snort, Suricata) and Host IDS (OSSEC), and run thru various intrusion scenarios. | In planning | |
SFC | Bryan | Copper, SFC, VNFFG | ||
Clustering | Bryan | Copper | ||
GeoDiversity |
| Multisite | ||
Scaling |
| Copper | ||
Reservation |
| Promise, RS | ||
L3VPN | Bryan | SDNVPN | ||
LSO |
| MEF, ODL | ||
| IoTDM | Bryan | OMA, ODL | ||
| MMS | Bryan | OMA | ||
vEPC/vIMS/ | Prakash | Models/Domino/ VNFFG | Review OAI and Opensource vEPC to expose one or more Descriptors to use in OPPNFV MANO Projects. Link for vEPC : https://github.com/networkedsystemsIITB/NFV_LTE_EPC Link for OAI : https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/OpenAirUsage vIMS: deployment and testing available for OAI with Juju VNFM and ABOT functional and performance testing framework: https://jujucharms.com/u/abotcharm/abot-oai-epc-bundle/ and for vIMS: https://jujucharms.com/u/abotcharm/abot-clearwater-ims-bundle/ | In planning |
Test Design
This section will include an overview of the design approach for each tested use case.
Title | Design Approach |
|---|---|
| vHello | Leverage vIMS, simplifying it to deploy the Cloudify HelloWorld example blueprint. |
vPing | Leverage vPing, adding TOSCA model. |
Leverage vIMS, documenting model features supported. | |
SFC | Leverage SFC, adding additional deployment variations to exercise additional features. |
Clustering | Leverage vPing, deploy clusters via availability zones and host aggregates. |
GeoDiversity | Leverage vPing, deploy clusters via cells and regions. |
Scaling | Scale HTTP server VNF up/down/in/out. |
Reservation | Leverage Promise tests, adding TOSCA model. |
L3VPN | Leverage L3VPN tests, adding TOSCA model. |
LSO | Leverage ODL Unimgr YANG model (when available). |
| IoTDM | Leverage
|
| MMS | Leverage |
Test Utilities
| Title | Contributors | Related to | Description |
|---|---|---|---|
| cloudify-setup.sh | Bryan | Cloudify | Setup script for Cloudify Manager and Cloudify CLI based tests. How to use: |
| tacker-setup.sh | Bryan | Tacker | Setup script for Tacker API (planned) and Tacker CLI based tests. How to use:$ bash tacker-setup.sh [tacker-cli|tacker-api] [init|setup|clean] tacker-cli: use Tacker CLI tacker-api: use Tacker RESTful API init: Initialize docker container setup: Setup of Tacker in the docker container clean: Clean |
| ansible-setup.sh | Bryan | Ansible | Setup script for Ansible CLI based tests. How to use:$ bash ansible-setup.sh [init|setup|clean] init: Initialize docker container setup: Setup of Ansible in the docker container clean: Clean |
| juju-setup.sh | Bryan | Juju | Setup script for Juju CLI based tests. How to use: scripts to bootstrap Juju on JOID : https://git.opnfv.org/joid/tree/juju |
Open Source VNFs
For potential use in model testing: See List Of VNFs, References.
Test Database Data
Current planned tests for the Colorado release are managed through the Swagger API UI at http://testresults.opnfv.org/test/swagger/spec.html#!/spec/update. Details are below.
| Test | Swagger API UI Data (for update of the database as needed) |
|---|---|
| Cloudify Hello World | { |
| Tacker Hello World | { "name": "vHello_Tacker", "url": "https://git.opnfv.org/models/plain/tests/vHello_Tacker.sh", "description": "A basic TOSCA blueprint based test using Tacker as VNFM. A single-node simple python web server, connected to two internal networks (private and admin), and accessible via a floating IP. Based upon the OpenStack Tacker project's 'tosca-vnfd-hello-world' blueprint, as modified/extended for testing of Tacker-supported features as of OpenStack Newton." } |
| OpenBaton Hello World | { "name": "vHello_OpenBaton", "url": "https://git.opnfv.org/models/plain/tests/vHello_OpenBaton.sh", "description": "A basic TOSCA blueprint based test using OpenBaton as VNFM. A single-node simple python web server, connected to two internal networks (private and admin), and accessible via a floating IP. Based upon the OpenStack Tacker project's 'tosca-vnfd-hello-world' blueprint, as modified/extended for testing of OpenBaton-supported features as of OpenStack Newton." } |
| JuJu Hello World | { "name": "vHello_JuJu", "url": "https://git.opnfv.org/models/plain/tests/vHello_JuJu.sh", "description": "A basic TOSCA blueprint based test using Juju as VNFM. A single-node simple python web server, connected to two internal networks (private and admin), and accessible via a floating IP. Based upon the OpenStack Tacker project's 'tosca-vnfd-hello-world' blueprint, as modified/extended for testing of Juju-supported features as of OpenStack Newton." } |