OPNFV Test ecosystem
There are several projects dealing with integration and testing (see https://wiki.opnfv.org/).
A global overview can be described as follow:
See Testing Ecosystem details on the elaboration of the figure
We consider the projects referenced on the wiki main page:
|CPerf||Controller performance testing|
Detect Bottlenecks in OPNFV solution
VIM and NFVI funcionnal testing
Umbrella project for functional testing
|Platform Performance Benchmarking|
Storage Perfomance testing
Data-plane performance testing
Verification of the infrastructure compliance when running VNF applications.
Umbrella project for performance testing
|Test OPNFV validation criteria for use of OPNFV trademarks|
All the test projects are closely connected to additional projects:
- Pharos: The Pharos project deals with the creation of a federated NFV test capability that is geographically and technically diverse and hosted by different companies in the OPNFV community. This requires developing a baseline specification for an OPNFV "compliant" test environment along with tools, processes and documentation to support integration, testing and collaborative development projects with needed infrastructure and the tooling.
- Releng: release engineering that deals with git/gerrit and jenkins management
Agreed During testing meeting 1/12: http://ircbot.wl.linuxfoundation.org/meetings/opnfv-testperf/2016/opnfv-testperf.2016-12-01-15.00.html
|weekly: generic test full||X||X|
weekly: Tempest and Rally full (OpenStack)
daily: Yardstick Tier 2 (should be daily)
Vsperf, storperf Lite test case
(after they integrate with yardstick)
daily: Doctor, promise, bgpvpn, security_scan,..)
daily: Yardstick Tier 1
( HA, IPV6, SFC, KVM,...)
daily: vPing, tempest smoke, Rally Sanity
daily: Yardstick Tier 0
(Lite generic test)
Test cases can be developed by the test projects and/or by the feature projects.
Feature projects are responsible of their own tests as well as the associated troubleshooting.
Test projects are in charge to run their own test cases and help feature projects to be integrated in CI to meet test criteria for the release.
The test coverage is not an easy task. Test projects must focus on NFVI, however, in order to test efficiently NFVI, it may be useful to test VNFs (which are out of OPNFV scope).
We may suggest several views:
- per domain
- per component
- per ETSI domain
In addition of tags and tier, it is possible to specify a domain in the test case definition.
It would be interesting to agree on the different domains in order to leverage such informations for a domain map.
it is possible to associate several domains for a test case e.g. orchestration, vnf for cloudify_ims
See dedicated testing coverage page
Test dashboards shall give a good overview of the different tests on the different PODs. The test dashboards keep evolving along with releases with diverse options and rich enhancements.
- Landing page: http://testresults.opnfv.org/testing
- Catalogue: http://testresults.opnfv.org/testing/#!/select/visual
- Test case selection: http://testresults.opnfv.org/testing/#!/select/selectCase
- Statistic page
- reporting: http://testresults.opnfv.org/reporting/
- dashboarding: https://opnfv.biterg.io/app/kibana#/dashboard/Testing
- TestAPI auto doc: http://artifacts.opnfv.org/releng/docs/testapi.html
- swagger: http://testresults.opnfv.org/test/swagger/spec.html
- TestAPI page(experimental): http://testresults.opnfv.org/test
For Brahmaputra 3 dashboards have been created:
- Linux Foundation Dashboard using test DB dataset Through the test API
- Functest home made js dashboard using test DB dataset Through the test API
- Grafana portal using dataset pushed into influxDB for Yardstick
In Colorado, the target dashboards are:
- ELK (Elasticsearch/Logstash/kibana) as an evolution of the Functest home made js dashboard
- Grafana portal using dataset pushed into InfluxDB
Basically if you are graphing test status, it will be recommended to use the first option. If you need to graph results = f(time) for longer duration test and visualize bandwidth, lattency, ..evolution, it will be recommended to use InfluxDB/grafana.
Contact the test working group for any question.
How to get support from test projects?
- Contact the testing group
- weekly meeting
- mail: test-wg AT lists.opnfv.org
- IRC: #opnfv-testperf / ...)
- Declare your project in the test DB: http://testresults.opnfv.org/testapi/test_projects
- Declare your test cases in the DB: http://testresults.opnfv.org/testapi/test_projects/doctor/cases
- Provide your constraint (scenarios/installers) e.g. doctor => Apex only
- Provide your test success criteria* e.g. doctor final status should be PASS
- Develop the code of the tests https://git.opnfv.org/cgit/doctor/tree/tests
- Create JIRA in Functest/Yardstick/xPerf for integration
- Work with test team on integration (CI pipeline, dashboard, …)
- Troubleshoot on the different scenarios
- Document your tests