From 9d6a6762ed7a2c5b7217c0eafaefee9dad49544f Mon Sep 17 00:00:00 2001 From: mrichomme Date: Wed, 16 May 2018 09:06:11 +0200 Subject: Add xtesting to official ONAP repo provides the files to build a xtesting-onap-repo docker file it inherits xtesting capabilities Issue-ID: INT-499 Change-Id: Ic30d1ef750e9a0ac25b1b1af49fb88d0ba8a64e8 Signed-off-by: mrichomme --- test/xtesting/robot/Dockerfile | 26 +++++ test/xtesting/robot/README.md | 93 +++++++++++++++++ test/xtesting/robot/testcases.yaml | 127 ++++++++++++++++++++++++ test/xtesting/robot/thirdparty-requirements.txt | 15 +++ 4 files changed, 261 insertions(+) create mode 100644 test/xtesting/robot/Dockerfile create mode 100644 test/xtesting/robot/README.md create mode 100644 test/xtesting/robot/testcases.yaml create mode 100644 test/xtesting/robot/thirdparty-requirements.txt (limited to 'test/xtesting') diff --git a/test/xtesting/robot/Dockerfile b/test/xtesting/robot/Dockerfile new file mode 100644 index 000000000..5d8d26ea2 --- /dev/null +++ b/test/xtesting/robot/Dockerfile @@ -0,0 +1,26 @@ +FROM opnfv/xtesting + +ARG OPENSTACK_TAG=stable/pike +ARG OPNFV_TAG=master +ARG ONAP_TAG=master + +ENV PYTHONPATH $PYTHONPATH:/src/testing-utils/eteutils + +COPY thirdparty-requirements.txt thirdparty-requirements.txt +RUN apk --no-cache add --virtual .build-deps --update \ + python-dev build-base linux-headers libffi-dev \ + openssl-dev libjpeg-turbo-dev && \ + git clone --depth 1 https://git.onap.org/testsuite -b $ONAP_TAG /var/opt/OpenECOMP_ETE && \ + git clone --depth 1 https://git.onap.org/testsuite/properties -b $ONAP_TAG /share/config && \ + git clone --depth 1 https://git.onap.org/testsuite/python-testing-utils -b $ONAP_TAG /src/testing-utils && \ + pip install \ + -chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG \ + -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$OPNFV_TAG \ + -rthirdparty-requirements.txt \ + -e /src/testing-utils && \ + rm -r thirdparty-requirements.txt /src/testing-utils/.git /share/config/.git \ + /var/opt/OpenECOMP_ETE/.git && \ + apk del .build-deps + +COPY testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml +CMD ["run_tests", "-t", "all"] diff --git a/test/xtesting/robot/README.md b/test/xtesting/robot/README.md new file mode 100644 index 000000000..428cb3fa9 --- /dev/null +++ b/test/xtesting/robot/README.md @@ -0,0 +1,93 @@ +# Xtesting-onap-robot +Reuse of the Xtesting framework to onboard ONAP robot tests +It consists in 3 files: + * Dockerfile: create your dockerfile. For Beijing, it shall be generated manually. You can use a non official version [4] + * testcases.yaml: the list of the testcases based on robotframework tags as defined in ONAp repo [3] + * thirdparty-requirements.txt: dependencies needed by the Dockerfile + +## Configuration + +To launch Xtesting ONAP robot you need 2 files + * env + * onap.properties: list of ONAP endpoints (can be found on the robot VM). Depending from where you launch the tests, +please check that the IP addresses are reachable. + +As Xtesting supports both Openstack and Kubernetes, the env files shall be set accordingly. + +env file +``` +INSTALLER_TYPE=heat +DEPLOY_SCENARIO=os-nosdn-nofeature-ha +EXTERNAL_NETWORK=ext-network +NODE_NAME=pod4-orange-heat1 +TEST_DB_URL=hhttp://testresults.opnfv.org/onap/api/v1/results +BUILD_TAG=jenkins-functest-kolla-baremetal-daily-amsterdam-222 +``` + +All the values of the env file are not mandatory. + +### INSTALLER_TYPE +It indicates how you deploy your ONAP solution. The possible values are heat or oom. + +### DEPLOY_SCENARIO +If you do not precise DEPLOY_SCENARIO, it will be set to os-nosdn-nofeature-nohai by default, which means +Openstack / No Additional SDN controller / No Additional feature / no HA mode +This parameter can be useful if you manage several infrastructure and want to filter the results. +Other possible scenario: + * k8-nosdn-nofeature-ha (Kubernetes with no add-ons) + * os-odl-nofeature-ha (Openstack with Opendaylight SDN controller) + +### EXTERNAL_NETWORK (Openstack only) +You must precise it if it is not the first network with router:external=True + +### KUBERNETES_PROVIDER (Kubernetes only) +This parameter is set to local by default + +### KUBE_MASTER_URL (Kubernetes only) +You must indicate your Kubernetes Master URL. + +### KUBE_MASTER_IP (Kubernetes only) +You must indicate your Kubernetes Master IP. + +### NODE_NAME +The NODE_NAME is the name of the infrastructure that you declared in the Test DB. If you do not want to report the +results to the Test Database, you do not need to precise this parameter. + +### TEST_DB_URL +This parameter corresponds to the Test Database FQDN. +If you do not want to report the results to the Test Database, you do not need to precise this parameter. + +You can reference either your own local database or a public Database (You must be sure that your NODE_NAME has been declared on +this database). If so, and if you precise the flag to report the results, the test results will be automatically pushed. + +### BUILD_TAG +This parameter is used to retrieve the version (amsterdam in the example) for the publication in the test database. +If you do not publish the results, you can omit it. +It is based on an historical regex setup for OPNFV CI/CD chains. + +All the parameters are detailed in Functest user guide [1]. + +## onap.properties + +This file includes all the ONAP end points. It is built at ONAP installation and can be found on the ONAP Robot VM. + +# Launch xtesting-onap-robot + +You can run the test with the following command: + +sudo docker run --env-file -v :/share/config/integration_vm_properties.py colvert22/functest-onap:latest + +By default it will execute all the tests corresponding to the command bash -c 'run_tests -t all' + +If you want to execute only a subset of the tests you may precise the test cases using -t: bash -c 'run_tests -t robot_dcae' + +The possible test cases are indictaed in the testcases.yaml and are based on robotframework tags. + +If you want to push the results to the database, you can use the -r option: bash -c 'run_tests -t all -r' + +# References + +* [1] Functest User Guide: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/userguide/index.html +* [2] Xtesting page: https://wiki.opnfv.org/display/functest/Xtesting +* [3] Onap robot repo: https://git.onap.org/testsuite/ +* [4] https://hub.docker.com/r/colvert22/xtesting-onap-robot/ diff --git a/test/xtesting/robot/testcases.yaml b/test/xtesting/robot/testcases.yaml new file mode 100644 index 000000000..484a7f011 --- /dev/null +++ b/test/xtesting/robot/testcases.yaml @@ -0,0 +1,127 @@ +--- +tiers: + - + name: onap + order: 1 + ci_loop: '(daily)|(weekly)' + description: >- + Set of basic Functional tests to validate the ONAP installation. + testcases: + - + case_name: robot_healthcheck + project_name: functest + criteria: 100 + blocking: true + description: >- + This test case verifies the basic ONAP API: appc, sdnc,so, + vid, ....based on the default robot tests + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.robotframework' + class: 'RobotFramework' + args: + suites: + - /var/opt/OpenECOMP_ETE/robot/testsuites/health-check.robot + include: + - core + variablefile: + - '/share/config/integration_robot_properties.py' + - '/share/config/integration_vm_properties.py' + - '/share/config/integration_preload_parameters.py' + + - + case_name: robot_api + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case verifies DCAE api + based on the default robot tests + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.robotframework' + class: 'RobotFramework' + args: + suites: + - /var/opt/OpenECOMP_ETE/robot/testsuites/health-check.robot + include: + - api + variablefile: + - '/share/config/integration_robot_properties.py' + - '/share/config/integration_vm_properties.py' + - '/share/config/integration_preload_parameters.py' + + - + case_name: robot_dcae + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case verifies DCAE api + based on the default robot tests + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.robotframework' + class: 'RobotFramework' + args: + suites: + - /var/opt/OpenECOMP_ETE/robot/testsuites/health-check.robot + include: + - dcae + variablefile: + - '/share/config/integration_robot_properties.py' + - '/share/config/integration_vm_properties.py' + - '/share/config/integration_preload_parameters.py' + - + case_name: robot_multicloud + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case verifies the multicloud features of ONAP + based on the default robot tests + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.robotframework' + class: 'RobotFramework' + args: + suites: + - /var/opt/OpenECOMP_ETE/robot/testsuites/health-check.robot + include: + - multicloud + variablefile: + - '/share/config/integration_robot_properties.py' + - '/share/config/integration_vm_properties.py' + - '/share/config/integration_preload_parameters.py' + - + case_name: robot_3rdparty + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case verifies the ONAP 3rd party API + especially the different drivers + based on the default robot tests + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.robotframework' + class: 'RobotFramework' + args: + suites: + - /var/opt/OpenECOMP_ETE/robot/testsuites/health-check.robot + include: + - 3rdparty + variablefile: + - '/share/config/integration_robot_properties.py' + - '/share/config/integration_vm_properties.py' + - '/share/config/integration_preload_parameters.py' diff --git a/test/xtesting/robot/thirdparty-requirements.txt b/test/xtesting/robot/thirdparty-requirements.txt new file mode 100644 index 000000000..f85db2d41 --- /dev/null +++ b/test/xtesting/robot/thirdparty-requirements.txt @@ -0,0 +1,15 @@ +selenium<=3.0.0 +requests==2.11.1 +robotframework-selenium2library==1.8.0 +robotframework-databaselibrary==0.8.1 +robotframework-extendedselenium2library==0.9.1 +robotframework-requests==0.4.5 +robotframework-sshlibrary==2.1.2 +robotframework-sudslibrary==0.8 +robotframework-ftplibrary==1.3 +robotframework-rammbock==0.4.0.1 +deepdiff==2.5.1 +dnspython==1.15.0 +robotframework-httplibrary==0.4.2 +robotframework-archivelibrary==0.3.2 +PyYAML==3.12 -- cgit 1.2.3-korg