diff options
author | Jerry Flood <jf9860@att.com> | 2017-04-09 11:25:24 -0400 |
---|---|---|
committer | Jerry Flood <jf9860@att.com> | 2017-04-12 09:09:04 -0400 |
commit | ba3b329cdcf9c56f7c4ce3a3b87f4a1daaed1d95 (patch) | |
tree | dc0a1ed25793c3beba7577dfea621140315797e2 | |
parent | b77b6975d66da38adaadec2ad1e395087a4d6f33 (diff) |
TEST-2 first cut a soak test engine
runSoak.sh is used to initiate a soak test for a duration in seconds
runEteTag.sh is the command invoked by the soak test engine to execute a
single tag.
Change-Id: I11ee797442cd3baa246e0f4a20bc4dac19c5b89e
Signed-off-by: Jerry Flood <jf9860@att.com>
-rw-r--r-- | runEteTag.sh | 90 | ||||
-rw-r--r-- | runSoak.sh | 7 |
2 files changed, 97 insertions, 0 deletions
diff --git a/runEteTag.sh b/runEteTag.sh new file mode 100644 index 00000000..64f36e75 --- /dev/null +++ b/runEteTag.sh @@ -0,0 +1,90 @@ +#!/bin/bash +INSTALL_DIR=/var/opt/OpenECOMP_ETE + +##################################################################### +# Start display on 256 if it has not already been started... +# This will stay up and be used for all soak tests +# Tried this once and got an unexpected error so restored the start/kill +# pattern for each test for now. +# Perhaps the error was unrelated to the using the same display for +# all tests. Preserve this just in case.... +function start_display_if +{ + export DISPLAY=:256 + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + while [ $? = 1 ] + do + # Start Xvfb + echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" + Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & + disown + done +} + +##################################################################### +function start_display +{ + export DISPLAY=:$(( $TEST_NUMBER % 256 )) + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + while [ $? = 0 ] + do + DISPLAY=$(( $RANDOM % 1000 )) + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + done + # Start Xvfb + echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" + Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & + XVFBPID=$! + disown + echo ${DISPLAY} > /tmp/robotDisplay.$TEST_NUMBER + # Get and save pid of this spawned process to make sure we kill the correct process later +} + +##################################################################### +function kill_display +{ + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + if [ $? = 0 ]; then + kill -9 $XVFBPID >/dev/null 2>&1 + fi + rm -rf /tmp/robotDisplay.$TEST_NUMBER +} + +##################################################################### +# main +##################################################################### +export ROBOT_TAG=$1 +export TEST_NUMBER=$2 + +if [ "$TEST_NUMBER" = "" ];then + TEST_NUMBER=$$ +fi + +# Use default if none specified as env var +DEFAULT_LOG_LEVEL="INFO" # Available levels: TRACE, DEBUG, INFO (default), WARN, NONE (no logging) +LOG_LEVEL=${LOG_LEVEL:-$DEFAULT_LOG_LEVEL} + +# To mitigate the chromedriver hanging issue +export DBUS_SESSION_BUS_ADDRESS=/dev/null + +RES="1280x1024x24" +OUTPUT_FOLDER=/share/logs/${SOAKSUBFOLDER}runEteTag_$TEST_NUMBER +mkdir -p $OUTPUT_FOLDER +INSTALL_DIR="/var/opt/OpenECOMP_ETE" + +ROBOT_LIBS=./robot/library:./robot/library/eteutils:./robot/library/heatbridge +VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py" +VARIABLES="-v GLOBAL_BUILD_NUMBER:$TEST_NUMBER" +LISTENERS= + +start_display + +# Execute tests +echo -e "Executing robot test ${ROBOT_TAG} at log level ${LOG_LEVEL}" + +cd ${INSTALL_DIR} +python -m robot.run -L ${LOG_LEVEL} -d ${OUTPUT_FOLDER} ${VARIABLEFILES} ${VARIABLES} ${LISTENERS} -P ${ROBOT_LIBS} -i ${ROBOT_TAG} $(pwd) > ${OUTPUT_FOLDER}/robot.out 2>&1 + +#################################################################### +# Stop Xvfb we started earlier +kill_display diff --git a/runSoak.sh b/runSoak.sh new file mode 100644 index 00000000..3b223ae7 --- /dev/null +++ b/runSoak.sh @@ -0,0 +1,7 @@ +#!/bin/bash +INSTALL_DIR=/var/opt/OpenECOMP_ETE +DURATION=$1 + +cd ${INSTALL_DIR} +export PYTHONPATH=${INSTALL_DIR}/robot/library +python -m loadtest.TestMain -d ${DURATION} --logfile /share/logs/soak_$$.log
\ No newline at end of file |