X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=run_tests.sh;h=eb7882420ec77a6fabd0a8eb5b11be8c858a4dab;hb=fc30c5208a680d0059cfa48891a1d97747f7f778;hp=0892f92163e88b0f4516078aff0eca26bafb27b4;hpb=9c22cd768a161ec0eab4da24f40a4c626275c746;p=bottlenecks.git diff --git a/run_tests.sh b/run_tests.sh index 0892f921..eb788242 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -11,111 +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 + -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 rubbos" + $(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" - -function check_testcase(){ - - check_suite="$1" - case $check_suite in - "-rubbos") - SUITE_PREFIX=$SUITE_PREFIX_CONFIG/rubbos/testcase_cfg - ;; - "-vstf") - SUITE_PREFIX=$SUITE_PREFIX_CONFIG/vstf/testcase_cfg - ;; - "-posca") - SUITE_PREFIX=$SUITE_PREFIX_CONFIG/posca/testcase_cfg - ;; - esac +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}) - TEST_CASE=$2 - - #find all the test case yaml files first - find $SUITE_PREFIX -name "*yaml" > /tmp/all_testcases.yaml - all_testcases_insuite=`cat /tmp/all_testcases.yaml | awk -F '/' '{print $NF}' | awk -F '.' '{print $1}'` - all_testcases=(${all_testcases_insuite}) - - if [ "${TEST_CASE}" != "" ]; then - testcase_exec=(${TEST_CASE// /}) - for i in "${testcase_exec[@]}"; do - if [[ " ${all_testcases[*]} " != *" $i "* ]]; then - error "unknown test case: $i. available test cases are: ${all_test_cases[@]}" - fi - done - info "tests to execute: ${TEST_CASE}." - else - error "lack of testcase name" - fi -} 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 "Running rubbos test suite\n" - test_file="/home/opnfv/bottlenecks/testsuites/rubbos/testsuite_story/rubbos_story1" - if [[ -f $test_file ]]; then - testcases=($(cat $test_file)) - else - error "no rubbos test suite file" - fi - - for i in "${testcases[@]}"; do - #check if the testcase is legal or not - check_testcase -rubbos $i - #adjust config parameters, different test suite has different methods, take rubbos as an example - #run test case, different test suite has different methods - file=${BASEDIR}/testsuites/rubbos/testcase_cfg/${i}.yaml - python /home/opnfv/bottlenecks/testsuites/rubbos/run_rubbos.py -c $file - done + 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." ;; "vstf") - info "Running vstf test suite" - test_file="/home/opnfv/bottlenecks/testsuites/vstf/testsuite_story/vstf_story1" - if [[ -f $test_file ]]; then - testcases=($(cat $test_file)) - else - error "no vstf test suite file " - fi - - for i in "${testcases[@]}"; do - #check if the testcase is legal or not - check_testcase -vstf $i - #adjust config parameters - #run test case - file=${BASEDIR}/testsuites/vstf/testcase_cfg/${i}.yaml - python /home/opnfv/bottlenecks/testsuites/vstf/run_vstf.py -c $file - done + 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." ;; - "posca") + *) 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" - docker exec bottleneckcompose_bottlenecks_1 bash /home/opnfv/bottlenecks/run_posca.sh + info "Running posca test story: $test_exec" + docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py $test_level $test_exec ;; esac } @@ -132,8 +85,12 @@ while [[ $# > 0 ]] -r|--report) report="-r" ;; - -s|--suite) - SUITE="$2" + -s|--teststory) + teststory="$2" + shift + ;; + -c|--testcase) + testcase="$2" shift ;; *) @@ -160,23 +117,48 @@ 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 + +#clean up correlated docker images +bash ${BASEDIR}/docker/docker_cleanup.sh -d bottlenecks --debug +bash ${BASEDIR}/docker/docker_cleanup.sh -d yardstick --debug +bash ${BASEDIR}/docker/docker_cleanup.sh -d kibana --debug +bash ${BASEDIR}/docker/docker_cleanup.sh -d elasticsearch --debug +bash ${BASEDIR}/docker/docker_cleanup.sh -d influxdb --debug #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 + +# echo "Bottlenecks: cleaning up docker-compose images and dockers" +# docker-compose -f $BASEDIR/docker/bottleneck-compose/docker-compose.yml down --rmi all \ No newline at end of file