From 15c3931fd723f565e847033bc6c1df818a761b4a Mon Sep 17 00:00:00 2001 From: yuyang Date: Sat, 25 Mar 2017 16:40:19 +0800 Subject: [PATCH] Add task selection to test suite entrance file JIRA: BOTTLENECK-143 Add task selection to test suite entrance file Change-Id: Ia21b3121d104a457a66e2c77e3caf091e102f388 Signed-off-by: yuyang --- run_tests.sh | 100 +++++++++++++-------- ...sca_stress_ping.yaml => posca_factor_ping.yaml} | 0 .../{posca_stress_ping.py => posca_factor_ping.py} | 0 testsuites/posca/testsuite_story/posca_factor_test | 5 +- 4 files changed, 68 insertions(+), 37 deletions(-) rename testsuites/posca/testcase_cfg/{posca_stress_ping.yaml => posca_factor_ping.yaml} (100%) rename testsuites/posca/testcase_script/{posca_stress_ping.py => posca_factor_ping.py} (100%) diff --git a/run_tests.sh b/run_tests.sh index 798a5bac..f6744bf1 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -11,55 +11,64 @@ usage="Script to run the tests in bottlenecks auto. usage: - bash $(basename "$0") [-h|--help] [-s ] + bash $(basename "$0") [-h|--help] [-s ] [-c ] where: -h|--help show the help text -r|--report push results to DB(true by default) - -s|--suite run specific test suite - one of the following: - rubbos, vstf, posca + -s|--teststory run specific test story + one of the following: + (rubbos, vstf, posca_factor_test) + user can also define their own test story and pass as var to this file, + please refer to testsuites/posca/testsuite_story/ for details + -c|--testcase run specific test case + one of the following: + (posca_factor_system_bandwidth, posca_factor_ping) examples: $(basename "$0") - $(basename "$0") -s posca" + $(basename "$0") -s posca_factor_test" + +Bottlenecks_key_dir="/home/opnfv/bottlenecks/utils/infra_setup" +POSCA_SCRIPT="/home/opnfv/bottlenecks/testsuites/posca" +SUITE_PREFIX="/home/opnfv/bottlenecks/testsuites/posca/testcase_cfg" report=true -arr_test_suite=(rubbos vstf posca) +#TO-DO add auto-find for test story as for test case +all_test_story=(rubbos vstf posca_factor_test) -Bottlenecks_key_dir="/home/opnfv/bottlenecks/utils/infra_setup" +find $SUITE_PREFIX -name "*yaml" > /tmp/all_testcases.yaml +all_testcases_posca=`cat /tmp/all_testcases.yaml | awk -F '/' '{print $NF}' | awk -F '.' '{print $1}'` +all_test_case=(${all_testcases_posca}) function run_test(){ - test_suite=$1 - echo "Running test suite $test_suite" + test_exec=$1 - case $test_suite in + case $test_exec in "rubbos") info "After OPNFV Colorado release, Rubbos testsuite is not updating anymore. -This entrance for running Rubbos within Bottlenecks is no longer supported. -This testsuite is also not in the release plan with Bottlenecks since then. -If you want to run Rubbos, please refer to earlier releases.\n" + This entrance for running Rubbos within Bottlenecks is no longer supported. + This testsuite is also not in the release plan with Bottlenecks since then. + If you want to run Rubbos, please refer to earlier releases." ;; "vstf") info "After OPNFV Colorado release, VSTF testsuite is not updating anymore. -This entrance for running VSTF within Bottlenecks is no longer supported. -This testsuite is also not in the release plan with Bottlenecks since then. -If you want to run VSTF, please refer to earlier releases.\n" + This entrance for running VSTF within Bottlenecks is no longer supported. + This testsuite is also not in the release plan with Bottlenecks since then. + If you want to run VSTF, please refer to earlier releases." ;; - "posca") - POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca - TEST_CASE=posca_factor_system_bandwidth + *) info "Composing up dockers" docker-compose -f /home/opnfv/bottlenecks/docker/bottleneck-compose/docker-compose.yml up -d info "Pulling tutum/influxdb for yardstick" docker pull tutum/influxdb:0.13 - info "Copying testing scripts to docker" - docker cp /home/opnfv/bottlenecks/run_posca.sh bottleneckcompose_bottlenecks_1:/home/opnfv/bottlenecks +# info "Copying testing scripts to docker" +# docker cp /home/opnfv/bottlenecks/run_posca.sh bottleneckcompose_bottlenecks_1:/home/opnfv/bottlenecks sleep 5 - info "Running posca test suite with default testcase posca_stress_traffic" - docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE + info "Running posca test story: $test_exec" + docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py $test_level $test_exec ;; esac } @@ -76,8 +85,12 @@ while [[ $# > 0 ]] -r|--report) report="-r" ;; - -s|--suite) - SUITE="$2" + -s|--teststory) + teststory="$2" + shift + ;; + -c|--testcase) + testcase="$2" shift ;; *) @@ -104,23 +117,38 @@ ssh-keygen -t rsa -f $Bottlenecks_key_dir/bottlenecks_key/bottlenecks_key -q -N chmod 600 $Bottlenecks_key_dir/bottlenecks_key/* #check the test suite name is correct -if [ "${SUITE}" != "" ]; then - suite_exec=(${SUITE//,/ }) - for i in "${suite_exec[@]}"; do - if [[ " ${arr_test_suite[*]} " != *" $i "* ]]; then - error "unkown test suite: $i" +if [ "${teststory}" != "" ]; then + teststory_exec=(${teststory//,/ }) + for i in "${teststory_exec[@]}"; do + if [[ " ${all_test_story[*]} " != *" $i "* ]]; then + error "Unkown test story: $i" fi done - info "Tests to execute: ${SUITE}" fi -# Source credentials -info "Sourcing Credentials openstack.creds to run the tests.." -source /home/opnfv/bottlenecks/config/openstack.creds +#check the test case name is correct +if [ "${testcase}" != "" ]; then + testcase_exec=(${testcase//,/ }) + for i in "${testcase_exec[@]}"; do + if [[ " ${all_test_case[*]} " != *" $i "* ]]; then + error "Unkown test case: $i" + fi + done +fi #run tests -if [ "${SUITE}" != "" ]; then - for i in "${suite_exec[@]}"; do +if [ "${teststory}" != "" ]; then + test_level="teststory" + for i in "${teststory_exec[@]}"; do + info "Start to run test story $i" run_test $i done fi + +if [ "${testcase}" != "" ]; then + test_level="testcase" + for i in "${testcase_exec[@]}"; do + info "Start to run test case $i" + run_test $i + done +fi \ No newline at end of file diff --git a/testsuites/posca/testcase_cfg/posca_stress_ping.yaml b/testsuites/posca/testcase_cfg/posca_factor_ping.yaml similarity index 100% rename from testsuites/posca/testcase_cfg/posca_stress_ping.yaml rename to testsuites/posca/testcase_cfg/posca_factor_ping.yaml diff --git a/testsuites/posca/testcase_script/posca_stress_ping.py b/testsuites/posca/testcase_script/posca_factor_ping.py similarity index 100% rename from testsuites/posca/testcase_script/posca_stress_ping.py rename to testsuites/posca/testcase_script/posca_factor_ping.py diff --git a/testsuites/posca/testsuite_story/posca_factor_test b/testsuites/posca/testsuite_story/posca_factor_test index a19fce59..9e9909e2 100644 --- a/testsuites/posca/testsuite_story/posca_factor_test +++ b/testsuites/posca/testsuite_story/posca_factor_test @@ -1 +1,4 @@ -posca_factor_system_bandwidth \ No newline at end of file +testcase: +- + posca_factor_system_bandwidth + -- 2.16.6