...
- infrastructure-healthcheck
- healthcheck
- smoke-usecases
- candidate-usecases
- security
- benchmark
The testing part
Your tests must be fully automated...
Your tests must be fully automated. It means that it shall take into account the env on which it is executed, setup the resources, run the tests, delete the resources created for the test
if you are using non open source VNF, proprietary third components/equipments you will not be able to fully automate.
...
You can develop your test using any language (python, bash, robotframework, go..) and any framework.
...and integrated in a docker based on Xtesting
However your test suites must be "xtestingized", it means they must be embedded in a docker file leveraging Xtesting.
...
*: note that Xtesting is open source so if your favorite framework is missing you can add it
The CI part
Your tests must be declared in the DB...
for that you need to have access to the common test DB used by OPNFV and ONAP: testresults.opnfv.org
An account onap-integration has been created. Public SSH keys of the contributors have been pushed to grant access to this machine.
Once log you can directly access to the database
Code Block | ||
---|---|---|
| ||
$ mongo
MongoDB shell version: 3.2.16
connecting to: test
Server has startup warnings:
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten]
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten]
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten]
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
2020-10-01T07:54:55.852+0000 I CONTROL [initandlisten]
singleNodeRepl:PRIMARY> |
As DB admin, you may have to create/delete/update objects:
- pods (i.e. labs allowed to push results to the DB): http://testresults.opnfv.org/onap/api/v1/pods
- projects: http://testresults.opnfv.org/onap/api/v1/projects
- testcases (per projects): http://testresults.opnfv.org/onap/api/v1/projects/integration/cases
It is a basic Mongo DB, the different fields can be seen when accessing to the DB through the API.
Declare a new pod
Code Block | ||
---|---|---|
| ||
singleNodeRepl:PRIMARY> use onap
switched to db onap
singleNodeRepl:PRIMARY> show collections
deployresults
pods
projects
results
scenarios
test
testcases
users
singleNodeRepl:PRIMARY> db.pods.insert({"name":"NEW_LAB_NAME","creator":"Cloud X","role":"gating","details":"contact: The Admin of the lab","creation_date":"2020-10-15 8:00:00"})
|
Create a new use case
Code Block | ||
---|---|---|
| ||
db.testcases.insert({'name':'basic_cnf', 'project_name': 'integration', 'tier':'smoke-usecases', 'version': '>guilin', 'description':'Test the creation of simple cnf (nginx)', 'domains': 'onap', 'tags':'cnf,multicloud,so,k8splugin', 'catalog_description':'basic cnf'}) |
... and in the CI
sdsdds
Xtesting references:
- the official xtesting documentation: https://xtesting.readthedocs.io/en/latest/
Xtesting slide deck:http://testresults.opnfv.org/functest/xtesting/
Xtesting 2020 slide deck update: http://testresults.opnfv.org/functest/xtesting2020/
...