How to re-run a test on a daily platform?
Sometimes you need to troubleshoot the errors reported during a daily chain
You must first connect to the daily lab.
The controller can be reached over SSH master.onap.eu, istanbul.onap.eu, master-weekly.onap.eu.(you SSH key must obviously be referenced see How to add keys to access integration labs?).
Once connected, it is is a "usual ONAP" lab, so you can run your test as in any ONAP platform.
All the configurations of the tests executed during the daily chains can be found under /tmp/xtesting
tests
debian@control01-onap-master:~$ cd /tmp/xtesting
debian@control01-onap-master:/tmp/xtesting$ tree -L 2
.
├── config
├── infrastructure-healthcheck
│ ├── k8s
│ └── k8s-teardown
├── security
│ ├── jdpw_ports
│ ├── kube_hunter
│ ├── nonssl_endpoints
│ ├── root_pods
│ ├── unlimitted_pods
│ └── versions
├── smoke-usecases
│ ├── basic_cds
│ ├── basic_clamp
│ ├── basic_cnf
│ ├── basic_cnf_macro
│ ├── basic_network
│ ├── basic_onboard
│ ├── basic_vm
│ ├── basic_vm_macro
│ ├── cds_resource_resolution
│ └── pnf_macro
├── xtesting-healthcheck
│ ├── core
│ ├── cps-healthcheck
│ ├── full
│ ├── healthdist
│ └── postinstall
└── xtesting-smoke-usecases-robot
├── cmpv2
├── dcaemod
├── hv-ves
├── pnf-registrate
└── ves-collector
33 directories, 1 file
The tests are run using 2 main mechanisms:
k8s job in the onap namespace
docker executed from the controller node
How to replay a kubernetes job?
k8s test
debian@control01-onap-master:~$ kubectl get job -n onap |grep integration
integration-onap-cmpv2 0/1 9d 9d
integration-onap-core 1/1 2m6s 9d
integration-onap-cps-healthcheck 1/1 32s 9d
integration-onap-dcaemod 0/1 9d 9d
integration-onap-full 1/1 2m50s 9d
integration-onap-healthdist 1/1 5m58s 9d
integration-onap-hv-ves 1/1 4m18s 9d
integration-onap-internal-check-certs 0/1 9d 9d
integration-onap-pnf-registrate 1/1 7m36s 9d
integration-onap-postinstall 1/1 101s 9d
integration-onap-ves-collector 1/1 11m 9d
# Delete the job of the test you want to replay
debian@control01-onap-master:~$ kubectl delete job -n onap integration-onap-cps-healthcheck
job.batch "integration-onap-cps-healthcheck" deleted
# Recreate the job (it will automatically relaunch the test pod)
debian@control01-onap-master:~$ cd oom/master/
debian@control01-onap-master:~/oom/master$ ls
deployment.yaml healthcheck-cps-healthcheck.yaml healthcheck-healthdist.yaml healthcheck-pnf-registrate.yaml onap-overrides.yaml
healthcheck-cmpv2.yaml healthcheck-dcaemod.yaml healthcheck-hv-ves.yaml healthcheck-postinstall.yaml xtesting-healthcheck
healthcheck-core.yaml healthcheck-full.yaml healthcheck-internal-check-certs.yaml healthcheck-ves-collector.yaml xtesting-smoke-usecases-robot
kubectl apply -f healthcheck-cps-healthcheck.yaml --validate=false
# Then look at the logs
kubectl logs -n onap integration-onap-cps-healthcheck--1-m7tbt -f
2022-03-07 13:27:41,030 - xtesting.ci.run_tests - INFO - Deployment description:
+-------------------------+----------------------------------------------------------+
| ENV VAR | VALUE |
+-------------------------+----------------------------------------------------------+
| CI_LOOP | daily |
| DEBUG | false |
| DEPLOY_SCENARIO | onap-nofeature-noha |
| INSTALLER_TYPE | oom |
| BUILD_TAG | gitlab_ci-functest-kubespray-baremetal-daily- |
| | master-479785435-onap |
| NODE_NAME | onap_weekly_pod4_master-ONAP-oom |
| TEST_DB_URL | http://testresults.opnfv.org/onap/api/v1/results |
| TEST_DB_EXT_URL | |
| S3_ENDPOINT_URL | |
| S3_DST_URL | |
| HTTP_DST_URL | |
+-------------------------+----------------------------------------------------------+
2022-03-07 13:27:41,061 - xtesting.ci.run_tests - INFO - Loading test case 'cps-healthcheck'...
2022-03-07 13:27:41,217 - xtesting.ci.run_tests - INFO - Running test case 'cps-healthcheck'...
2022-03-07 13:27:41,321 - xtesting.core.robotframework - INFO -
==============================================================================
Actuator :: CPS - Actuator endpoints
==============================================================================
Test CPS Enhanced Healthcheck :: Runs CPS Health Check. It will ch... | PASS |
------------------------------------------------------------------------------
Actuator :: CPS - Actuator endpoints | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output: /var/lib/xtesting/results/cps-healthcheck/output.xml
2022-03-07 13:27:41,326 - xtesting.core.robotframework - INFO - Results were successfully parsed
2022-03-07 13:27:41,395 - xtesting.core.robotframework - INFO - Results were successfully generated
2022-03-07 13:27:41,395 - xtesting.ci.run_tests - INFO - Test result:
+-------------------------+---------------------+------------------+----------------+
| TEST CASE | PROJECT | DURATION | RESULT |
+-------------------------+---------------------+------------------+----------------+
| cps-healthcheck | integration | 00:00 | PASS |
+-------------------------+---------------------+------------------+----------------+
2022-03-07 13:27:41,713 - xtesting.core.testcase - INFO - The results were successfully pushed to DB:
http://testresults.opnfv.org/onap/api/v1/results/6226084d6c44f5001087e92d
2022-03-07 13:27:41,714 - xtesting.ci.run_tests - INFO - Execution exit value: Result.EX_OK
# Note by default it will push the results to the test DB..if you do not want, edit the manifest and remove the -- report option
- args:
- --test
- cps-healthcheck
- --report
How to replay a docker based test?
Several tests are executed by running a docker file on the controller. It is used for
infrastructure tests
security tests
pythonsdk-test tests
docker tests
# Select the test you want to replay (e.g. basic_cds)
debian@control01-onap-master:~$ cd /tmp/xtesting//smoke-usecases/basic_cds/
# run the docker
debian@control01-onap-master:/tmp/xtesting/smoke-usecases/basic_cds$ cat /etc/hosts |grep onap.org && docker run -it --env-file env -v /home/debian/.kube/config:/root/.kube/config -v /home/debian/.config/openstack/clouds.yaml:/root/.config/openstack/clouds.yaml -v /tmp/xtesting/config:/usr/lib/python3.8/site-packages/onaptests/templates/artifacts/config -v /tmp/test:/var/lib/xtesting/results nexus3.onap.org:10003/onap/xtesting-smoke-usecases-pythonsdk:master bash
# you shall be in the docker
# for infrastructure and security tests you can directly run the test
# for pythonsdk you must copy/paste the content of the /etc/hosts (you could also use parameter in the docker exec command if you want), as onap url are not publicaly routable
#
bash-5.1# vi /etc/hosts
# copy the content displayed by the command cat /etc/hosts |grep onap.org
bash-5.1# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 265c7c83aaf0
10.253.0.217 portal.api.simpledemo.onap.org
10.253.0.217 vid.api.simpledemo.onap.org
10.253.0.217 sdc.api.fe.simpledemo.onap.org
10.253.0.217 sdc.api.be.simpledemo.onap.org
10.253.0.217 portal-sdk.simpledemo.onap.org
10.253.0.217 policy.api.simpledemo.onap.org
10.253.0.217 aai.api.sparky.simpledemo.onap.org
10.253.0.217 cli.api.simpledemo.onap.org
10.253.0.217 msb.api.simpledemo.onap.org
10.253.0.217 so.api.simpledemo.onap.org
10.253.0.217 appc.api.simpledemo.onap.org
10.253.0.217 sdnc.api.simpledemo.onap.org
10.253.0.217 nbi.api.simpledemo.onap.org
10.253.0.217 consul.api.simpledemo.onap.org
10.253.0.217 kibana.api.simpledemo.onap.org
10.253.0.217 mr.api.simpledemo.onap.org
10.253.0.217 uui.api.simpledemo.onap.org
10.253.0.217 aaf.api.simpledemo.onap.org
10.253.0.217 clamp.api.simpledemo.onap.org
10.253.0.217 robot.api.simpledemo.onap.org
10.253.0.217 dcae.api.simpledemo.onap.org
10.253.0.217 sdc.workflow.plugin.simpledemo.onap.org
10.253.0.217 sdc.dcae.plugin.simpledemo.onap.org
# execute the xtesting command
bash-5.1# run_tests -t basic_cds
2022-03-07 13:46:13,968 - xtesting.ci.run_tests - INFO - Deployment description:
+-------------------------+----------------------------------------------------------+
| ENV VAR | VALUE |
+-------------------------+----------------------------------------------------------+
| CI_LOOP | daily |
| DEBUG | False |
| DEPLOY_SCENARIO | os-nosdn-nofeature-noha |
| INSTALLER_TYPE | oom |
| BUILD_TAG | gitlab_ci-functest-kubespray-baremetal-daily- |
| | master-479785435-onap |
| NODE_NAME | onap_weekly_pod4_master-ONAP-oom |
| TEST_DB_URL | http://testresults.opnfv.org/onap/api/v1/results |
| TEST_DB_EXT_URL | |
| S3_ENDPOINT_URL | |
| S3_DST_URL | |
| HTTP_DST_URL | |
+-------------------------+----------------------------------------------------------+
2022-03-07 13:46:14,013 - xtesting.ci.run_tests - INFO - Loading test case 'basic_cds'...
2022-03-07 13:46:14,822 DEBUG 25:cds_blueprint_enrichment.py(13) - CDS blueprint enrichment initialization
2022-03-07 13:46:14,839 DEBUG 219:extension.py(13) - found extension EntryPoint(name='basic_clamp', value='onaptests.scenario.basic_clamp:BasicClamp', group='xtesting.testcase')
[....]
2022-03-07 13:46:33,393 INFO 176:run_tests.py(13) - Test result:
+-------------------+---------------------+------------------+----------------+
| TEST CASE | PROJECT | DURATION | RESULT |
+-------------------+---------------------+------------------+----------------+
| basic_cds | integration | 00:18 | PASS |
+-------------------+---------------------+------------------+----------------+
2022-03-07 13:46:33,397 INFO 51:cds_blueprint_enrichment.py(13) - Generate Test report
2022-03-07 13:46:33,477 - xtesting.ci.run_tests - INFO - Execution exit value: Result.EX_OK
2022-03-07 13:46:33,477 INFO 275:run_tests.py(13) - Execution exit value: Result.EX_OK
# note 1: the results are in /tmp/reporting.html and the logs in /tmp/pythonsdk.debug.log
# note 2: the env var set in the env file shall corresponds to the test you run e.g for basic_cds => ONAP_PYTHON_SDK_SETTINGS=onaptests.configuration.cba_enrichment_settings
# note 3 the name of the test is in the test DB and defined as the entry point of xtesting https://github.com/onap/testsuite-pythonsdk-tests/blob/master/setup.cfg
# note 4, if you want to play directly with the python test or sdk code, it is respectively under /usr/lib/python3.8/site-packages/onaptests and /usr/lib/python3.8/site-packages/onapsdk
bash-5.1# ls /usr/lib/python3.8/site-packages/onaptests
__init__.py __pycache__ configuration scenario steps templates utils
bash-5.1# ls /usr/lib/python3.8/site-packages/onapsdk
__init__.py aai clamp constants.py exceptions.py nbi sdc so version.py vid
__pycache__ cds configuration dmaap msb onap_service.py sdnc utils ves