summaryrefslogtreecommitdiffstats
path: root/docs/files/vnf-test-platform.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/files/vnf-test-platform.rst')
-rw-r--r--docs/files/vnf-test-platform.rst319
1 files changed, 319 insertions, 0 deletions
diff --git a/docs/files/vnf-test-platform.rst b/docs/files/vnf-test-platform.rst
new file mode 100644
index 0000000..5f6fead
--- /dev/null
+++ b/docs/files/vnf-test-platform.rst
@@ -0,0 +1,319 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2019 Huawei Technologies Co., Ltd.
+
+.. _vnf-test-platform:
+
+VNF Test Platform (VTP)
+=======================
+Deploy VNF/PNF test cases once and trigger it safely from anywhere
+
+Objectives
+----------
+* LFN/ONAP wants test platform where VNF packages could be certified using ONAP requirements to drive industry adoption
+* Provide an platform where vendor/operator can develop, deploy, run test cases and query the results
+* Test cases, test results and VNF should be manageable .i,e with authorization, so only user with given roles is allowed to perform operation like VNF package upload/download, run compliance verification tests, allow only specific VIM for specific users, etc.
+* Test results should be persisted and should be available for human analysis later via LFN infrastructure.
+* Provides test flow where author make flow across different test cases for a given program like compliance verification and VNFREQS/SOL0004.
+* Provide integration with OPNFV dovetail to run test cases across dovetail and VNFSDK.
+* Deployable as docker container.
+
+|image0|
+
+.. |image0| image:: VTP.png
+ :height: 600px
+ :width: 900px
+
+Architecture
+------------
+
+|image1|
+
+.. |image1| image:: VTParch.png
+ :height: 600px
+ :width: 900px
+
+VTP deployment
+----------------
+
+Install VTP Backend
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+export NEXUS_DOCKER_REPO=nexus3.onap.org:10001
+
+docker login $NEXUS_DOCKER_REPO -u docker -p docker
+
+export REFREPO_TAG=1.3.0
+
+export POSTGRES_TAG=latest
+
+export MTU=1450
+
+wget https://raw.githubusercontent.com/onap/vnfsdk-refrepo/master/vnfmarket-be/deployment/install/docker-compose.yml
+
+docker-compose up -d
+
+run docker ps and following entries would be reported::
+
+ root@mrkanag:~# docker ps
+ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+ 4d42ef0bc1b3 nexus3.onap.org:10001/onap/vnfsdk/refrepo:1.3.0 "/service/docker-ent…" 2 days ago Up 2 days 0.0.0.0:8000->8000/tcp, 0.0.0.0:8702-8703->8702-8703/tcp, 0.0.0.0:50051->50051/tcp refrepo
+ 25a86d9b0e81 nexus3.onap.org:10001/onap/vnfsdk/refrepo/postgres:latest "docker-entrypoint.s…" 2 days ago Up 2 days 0.0.0.0:5432->5432/tcp postgres
+
+VTP usage guide
+---------------
+
+**1. List scenario**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/scenarios
+
+ [
+ {
+ "name": "scenario-1",
+ "description": "Test scenario 1 \n"
+ },
+ {
+ "name": "scenario-2",
+ "description": "Test scenario 1 \n"
+ },
+ {
+ "name": "open-cli",
+ "description": "OPEN CLI PLATFORM provides a dynamic platform to load and execute commands\nbased on the Open Command Specification (OCS) 1.0. \n"
+ }
+ ]
+
+**2. List Test suites**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/scenarios/scenario-1/testsuites
+ [
+ {
+ "name": "testsuite-1",
+ "description": "testsuite 1"
+ },
+ {
+ "name": "testsuite-2",
+ "description": "testsuite 2"
+ }
+ ]
+
+**3. List Test cases**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/scenarios/scenario-1/testcases
+ [
+ {
+ "testCaseName": "s1.ts1.testcase-1",
+ "testSuiteName": "testsuite-1"
+ },
+ {
+ "testCaseName": "s1.ts1.testcase-2",
+ "testSuiteName": "testsuite-1"
+ },
+ {
+ "testCaseName": "s1.ts1.testcase-3",
+ "testSuiteName": "testsuite-1"
+ },
+ {
+ "testCaseName": "s1.ts2.testcase-1",
+ "testSuiteName": "testsuite-2"
+ },
+ {
+ "testCaseName": "s1.ts2.testcase-2",
+ "testSuiteName": "testsuite-2"
+ }
+ ]
+
+
+**4. Show Test case details**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/scenarios/scenario-1/testsuites/testsuite-1/testcases/s1.ts1.testcase-1
+
+ {
+ "testCaseName": "s1.ts1.testcase-1",
+ "testSuiteName": "testsuite-1",
+ "descripton": "s1.ts1.testcase-1",
+ "author": "Kanagaraj Manickam kanagaraj.manickam@huawei.com",
+ "inputs": [
+ {
+ "name": "input1",
+ "description": "Input 1",
+ "type": "string",
+ "isOptional": false,
+ "metadata": {
+ "allowed_value": [
+ "a",
+ "b",
+ "c"
+ ]
+ }
+ },
+ {
+ "name": "input2",
+ "description": "Input 2",
+ "type": "string",
+ "defaultValue": "v2",
+ "isOptional": true
+ }
+ ],
+ "outputs": [
+ {
+ "name": "output1",
+ "description": "output 1",
+ "type": "string"
+ }
+ ]
+ }
+
+
+**5. List Test cases in test suite**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/scenarios/scenario-2/testcases?testSuiteName=testsuite-1
+ [
+ {
+ "testCaseName": "s2.ts1.testcase-1",
+ "testSuiteName": "testsuite-1"
+ }
+ ]
+
+**6. Run a test case**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/executions
+ [
+ {
+ "scenario": "open-cli",
+ "testCaseName": "schema-list",
+ "testSuiteName": "schema",
+ "executionId": "00dfda6c-df16-4c5b-a731-3d531a7aafa5-1550505316115",
+ "requestId": "00dfda6c-df16-4c5b-a731-3d531a7aafa5",
+ "status": "completed",
+ "startTime": "2019-02-18T15:55:16.138",
+ "endTime": "2019-02-18T15:55:16.220"
+ }
+ ]
+
+**7. Retrieve the execution result**::
+
+ GET {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/executions/ebaa5f21-ed68-4098-97a9-775ac8800f09-1550575025614
+ {
+ "scenario": "scenario-1",
+ "testCaseName": "s1.ts2.testcase-1",
+ "testSuiteName": "testsuite-2",
+ "executionId": "ebaa5f21-ed68-4098-97a9-775ac8800f09-1550575025614",
+ "parameters": {
+ "input2": "v2",
+ "input1": "v1"
+ },
+ "results": {
+ "output1": "v1=v2"
+ },
+ "status": "completed",
+ "startTime": "2019-02-19T11:17:05.670",
+ "endTime": "2019-02-19T11:17:05.683"
+ }
+
+**8. Execute test case without file content (across scenario, test suites)**::
+
+ POST {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/executions?requestId=ebaa5f21-ed68-4098-97a9-775ac8800f09
+ content-type multipart/form-data
+ BODY:
+ executions:
+ [{
+ "scenario": "scenario-1",
+ "testSuiteName": "testsuite-1",
+ "testCaseName": "s1.ts1.testcase-1",
+ "parameters": {
+ "input1": "v1",
+ "input2": "v2"
+ }
+ },{
+ "scenario": "scenario-1",
+ "testSuiteName": "testsuite-2",
+ "testCaseName": "s1.ts2.testcase-1",
+ "parameters": {
+ "input1": "v1"
+ }
+ },
+ {
+ "scenario": "open-cli",
+ "testSuiteName": "schema",
+ "testCaseName": "schema-validate",
+ "parameters": {
+ "schema-location": "file://s1.ts1.testcase-1.yaml"
+ }
+ }]
+
+ RESPONSE:
+ [
+ {
+ "scenario": "scenario-1",
+ "testCaseName": "s1.ts1.testcase-1",
+ "testSuiteName": "testsuite-1",
+ "executionId": "ebaa5f21-ed68-4098-97a9-775ac8800f09-1550575025516",
+ "parameters": {
+ "input1": "v1",
+ "input2": "v2"
+ },
+ "results": {
+ "output1": "v1-v2"
+ },
+ "status": "COMPLETED",
+ "startTime": "2019-02-19T11:17:05.464",
+ "endTime": "2019-02-19T11:17:05.579"
+ },
+ {
+ "scenario": "scenario-1",
+ "testCaseName": "s1.ts2.testcase-1",
+ "testSuiteName": "testsuite-2",
+ "executionId": "ebaa5f21-ed68-4098-97a9-775ac8800f09-1550575025614",
+ "parameters": {
+ "input1": "v1"
+ },
+ "results": {
+ "output1": "v1=v2"
+ },
+ "status": "COMPLETED",
+ "startTime": "2019-02-19T11:17:05.579",
+ "endTime": "2019-02-19T11:17:05.701"
+ }
+ ]
+
+**9. Execute test case with file content**::
+
+ POST {{vtp-host}}/onapapi/vnfsdk-marketplace/v1/vtp/executions?requestId=ebaa5f21-ed68-4098-97a9-775ac8800f07
+ content-type multipart/form-data
+ BODY:
+ file -- file s1.ts1.testcase-1.yaml content
+ executions:
+ [{
+ "scenario": "open-cli",
+ "testSuiteName": "schema",
+ "testCaseName": "schema-validate",
+ "parameters": {
+ "schema-location": "file://s1.ts1.testcase-1.yaml"
+ }
+ }]
+
+ RESPONSE:
+ [
+ {
+ "scenario": "open-cli",
+ "testCaseName": "schema-validate",
+ "testSuiteName": "schema",
+ "executionId": "ebaa5f21-ed68-4098-97a9-775ac8800f07-1550575843353",
+ "parameters": {
+ "schema-location": "d:/temp/vtp/temp-files/s1.ts1.testcase-1.yaml"
+ },
+ "results": [
+ {}
+ ],
+ "status": "COMPLETED",
+ "startTime": "2019-02-19T11:30:43.288",
+ "endTime": "2019-02-19T11:30:43.672"
+ }
+ ]
+
+Reference
+----------
+
+ONAP VTP Wiki_.
+
+.. _Wiki: https://wiki.onap.org/pages/viewpage.action?pageId=43386304 \ No newline at end of file