usage="Script to run the tests in bottlenecks auto.
usage:
- bash $(basename "$0") [-h|--help] [-s <test suite>]
+ bash $(basename "$0") [-h|--help] [-s <test suite>] [-c <test case>]
where:
-h|--help show the help text
-r|--report push results to DB(true by default)
- -s|--suite run specific test suite
- <test suite> one of the following:
- rubbos, vstf
+ -s|--teststory run specific test story
+ <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
+ <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"
- 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 "Running posca test suite"
- test_file="/home/opnfv/bottlenecks/testsuites/posca/testsuite_story/posca_factor_test"
- if [[ -f $test_file ]]; then
- testcases=($(cat $test_file))
- else
- error "no posca test suite file "
- fi
-
- for i in "${testcases[@]}"; do
- #check if the testcase is legal or not
- check_testcase -posca $i
- #adjust config parameters
- #run test case
- file=${BASEDIR}/testsuites/posca/testcase_cfg/${i}.yaml
- python /home/opnfv/bottlenecks/testsuites/posca/run_posca.py -c ${i}
- done
+ *)
+ 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
+ sleep 5
+ info "Running posca test story: $test_exec"
+ docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py $test_level $test_exec
;;
esac
}
-r|--report)
report="-r"
;;
- -s|--suite)
- SUITE="$2"
+ -s|--teststory)
+ teststory="$2"
+ shift
+ ;;
+ -c|--testcase)
+ testcase="$2"
shift
;;
*)
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