-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
************************
:numbered:
:maxdepth: 2
-Version history
-===============
-+------------+----------+------------------+----------------------------------+
-| **Date** | **Ver.** | **Author** | **Comment** |
-| | | | |
-+------------+----------+------------------+----------------------------------+
-| 2017-01-23 | 1.0.0 | Morgan Richomme | Creation for Danube |
-+------------+----------+------------------+----------------------------------+
-| 2017-08-16 | 1.0.1 | Morgan Richomme | Adaptations for Euphrates |
-| | | | - move generic part to Testing |
-| | | | developer guide |
-| | | | - move reporting part to functest|
-| | | | user guide |
-| | | | - update test case list |
-| | | | - include auto generated core |
-| | | | documentation |
-+------------+----------+------------------+----------------------------------+
-
============
Introduction
============
Functest is a project delivering test containers dedicated to OPNFV.
It includes the tools, the scripts and the test scenarios.
-Until Danube, Functest produced 2 docker files based on Ubuntu 14.04:
-
- * x86 Functest: https://hub.docker.com/r/opnfv/functest/
- * aarch64 Functest: https://hub.docker.com/r/opnfv/functest_aarch64/
-
In Euphrates Alpine containers have been introduced in order to lighten the
container and manage testing slicing. The new containers are created according
to the different tiers:
* functest-features: https://hub.docker.com/r/opnfv/functest-features/
* functest-components: https://hub.docker.com/r/opnfv/functest-components/
* functest-vnf: https://hub.docker.com/r/opnfv/functest-vnf/
- * functest-parser: https://hub.docker.com/r/opnfv/functest-parser/
* functest-restapi: https://hub.docker.com/r/opnfv/functest-restapi/
Standalone functest dockers are maintained for Euphrates but Alpine containers
are recommended.
-Functest can be described as follow:
-
- +----------------------+
- | |
- | +--------------+ | +-------------------+
- | | | | Public | |
- | | Tools | +------------------+ OPNFV |
- | | Scripts | | | System Under Test |
- | | Scenarios | | | |
- | | | | | |
- | +--------------+ | +-------------------+
- | |
- | Functest Docker |
- | |
- +----------------------+
+Functest can be described as follow::
+
+ +----------------------+
+ | |
+ | +--------------+ | +-------------------+
+ | | | | Public | |
+ | | Tools | +------------------+ OPNFV |
+ | | Scripts | | | System Under Test |
+ | | Scenarios | | | |
+ | | | | | |
+ | +--------------+ | +-------------------+
+ | |
+ | Functest Docker |
+ | |
+ +----------------------+
Functest internal test cases
============================
* vping_ssh
* vping_userdata
* odl
- * odl-netvirt
- * odl-fds
* rally_full
* rally_sanity
* tempest_smoke_serial
The main internal test cases are in the opnfv_tests subfolder of the
repository, the internal test cases can be grouped by domain:
- * sdn: odl, odl_netvirt, odl_fds
- * openstack: api_check, connection_check, snaps_health_check, vping_ssh, vping_userdata, tempest_*, rally_*
+ * sdn: odl, odl_fds
+ * openstack: api_check, connection_check, snaps_health_check, vping_ssh,
+ vping_userdata, tempest_*, rally_*
* vnf: cloudify_ims
-If you want to create a new test case you will have to create a new folder under
-the testcases directory (See next section for details).
+If you want to create a new test case you will have to create a new folder
+under the testcases directory (See next section for details).
Functest external test cases
============================
* doctor
* domino
* fds
- * parser
* promise
* refstack_defcore
* snaps_smoke
* functest-odl-sfc
* orchestra_clearwaterims
* orchestra_openims
- * cloudify_vrouter
+ * vyos_vrouter
* juju_vepc
External test cases integrated in previous versions but not released in
The code to run these test cases is hosted in the repository of the project.
Please note that orchestra test cases are hosted in Functest repository and not
-in orchestra repository. Cloudify_vrouter and juju_vepc code is also hosted in
+in orchestra repository. Vyos_vrouter and juju_vepc code is also hosted in
functest as there are no dedicated projects.
Functest is a framework.
-Historically Functest is released as a docker file, including tools, scripts and
-a CLI to prepare the environment and run tests.
-It simplifies the integration of external test suites in CI pipeline and provide
-commodity tools to collect and display results.
+Historically Functest is released as a docker file, including tools, scripts
+and a CLI to prepare the environment and run tests.
+It simplifies the integration of external test suites in CI pipeline and
+provide commodity tools to collect and display results.
Since Colorado, test categories also known as **tiers** have been created to
group similar tests, provide consistent sub-lists and at the end optimize
Feature, unit and vnf_base inherit from testcase::
- +-----------------------------------------+
- | |
- | TestCase |
- | |
- | - init() |
- | - run() |
- | - push_to_db() |
- | - is_successful() |
- | |
- +-----------------------------------------+
- | | |
- V V V
- +--------------------+ +--------------+ +--------------------------+
- | | | | | |
- | feature | | unit | | vnf |
- | | | | | |
- | | | | | - prepare() |
- | - execute() | | | | - deploy_orchestrator() |
- | BashFeature class | | | | - deploy_vnf() |
- | | | | | - test_vnf() |
- | | | | | - clean() |
- +--------------------+ +--------------+ +--------------------------+
+ +----------------------------------------------------------------+
+ | |
+ | TestCase |
+ | |
+ | - init() |
+ | - run() |
+ | - push_to_db() |
+ | - is_successful() |
+ | |
+ +----------------------------------------------------------------+
+ | | | |
+ V V V V
+ +--------------------+ +---------+ +------------------------+ +-----------------+
+ | | | | | | | |
+ | feature | | unit | | vnf | | robotframework |
+ | | | | | | | |
+ | | | | |- prepare() | | |
+ | - execute() | | | |- deploy_orchestrator() | | |
+ | BashFeature class | | | |- deploy_vnf() | | |
+ | | | | |- test_vnf() | | |
+ | | | | |- clean() | | |
+ +--------------------+ +---------+ +------------------------+ +-----------------+
Testcase
.. raw:: html
:url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.vnf.html
+Robotframework
+--------------
+.. raw:: html
+ :url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.robotframework.html
+
see `[5]`_ to get code samples
In order to simplify the creation of test cases, Functest develops also some
functions that are used by internal test cases.
Several features are supported such as logger, configuration management and
-Openstack capabilities (snapshot, clean, tacker,..).
-These functions can be found under <repo>/functest/utils and can be described as
-follows::
+Openstack capabilities (tacker,..).
+These functions can be found under <repo>/functest/utils and can be described
+as follows::
functest/utils/
|-- config.py
|-- decorators.py
|-- env.py
|-- functest_utils.py
- |-- openstack_clean.py
- |-- openstack_snapshot.py
|-- openstack_tacker.py
`-- openstack_utils.py
-It is recommended to use the SNAPS-OO library for deploying OpenStack instances.
-SNAPS `[4]`_ is an OPNFV project providing OpenStack utils.
+It is recommended to use the SNAPS-OO library for deploying OpenStack
+instances. SNAPS `[4]`_ is an OPNFV project providing OpenStack utils.
TestAPI