From fafc92246143082b662e9dc401d9116076425f82 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Thu, 4 Apr 2019 15:17:31 +0800 Subject: [PATCH] Add csit for vnfmgr Change-Id: I194261874da771dc6b207618ed6af34efbde945e Issue-ID: INT-1015 Signed-off-by: fujinhua --- plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh | 67 ++++++++++++++++++++++++ plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh | 23 ++++++++ plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt | 3 ++ tests/vfc/gvnfm-vnfmgr/test.robot | 33 ++++++++++++ 4 files changed, 126 insertions(+) create mode 100755 plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh create mode 100755 plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh create mode 100644 plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt create mode 100644 tests/vfc/gvnfm-vnfmgr/test.robot diff --git a/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh b/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh new file mode 100755 index 00000000..0c4efcc1 --- /dev/null +++ b/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# Copyright 2019 ZTE Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo MSB_DISCOVERY_IP=${MSB_DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +docker run -d -p 3306:3306 --name vfc-db nexus3.onap.org:10001/onap/vfc/db +VFC_DB_IP=`get-instance-ip.sh vfc-db` +echo VFC_DB_IP=${VFC_DB_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization(3306 DB) +for i in {1..3}; do + curl -sS -m 1 ${VFC_DB_IP}:3306 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 60 +sleep 60 +# start vfc-vnfres +docker run -d --name vfc-vnfmgr -e MSB_ADDR=${MSB_IAG_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/vnfmgr +VNFMGR_IP=`get-instance-ip.sh vfc-vnfmgr` + +# Wait for initialization +for i in {1..10}; do + curl -sS ${VNFMGR_IP}:8803 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v VNFMGR_IP:${VNFMGR_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh b/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh new file mode 100755 index 00000000..09db55b5 --- /dev/null +++ b/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-db +kill-instance.sh vfc-vnfres diff --git a/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt b/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt new file mode 100644 index 00000000..ac51e674 --- /dev/null +++ b/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration/csit.git]/tests/. +# Place the suites in run order. +vfc/gvnfm-vnfres/test.robot diff --git a/tests/vfc/gvnfm-vnfmgr/test.robot b/tests/vfc/gvnfm-vnfmgr/test.robot new file mode 100644 index 00000000..773d83a1 --- /dev/null +++ b/tests/vfc/gvnfm-vnfmgr/test.robot @@ -0,0 +1,33 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/vnfmgr/v1/swagger.json +${healthcheck_url} /api/vnfmgr/v1/health_check + +*** Test Cases *** +VnfMgrSwaggerTest + [Documentation] query vnfmgr swagger info rest test + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFMGR_IP}:8802 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 + +VnfMgrHealthCheckTest + [Documentation] check health for vnfmgr by MSB + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFMGR_IP}:8803 headers=${headers} + ${resp}= Get Request web_session ${healthcheck_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${health_status}= Convert To String ${response_json['status']} + Should Be Equal ${health_status} active -- 2.16.6