From c73dd9d2d0187d93409318f5ec4aea082f0c9684 Mon Sep 17 00:00:00 2001 From: mrichomme Date: Mon, 22 Jun 2020 11:49:46 +0200 Subject: Resync manually xtesting repo from gitlab.com repo The goal is to use xtesting once we shall be able to build all the dockers properly Issue-ID: INT-1366 Signed-off-by: mrichomme Change-Id: I068eb6019f6eec04b46b545222cbb5cecb265234 Signed-off-by: mrichomme --- smoke-usecases-robot/README.md | 80 +++++++++++++++++++++++++++++- smoke-usecases-robot/docker/Dockerfile | 12 ++++- smoke-usecases-robot/docker/testcases.yaml | 49 ++++++++++++++++++ smoke-usecases-robot/requirements.txt | 1 + 4 files changed, 139 insertions(+), 3 deletions(-) (limited to 'smoke-usecases-robot') diff --git a/smoke-usecases-robot/README.md b/smoke-usecases-robot/README.md index 9578084..74b36f3 100644 --- a/smoke-usecases-robot/README.md +++ b/smoke-usecases-robot/README.md @@ -4,13 +4,89 @@ The tests are: -* pnf_registrate -* vfw_cl +- pnf_registrate +- vfw_cl +- 5gbulkpm +- hv-ves ## Usage +The robot scripts have been planned to be launched from the cluster. +The easiest way to run the test consists in creating a kubernetes job. +You can run it as a sandalone dockers but the endpoints must be adapted +to be reachable. + ### Configuration +An example of job test.yaml can be found hereafter: + +``` +apiVersion: batch/v1 +kind: Job +metadata: + name: integration-onap-5gbulkpm + namespace: onap +spec: + template: + spec: + containers: + - env: + - name: INSTALLER_TYPE + value: oom + - name: DEPLOY_SCENARIO + value: onap-nofeature-noha + - name: NODE_NAME + value: onap_daily_pod4_frankfurt-ONAP-oom + - name: TEST_DB_URL + value: http://testresults.opnfv.org/onap/api/v1/results + - name: BUILD_TAG + value: gitlab_ci-functest-kubespray-baremetal-daily-master-559950989 + - name: TAG + value: 5gbulkpm + image: registry.gitlab.com/orange-opensource/lfn/onap/integration/xtesting/smoke-usecases-robot:latest + imagePullPolicy: Always + name: functest-onap + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /share/config + name: robot-eteshare + - mountPath: /var/lib/xtesting/results/ + name: robot-save-results + restartPolicy: Never + volumes: + - hostPath: + path: /etc/localtime + name: localtime + - configMap: + defaultMode: 493 + name: onap-robot-eteshare-configmap + name: robot-eteshare + - hostPath: + path: /dockerdata-nfs/onap/integration/smoke-usecases-robot/5gbulkpm + name: robot-save-results +``` + +In the example, we want to run the 5gbulkpm test. + ### Command +To run the job, just type: + +``` + kubectl apply -f test.yaml +``` + ### Output + +This job shall create an euphemeral pod. +The results will be available in the mounter volume and shall contains 3 files in +this case: + +- xtesting.log +- report.html +- log.html + +More generally, it shall contain the xtesting.log + all the artifacts generated by +the test. diff --git a/smoke-usecases-robot/docker/Dockerfile b/smoke-usecases-robot/docker/Dockerfile index 8dbe29a..5a614c0 100644 --- a/smoke-usecases-robot/docker/Dockerfile +++ b/smoke-usecases-robot/docker/Dockerfile @@ -5,15 +5,23 @@ MAINTAINER Morgan Richomme ARG OPENSTACK_TAG=master ARG OPNFV_TAG=master ARG ONAP_TAG=master -ARG PIP_TAG=19.3.1 +ARG PIP_TAG=20.1 +ARG KUBERNETES_VERSION="v1.15.11" ENV TAG all +# Install kubectl +# Note: Latest version may be found on: +# https://aur.archlinux.org/packages/kubectl-bin/ + +ADD https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_VERSION}/bin/linux/amd64/kubectl /usr/local/bin/kubectl + COPY requirements.txt requirements.txt RUN apk --no-cache add --update openssl chromium chromium-chromedriver && \ apk --no-cache add --virtual .build-deps --update \ python3-dev build-base linux-headers libffi-dev \ openssl-dev libjpeg-turbo-dev && \ + chmod +x /usr/local/bin/kubectl && \ pip3 install --upgrade pip && \ pip3 install --no-cache-dir \ git+https://git.onap.org/testsuite/heatbridge.git@$ONAP_TAG#egg=heatbridge\&subdirectory=heatbridge \ @@ -30,6 +38,8 @@ RUN apk --no-cache add --update openssl chromium chromium-chromedriver && \ mkdir -p /var/opt/ONAP/demo/tosca && cp -Rf /src/demo/tosca/pNF /var/opt/ONAP/demo/tosca/ && \ mkdir -p /demo/service_mapping && cp -Rf /src/demo/service_mapping /demo/ && \ mkdir -p /var/opt/ONAP/demo/preload_data && cp -Rf /src/demo/preload_data /var/opt/ONAP/demo/ && \ + mkdir -p /app && cp /var/opt/ONAP/setup-hvves.sh /app/setup-hvves.sh && \ + chmod +x /app/setup-hvves.sh && \ ln -s /usr/lib/python3.7/site-packages/vcpeutils /usr/lib/python3.7/site-packages/SoUtils && \ ln -s /usr/lib/python3.7/site-packages/heatbridge /usr/lib/python3.7/site-packages/HeatBridge && \ rm -r requirements.txt /var/opt/ONAP/.git /src/demo && \ diff --git a/smoke-usecases-robot/docker/testcases.yaml b/smoke-usecases-robot/docker/testcases.yaml index 969c9b7..9036d24 100644 --- a/smoke-usecases-robot/docker/testcases.yaml +++ b/smoke-usecases-robot/docker/testcases.yaml @@ -42,3 +42,52 @@ tiers: - vfwc variablefile: - '/share/config/robot_properties.py' + - + case_name: 5gbulkpm + project_name: integration + enabled: true + criteria: 100 + blocking: true + description: >- + Test 5G Bulk PM Usecase functionality (inventory and + deployment api from DCAEGEN, data router and bus + controller) + dependencies: + run: + name: 'robotframework' + args: + suites: + - /var/opt/ONAP/robot/testsuites/usecases/5gbulkpm.robot + include: + - 5gbulkpm + variablefile: + - '/share/config/robot_properties.py' + - + case_name: hv-ves + project_name: integration + enabled: true + criteria: 100 + blocking: true + description: >- + HV VES (High Volume) VES collector has been proposed, based + on a need to process high-volumes of data generated + frequently by a large number of NFs. The driving use-case + is the 5G RAN, where it is expected that up to 10k NF + instances report the data, per DCAE platform deployment. + The network traffic generated in simulations - based on + 4G BTS Real-Time PM data has shown, that GPB serialization + is 2-3 times more effective, than JSON serialization + utilized in VES collector. HV-VES 'Sunny Scenario' Robot + Framework test - message is sent to the collector and Kafka + topic is checked if the message has been published. Content + is decoded and checked. + dependencies: + run: + name: 'robotframework' + args: + suites: + - /var/opt/ONAP/robot/testsuites/hvves-ci.robot + include: + - hvves + variablefile: + - '/share/config/robot_properties.py' diff --git a/smoke-usecases-robot/requirements.txt b/smoke-usecases-robot/requirements.txt index 34e61d8..4274f19 100644 --- a/smoke-usecases-robot/requirements.txt +++ b/smoke-usecases-robot/requirements.txt @@ -9,6 +9,7 @@ robotframework-selenium2library robotframework-databaselibrary robotframework-extendedselenium2library robotframework-requests +robotframework-jsonlibrary deepdiff dnspython pyyaml>=4.2b1 -- cgit 1.2.3-korg