From: BjornMagnussonXA Date: Tue, 26 Mar 2019 12:48:46 +0000 (+0000) Subject: Added functional CSIT tests for DFC X-Git-Tag: 4.0.0-ONAP~110^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F42%2F83342%2F1;p=integration%2Fcsit.git Added functional CSIT tests for DFC New test case for single file download and publish Minor refactoring of Management interface test Issue-ID: DCAEGEN2-1313 Change-Id: I2436db42a5884a7d828dbefcf9678aa9cdf064e3 Signed-off-by: BjornMagnussonXA --- diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh b/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh new file mode 100644 index 00000000..e4940280 --- /dev/null +++ b/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +#Stop all running containers +docker kill "$(docker ps -q -a)" +docker rm "$(docker ps -q -a)" + +# Clone Simulators for DFC from integration repo. +mkdir -p $WORKSPACE/archives/dfc +cd $WORKSPACE/archives/dfc +git clone --depth 1 https://gerrit.onap.org/r/integration -b master #How to make this version controlled for Dublin, El Alto etc etc + +#Location of all individual simulators for DFC +SIM_ROOT=$WORKSPACE/archives/dfc/integration/test/mocks/datafilecollector-testharness +#Location of the above simulators when run as a group. For start+config and stop. +SIMGROUP_ROOT=$SIM_ROOT/simulator-group + +#Default IP for all containers +SIM_IP="127.0.0.1" +#Location of script to start and stop dfc +DFC_ROOT=$WORKSPACE/scripts/dcaegen2-collectors-datafile/dfc-management + +#Make the env vars availble to the robot scripts +ROBOT_VARIABLES="-v SIMGROUP_ROOT:${SIMGROUP_ROOT} -v SIM_IP:${SIM_IP} -v DFC_ROOT:${DFC_ROOT}" + +#Build needed simulator images. DR and MR simulators + +cd $SIM_ROOT/mr-sim + +docker build -t mrsim:latest . + +cd $SIM_ROOT/dr-sim + +docker build -t drsim_common:latest . + +#Prepare the ftp simulator files. + +cd $SIMGROUP_ROOT + +#Copy ftp config for the ftp servers +cp -r ../ftps-sftp-server/configuration . +cp -r ../ftps-sftp-server/tls . + +#All containers will be started and stopped via the robot tests. + diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/teardown.sh b/plans/dcaegen2-collectors-datafile/Functional-suite/teardown.sh new file mode 100644 index 00000000..1a0ec6e1 --- /dev/null +++ b/plans/dcaegen2-collectors-datafile/Functional-suite/teardown.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +#Stop dfc + +kill-instance.sh dfc_app + +#Stop all simulators + +kill-instance.sh dfc_dr-sim +kill-instance.sh dfc_dr-redir-sim +kill-instance.sh dfc_mr-sim +kill-instance.sh dfc_sftp-server +kill-instance.sh dfc_ftpes-server-vsftpd \ No newline at end of file diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt b/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt new file mode 100755 index 00000000..30d7a2d7 --- /dev/null +++ b/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration/csit.git]/tests/. +# Place the suites in run order. +dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh index af24717a..8f50d00b 100644 --- a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh +++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh @@ -1,21 +1,8 @@ #!/usr/bin/env bash -docker-compose up -d - - -DFC=$(docker ps -a -q --filter="name=dfc") - -# Wait for initialization of Docker contaienr for DFC -for i in {1..10}; do -if [ $(docker inspect --format '{{ .State.Running }}' $DFC) ] -then - echo "DFC Container Running" - break -else - echo sleep $i - sleep $i -fi -done +DFC_ROOT=$WORKSPACE/scripts/dcaegen2-collectors-datafile/dfc-management +cd $DFC_ROOT +source dfc-start.sh #Wait for initialization of the DFC service for i in {1..10}; do diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh index bb0ac923..97ef4037 100644 --- a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh +++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -kill-instance.sh dfc \ No newline at end of file +kill-instance.sh dfc_app \ No newline at end of file diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh new file mode 100755 index 00000000..39f2d0d7 --- /dev/null +++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh @@ -0,0 +1,4 @@ +#!/bin/bash + + +docker kill dfc_app \ No newline at end of file diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-restart.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-restart.sh new file mode 100755 index 00000000..ebc28f49 --- /dev/null +++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-restart.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +#Restart DFC app + +docker restart dfc_app + +DFC_APP="$(docker ps -q --filter='name=dfc_app')" + + +#Wait for initialization of docker containers for dfc app and all simulators +for i in {1..10}; do +if [ $(docker inspect --format '{{ .State.Running }}' $DFC_APP) ] + then + echo "DFC app Running" + break + else + echo sleep $i + sleep $i + fi +done \ No newline at end of file diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh new file mode 100755 index 00000000..4bec4ff8 --- /dev/null +++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +#Start DFC app + +docker-compose up -d + +DFC_APP="$(docker ps -q --filter='name=dfc_app')" + +#Wait for initialization of docker containers for dfc app and all simulators +for i in {1..10}; do +if [ $(docker inspect --format '{{ .State.Running }}' $DFC_APP) ] + then + echo "DFC app Running" + break + else + echo sleep $i + sleep $i + fi +done + diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml b/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml similarity index 77% rename from plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml rename to scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml index b95842ba..28dfbbf8 100644 --- a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml +++ b/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml @@ -1,8 +1,9 @@ version: '2' services: dfc: + network_mode: "host" image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest - container_name: dfc + container_name: dfc_app ports: - "8100:8100" - "8433:8433" diff --git a/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot b/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot new file mode 100644 index 00000000..a1135375 --- /dev/null +++ b/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot @@ -0,0 +1,18 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library Process + +*** Variables *** + +${CLI_MRSIM_CTR_REQUESTS} curl http://${SIM_IP}:2222/ctr_requests +${CLI_MRSIM_CTR_RESPONSES} curl http://${SIM_IP}:2222/ctr_responses +${CLI_MRSIM_CTR_FILES} curl http://${SIM_IP}:2222/ctr_unique_files + +*** Keywords *** + +MR Sim Emitted Files Equal + [Documentation] Verify that the number of emitted unique files are equal to a target value + [Arguments] ${target_ctr_value} + ${resp}= Run Process ${CLI_MRSIM_CTR_FILES} shell=yes + Should Be Equal As Strings ${resp.stdout} ${target_ctr_value} \ No newline at end of file diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot new file mode 100755 index 00000000..a59fec6b --- /dev/null +++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot @@ -0,0 +1,89 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library Process + +Resource ../../resources/common-keywords.robot + +*** Variables *** + + +*** Test Cases *** + +######### Single file, SFTP + +Verify single event with single 1MB SFTP file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_1 + [Documentation] Verify single event with single SFTP 1MB file from event poll to published file. + Set Environment Variable MR_TC --tc100 + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh + +Verify single event with single 5MB SFTP file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_2 + [Documentation] Verify single event with single SFTP 5MB file from event poll to published file. + Set Environment Variable MR_TC --tc101 + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh + +Verify single event with single 50MB SFTP file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_3 + [Documentation] Verify single event with single SFTP 50MB file from event poll to published file. + Set Environment Variable MR_TC --tc102 + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh + + +######### Single file, FTPS + +Verify single event with single 1MB FTPS file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_10 + [Documentation] Verify single event with single FTPS 1MB file from event poll to published file. + Set Environment Variable MR_TC --tc200 + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh + +Verify single event with single 5MB FTPS file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_11 + [Documentation] Verify single event with single FTPS 5MB file from event poll to published file. + Set Environment Variable MR_TC --tc201 + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh + +Verify single event with single 50MB FTPS file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_12 + [Documentation] Verify single event with single FTPS 50MB file from event poll to published file. + Set Environment Variable MR_TC --tc202 + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh + + +*** Keywords *** + + + + diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/__init__.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/__init__.robot new file mode 100755 index 00000000..dc2d8379 --- /dev/null +++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation DFC Functional test suite. Single event with single file. diff --git a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot index 7020042b..875228bd 100755 --- a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot +++ b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot @@ -1,12 +1,14 @@ *** Settings *** Library OperatingSystem Library RequestsLibrary +Library Process *** Variables *** *** Test Cases *** + Heartbeat test [Documentation] Check DFC heartbeat Heartbeat I'm living diff --git a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot index c5ea9c60..6dc1eed9 100755 --- a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot +++ b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot @@ -1,2 +1,2 @@ *** Settings *** -Documentation Management Interface suite +Documentation DFC Management Interface suite