diff options
Diffstat (limited to 'test/csit')
14 files changed, 346 insertions, 6 deletions
diff --git a/test/csit/plans/appc/healthcheck/setup.sh b/test/csit/plans/appc/healthcheck/setup.sh index 51d100033..a0683fbe6 100755 --- a/test/csit/plans/appc/healthcheck/setup.sh +++ b/test/csit/plans/appc/healthcheck/setup.sh @@ -20,7 +20,7 @@ SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source ${WORKSPACE}/test/csit/scripts/appc/script1.sh -export APPC_DOCKER_IMAGE_VERSION=1.3.0-SNAPSHOT-latest +export APPC_DOCKER_IMAGE_VERSION=1.4.0-SNAPSHOT-latest export CCSDK_DOCKER_IMAGE_VERSION=0.2-STAGING-latest export BRANCH=beijing export SOLUTION_NAME=onap diff --git a/test/csit/plans/dcaegen2/prh_testsuites/setup.sh b/test/csit/plans/dcaegen2/prh_testsuites/setup.sh new file mode 100644 index 000000000..279696597 --- /dev/null +++ b/test/csit/plans/dcaegen2/prh_testsuites/setup.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +source ${SCRIPTS}/common_functions.sh + +export PRH_SERVICE="prh" +export DMAAP_SIMULATOR="dmaap_simulator" +export AAI_SIMULATOR="aai_simulator" + +cd ${WORKSPACE}/test/csit/tests/dcaegen2/prh_testcases/resources/ + +docker login -u docker -p docker nexus3.onap.org:10003 +docker-compose up -d --build + +# Wait for initialization of Docker containers +for i in {1..50}; do + if [ $(docker inspect --format '{{ .State.Running }}' ${PRH_SERVICE}) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' ${DMAAP_SIMULATOR}) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' ${AAI_SIMULATOR}) ] + then + echo "dmaap_simulator, aai_simulator and prh services are running" + break + else + echo sleep ${i} + sleep ${i} + fi +done + +PRH_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${PRH_SERVICE}) +DMAAP_SIMULATOR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${DMAAP_SIMULATOR}) +AAI_SIMULATOR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${AAI_SIMULATOR}) + +bypass_ip_adress ${PRH_IP} +bypass_ip_adress ${DMAAP_SIMULATOR_IP} +bypass_ip_adress ${AAI_SIMULATOR_IP} + +echo PRH_IP=${PRH_IP} +echo DMAAP_SIMULATOR_IP=${DMAAP_SIMULATOR_IP} +echo AAI_SIMULATOR_IP=${AAI_SIMULATOR_IP} + +# Wait for initialization of docker services +for i in {1..50}; do + curl -sS -m 1 localhost:2222 && \ + curl -sS -m 1 localhost:3333 && \ + curl -sS -m 1 localhost:8100/heartbeat && break + echo sleep ${i} + sleep ${i} +done + +docker cp prh:/config/prh_endpoints.json ${WORKDIR} +sed -i -e 's/"dmaapHostName":.*/"dmaapHostName": "'${DMAAP_SIMULATOR_IP}'",/g' ${WORKDIR}/prh_endpoints.json +sed -i -e 's/"aaiHost":.*/"aaiHost": "'${AAI_SIMULATOR_IP}'",/g' ${WORKDIR}/prh_endpoints.json +docker cp ${WORKDIR}/prh_endpoints.json prh:/config/ + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v DMAAP_SIMULATOR:localhost:2222 -v AAI_SIMULATOR:localhost:3333 -v PRH:localhost:8100" diff --git a/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh b/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh new file mode 100644 index 000000000..bd1e5ba06 --- /dev/null +++ b/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2017 Nokia, Inc. and others. +# +# 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. +# + +kill-instance.sh prh +kill-instance.sh dmaap_simulator +kill-instance.sh aai_simulator diff --git a/test/csit/plans/dcaegen2/prh_testsuites/testplan.txt b/test/csit/plans/dcaegen2/prh_testsuites/testplan.txt new file mode 100644 index 000000000..8c1f3274a --- /dev/null +++ b/test/csit/plans/dcaegen2/prh_testsuites/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dcaegen2/prh_testcases diff --git a/test/csit/tests/clamp/UIs/03__Verify_UI_Models.robot b/test/csit/tests/clamp/UIs/03__Verify_UI_Models.robot index a9cb78749..8bbf7c85e 100644 --- a/test/csit/tests/clamp/UIs/03__Verify_UI_Models.robot +++ b/test/csit/tests/clamp/UIs/03__Verify_UI_Models.robot @@ -21,7 +21,7 @@ Verify HolmesModel1 Should Contain Match ${resp} *migrate* Should Contain Match ${resp} *240* Should Contain Match ${resp} *390* - Should Contain Match ${resp} *correlational Logic1* + Should Contain Match ${resp} *Logic1* Should Contain Match ${resp} *config Policy Name1* Verify TCAModel1 diff --git a/test/csit/tests/clamp/UIs/04__Submit_deploy_chain_Holmes.robot b/test/csit/tests/clamp/UIs/04__Submit_deploy_chain_Holmes.robot index f400156d1..32b4ce7ec 100644 --- a/test/csit/tests/clamp/UIs/04__Submit_deploy_chain_Holmes.robot +++ b/test/csit/tests/clamp/UIs/04__Submit_deploy_chain_Holmes.robot @@ -78,8 +78,8 @@ Deploy Holmes CL Click Element xpath=//*[@id="navbar"]/ul/li[2]/a Wait Until Element Is Visible locator=Deploy timeout=60 Click Element locator=Deploy - Wait Until Element Is Visible xpath=//*[@id="deployProperties"] timeout=60 - Input Text xpath=//*[@id="deployProperties"] text={} +# Wait Until Element Is Visible xpath=//*[@id="deployProperties"] timeout=60 +# Input Text xpath=//*[@id="deployProperties"] text={} Click Button locator=Deploy Click Button locator=Yes Wait Until Element Is Visible xpath=//*[@id="alert_message_"] timeout=60 diff --git a/test/csit/tests/clamp/UIs/05__Submit_deploy_chain_TCA.robot b/test/csit/tests/clamp/UIs/05__Submit_deploy_chain_TCA.robot index 34c1a71ef..db72f3bbd 100644 --- a/test/csit/tests/clamp/UIs/05__Submit_deploy_chain_TCA.robot +++ b/test/csit/tests/clamp/UIs/05__Submit_deploy_chain_TCA.robot @@ -78,8 +78,8 @@ Deploy TCA CL Click Element xpath=//*[@id="navbar"]/ul/li[2]/a Wait Until Element Is Visible locator=Deploy timeout=60 Click Element locator=Deploy - Wait Until Element Is Visible xpath=//*[@id="deployProperties"] timeout=60 - Input Text xpath=//*[@id="deployProperties"] text={} +# Wait Until Element Is Visible xpath=//*[@id="deployProperties"] timeout=60 +# Input Text xpath=//*[@id="deployProperties"] text={} Click Button locator=Deploy Click Button locator=Yes Wait Until Element Is Visible xpath=//*[@id="alert_message_"] timeout=60 diff --git a/test/csit/tests/dcaegen2/prh_testcases/__init__.robot b/test/csit/tests/dcaegen2/prh_testcases/__init__.robot new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/__init__.robot diff --git a/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot b/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot new file mode 100644 index 000000000..764a879a3 --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot @@ -0,0 +1,65 @@ +*** Settings *** +Library RequestsLibrary + +*** Variables *** +${DMAAP_SIM_URL} http://${DMAAP_SIMULATOR} +${AAI_SIM_URL} http://${AAI_SIMULATOR} +${PRH_URL} http://${PRH} + +*** Test Cases *** +Getting and Consuming Positive Scenario + [Documentation] Get message from new topic and consume it - positive scenarios + [Tags] PRH + [Setup] Start prh + [Template] Run Getting and Consuming + [Timeout] + {"pnfName":"NOKQTFCOC540002E","ipv4":"10.16.123.234","ipv6":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"} NOKQTFCOC540002E {"event": {"commonEventHeader": {"sourceId":"QTFCOC540002E", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002E-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.234", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002E", "pnfManufactureDate":1516406400}}} + {"pnfName":"NOKQTFCOC540002F","ipv4":"","ipv6":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"} NOKQTFCOC540002F {"event": {"commonEventHeader": {"sourceId":"QTFCOC540002F", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002F-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002F", "pnfManufactureDate":1516406400}}} + {"pnfName":"NOKQTFCOC540002G","ipv4":"10.16.123.234","ipv6":""} NOKQTFCOC540002G {"event": {"commonEventHeader": {"sourceId":"QTFCOC540002G", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002G-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.234", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002G", "pnfManufactureDate":1516406400}}} + {"pnfName":"ERIQTFCOC5400000","ipv4":"10.16.123.23","ipv6":""} ERIQTFCOC5400000 {"event": {"commonEventHeader": {"sourceId":"QTFCOC5400000", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC5400000-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"", "pnfVendorName":"Ericsson", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.23", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC5400000", "pnfManufactureDate":1516406400}}} + [Teardown] Stop prh + +*** Keywords *** +Run Getting and Consuming + [Arguments] ${posted_event_to_dmaap} ${pnfs_name} ${event_in_dmaap} + [Timeout] 1 minutes + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + Set pnfs name in AAI ${pnfs_name} + Set get event in DMAAP ${event_in_dmaap} ${headers} + : FOR ${Index} IN RANGE 1 30 + \ Create Session prh_ready ${DMAAP_SIM_URL} + \ ${resp}= Get Request prh_ready /events/pnfReady headers=${headers} + \ Exit For Loop If '${resp.text}' == '${posted_event_to_dmaap}' + \ Sleep 1s + Should Be Equal ${resp.text} ${posted_event_to_dmaap} + +Start prh + [Timeout] 1 minute + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + Create Session prh_start ${PRH_URL} + ${resp}= Get Request prh_start /start headers=${headers} + Should Be Equal ${resp.text} "PRH Service has been started!" + +Stop prh + [Timeout] 1 minute + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + Create Session prh_stop ${PRH_URL} + ${resp}= Get Request prh_stop /stopPrh headers=${headers} + Should Be Equal ${resp.text} "PRH Service has already been stopped!" + +Set pnfs name in AAI + [Arguments] ${pnfs_name} + [Timeout] 1 minute + ${headers}= Create Dictionary Accept=application/json Content-Type=text/html + Create Session set_pnfs_in_aai ${AAI_SIM_URL} + ${resp}= Put Request set_pnfs_in_aai /set_pnfs headers=${headers} data=${pnfs_name} + Should Be Equal As Strings ${resp.status_code} 200 + Log To Console ${resp.text} + +Set get event in DMAAP + [Arguments] ${event_in_dmaap} ${headers} + [Timeout] 1 minute + Create Session set_get_event ${DMAAP_SIM_URL} + ${resp}= Put Request set_get_event /set_get_event headers=${headers} data=${event_in_dmaap} + Should Be Equal As Strings ${resp.status_code} 200 + Log To Console ${resp.text} diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml b/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml new file mode 100644 index 000000000..e27d84516 --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml @@ -0,0 +1,44 @@ +version: '3' +services: + prh: + image: nexus3.onap.org:10003/onap/org.onap.dcaegen2.services.prh.prh-app-server + command: > + --dmaap.dmaapConsumerConfiguration.dmaapPortNumber=2222 + --dmaap.dmaapProducerConfiguration.dmaapPortNumber=2222 + --aai.aaiClientConfiguration.aaiHostPortNumber=3333 + --aai.aaiClientConfiguration.aaiProtocol=http + entrypoint: + - java + - -Dspring.profiles.active=dev + - -Dlogging.level.org.onap.dcaegen2.services.prh=TRACE + - -jar + - /opt/prh-app-server.jar + ports: + - "8100:8100" + - "8433:8433" + container_name: prh + + dmaap_simulator: + build: + context: simulator + dockerfile: DMaaP_simulator + args: + - https_proxy=${HTTPS_PROXY} + ports: + - "2222:2222" + container_name: dmaap_simulator + depends_on: + - prh + + aai_simulator: + build: + context: simulator + dockerfile: AAI_simulator + args: + - https_proxy=${HTTPS_PROXY} + ports: + - "3333:3333" + container_name: aai_simulator + depends_on: + - prh +
\ No newline at end of file diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI.py b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI.py new file mode 100644 index 000000000..f9d0ee07b --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI.py @@ -0,0 +1,56 @@ +import BaseHTTPServer +import re +import sys + +from robot.api import logger + +pnfs = 'Empty' + +class AAIHandler(BaseHTTPServer.BaseHTTPRequestHandler): + def do_PUT(self): + if re.search('/set_pnfs', self.path): + global pnfs + content_length = int(self.headers['Content-Length']) + pnfs = self.rfile.read(content_length) + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + return + + def do_PATCH(self): + pnfs_name = '/aai/v12/network/pnfs/pnf/' + pnfs + if re.search(pnfs_name, self.path): + self.send_response(200) + self.end_headers() + + return + + def do_GET(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + self.wfile.write('GET') + self.wfile.close() + + return + +def _main_ (HandlerClass = AAIHandler, + ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"): + + if sys.argv[1:]: + port = int(sys.argv[1]) + else: + port = 3333 + + server_address = ('', port) + + HandlerClass.protocol_version = protocol + httpd = ServerClass(server_address, HandlerClass) + + sa = httpd.socket.getsockname() + print "Serving HTTP on", sa[0], "port", sa[1], "..." + httpd.serve_forever() + +if __name__ == '__main__': + _main_() diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI_simulator b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI_simulator new file mode 100644 index 000000000..2d96d8925 --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI_simulator @@ -0,0 +1,11 @@ +FROM python:2 + +ENV https_proxy "$https_proxy" + +ADD AAI.py / + +RUN pip install robotframework + +EXPOSE 3333 + +CMD [ "python", "./AAI.py" ] diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP.py b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP.py new file mode 100644 index 000000000..af716fd06 --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP.py @@ -0,0 +1,75 @@ +import BaseHTTPServer +import re +import sys + +from robot.api import logger + +posted_event_from_prh = 'Empty' +received_event_to_get_method = 'Empty' + +class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): + def do_PUT(self): + if re.search('/set_get_event', self.path): + global received_event_to_get_method + content_length = int(self.headers['Content-Length']) + received_event_to_get_method = self.rfile.read(content_length) + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + return + + def do_POST(self): + if re.search('/events/pnfReady', self.path): + global posted_event_from_prh + content_length = int(self.headers['Content-Length']) + posted_event_from_prh = self.rfile.read(content_length) + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + return + + def do_GET(self): + if re.search('/events/unauthenticated.SEC_OTHER_OUTPUT', self.path): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + self.wfile.write(received_event_to_get_method) + self.wfile.close() + elif re.search('/events/pnfReady', self.path): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + self.wfile.write(posted_event_from_prh) + global posted_event_from_prh + posted_event_from_prh = 'Empty' + self.wfile.close() + else: + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + self.wfile.write('GET else') + self.wfile.close() + + return + +def _main_ (HandlerClass = DMaaPHandler, + ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"): + + if sys.argv[1:]: + port = int(sys.argv[1]) + else: + port = 2222 + + server_address = ('', port) + + HandlerClass.protocol_version = protocol + httpd = ServerClass(server_address, HandlerClass) + + sa = httpd.socket.getsockname() + print "Serving HTTP on", sa[0], "port", sa[1], "..." + httpd.serve_forever() + +if __name__ == '__main__': + _main_() diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP_simulator b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP_simulator new file mode 100644 index 000000000..4de65393d --- /dev/null +++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP_simulator @@ -0,0 +1,11 @@ +FROM python:2 + +ENV https_proxy "$https_proxy" + +ADD DMaaP.py / + +RUN pip install robotframework + +EXPOSE 2222 + +CMD [ "python", "./DMaaP.py" ] |