new error request

This commit is contained in:
Steve Waterworth
2019-02-11 16:18:15 +00:00
parent 47a8560679
commit b0261de4a6
3 changed files with 51 additions and 23 deletions

View File

@@ -22,8 +22,9 @@ else
fi
echo "Starting load with $CLIENTS clients"
echo "ERROR $ERROR"
if [ -n "$SILENT" ]
if [ "$SILENT" -eq 1 ]
then
locust -f robot-shop.py --host "$HOST" --no-web -c $CLIENTS -r 1 > /dev/null 2>&1
else

View File

@@ -9,6 +9,15 @@ NUM_CLIENTS=1
# HOST where Stan's Robot Shop web UI is running
HOST="http://localhost:8080"
# Error flag
ERROR=0
# Daemon flag
DAEMON="-it"
SILENT=0
USAGE="\nloadgen.sh\n\te - error flag\n\td - run in background\n\tn - number of clients\n\th - target host\n"
if [ ! -f ../.env ]
then
echo "Please run this script from the load-gen directory"
@@ -21,27 +30,37 @@ eval $(egrep '[A-Z]+=' ../.env)
echo "Repo $REPO"
echo "Tag $TAG"
docker pull ${REPO}/rs-load:${TAG} | cat
while getopts 'edn:h:' OPT
do
case $OPT in
e)
ERROR=1
;;
d)
DAEMON="-d"
SILENT=1
;;
n)
NUM_CLIENTS=$OPTARG
;;
h)
HOST=$OPTARG
;;
*)
echo "$USAGE"
exit 1
;;
esac
done
if [ "$1" = "-d" ]
then
echo "running in background"
docker run \
-d \
--name loadgen \
--rm \
--network=host \
-e "HOST=$HOST" \
-e "NUM_CLIENTS=$NUM_CLIENTS" \
-e 'SILENT=1' \
${REPO}/rs-load:${TAG}
else
docker run \
-it \
--rm \
--network=host \
-e "HOST=$HOST" \
-e "NUM_CLIENTS=$NUM_CLIENTS" \
${REPO}/rs-load:${TAG}
fi
docker run \
$DAEMON \
--name loadgen \
--rm \
--network=host \
-e "HOST=$HOST" \
-e "NUM_CLIENTS=$NUM_CLIENTS" \
-e "SILENT=$SILENT" \
-e "ERROR=$ERROR" \
${REPO}/rs-load:${TAG}

View File

@@ -1,3 +1,4 @@
import os
from locust import HttpLocust, TaskSet, task
from random import choice
from random import randint
@@ -60,6 +61,13 @@ class UserBehavior(TaskSet):
order = self.client.post('/api/payment/pay/{}'.format(uniqueid), json=cart).json()
print('Order {}'.format(order))
@task
def error(self):
if os.environ['ERROR'] == '1':
print('Error request')
cart = {'total': 0, 'tax': 0}
self.client.post('/api/payment/pay/partner-57', json=cart)
class WebsiteUser(HttpLocust):
task_set = UserBehavior