Files
robot-shop/load-gen/load-gen.sh

107 lines
2.1 KiB
Bash
Raw Normal View History

2018-02-06 15:51:43 -05:00
#!/bin/sh
2018-10-22 15:43:40 +01:00
# set -x
2018-04-24 17:35:44 +01:00
# Changing the NUM_CLIENTS environment variable varies the load on the application
# The bigger the number the more requests, the bigger the load
2018-10-22 15:43:40 +01:00
NUM_CLIENTS=1
2019-06-03 12:32:57 +01:00
# Time to run with NUM_CLIENTS e.g. 1h
RUN_TIME=0
2018-10-22 15:43:40 +01:00
# HOST where Stan's Robot Shop web UI is running
HOST="http://localhost:8080"
2018-04-24 17:35:44 +01:00
2019-02-11 16:18:15 +00:00
# Error flag
ERROR=0
# Daemon flag
DAEMON="-it"
SILENT=0
2019-06-03 12:32:57 +01:00
USAGE="\
loadgen.sh
e - error flag
d - run in background
n - number of clients
t - time to run n clients
h - target host
"
2019-02-11 16:18:15 +00:00
2018-10-22 15:43:40 +01:00
if [ ! -f ../.env ]
then
echo "Please run this script from the load-gen directory"
exit 1
fi
2018-07-24 11:07:21 +01:00
2018-03-21 08:40:42 +00:00
# get the tag info
eval $(egrep '[A-Z]+=' ../.env)
echo "Repo $REPO"
echo "Tag $TAG"
2018-02-06 15:51:43 -05:00
2019-06-03 12:32:57 +01:00
while getopts 'edn:t:h:' OPT
2019-02-11 16:18:15 +00:00
do
case $OPT in
e)
ERROR=1
;;
d)
DAEMON="-d"
SILENT=1
;;
n)
NUM_CLIENTS=$OPTARG
2019-06-03 12:32:57 +01:00
if echo "$NUM_CLIENTS" | egrep -q '^[0-9]+$'
then
CLIENTS=${NUM_CLIENTS:-1}
echo "Running $CLIENTS clients"
else
echo "$NUM_CLIENTS is not a number falling back to 1"
CLIENTS=1
fi
;;
t)
RUN_TIME=$OPTARG
if echo "$RUN_TIME" | egrep -q '^([0-9]+h)?([0-9]+m)?$'
then
echo "Run time set to $RUN_TIME"
else
echo "Time format 1h30m"
echo "$USAGE"
exit 1
fi
2019-02-11 16:18:15 +00:00
;;
h)
HOST=$OPTARG
2019-06-03 12:32:57 +01:00
if echo "$HOST" | egrep '^http://[a-z0-9]+'
then
echo "Host $HOST"
else
echo "Host must start http://"
echo "$USAGE"
exit 1
fi
2019-02-11 16:18:15 +00:00
;;
*)
2019-06-03 12:32:57 +01:00
echo "$USAGE"
2019-02-11 16:18:15 +00:00
exit 1
;;
esac
done
2019-01-11 10:30:37 +00:00
2019-02-11 16:18:15 +00:00
docker run \
$DAEMON \
--name loadgen \
--rm \
--network=host \
-e "HOST=$HOST" \
-e "NUM_CLIENTS=$NUM_CLIENTS" \
2019-06-03 12:32:57 +01:00
-e "RUN_TIME=$RUN_TIME" \
2019-02-11 16:18:15 +00:00
-e "SILENT=$SILENT" \
-e "ERROR=$ERROR" \
${REPO}/rs-load:${TAG}
2018-02-06 15:51:43 -05:00