43 lines
1.2 KiB
Bash
43 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
#Command to install the testers:
|
|
# npm install
|
|
|
|
TEST_IP="psychic.local"
|
|
TEST_TIME=10
|
|
#LOG_FILE=psychic-http-loadtest.log
|
|
LOG_FILE=_psychic-http-loadtest.json
|
|
RESULTS_FILE=http-loadtest-results.csv
|
|
TIMEOUT=10000
|
|
WORKERS=1
|
|
PROTOCOL=http
|
|
#PROTOCOL=https
|
|
|
|
echo "url,connections,rps,latency,errors" > $RESULTS_FILE
|
|
|
|
for CONCURRENCY in 1 2 3 4 5 6 7 8 9 10 15 20
|
|
do
|
|
printf "\n\nCLIENTS: *** $CONCURRENCY ***\n\n" >> $LOG_FILE
|
|
echo "Testing $CONCURRENCY clients on $PROTOCOL://$TEST_IP/"
|
|
autocannon -c $CONCURRENCY -w $WORKERS -d $TEST_TIME -j "$PROTOCOL://$TEST_IP/" > $LOG_FILE
|
|
node parse-http-test.js $LOG_FILE $RESULTS_FILE
|
|
sleep 5
|
|
done
|
|
|
|
for CONCURRENCY in 1 2 3 4 5 6 7 8 9 10 15 20
|
|
do
|
|
echo "Testing $CONCURRENCY clients on $PROTOCOL://$TEST_IP/api"
|
|
autocannon -c $CONCURRENCY -w $WORKERS -d $TEST_TIME -j "$PROTOCOL://$TEST_IP/api?foo=bar" > $LOG_FILE
|
|
node parse-http-test.js $LOG_FILE $RESULTS_FILE
|
|
sleep 5
|
|
done
|
|
|
|
for CONCURRENCY in 1 2 3 4 5 6 7 8 9 10 15 20
|
|
do
|
|
echo "Testing $CONCURRENCY clients on $PROTOCOL://$TEST_IP/alien.png"
|
|
autocannon -c $CONCURRENCY -w $WORKERS -d $TEST_TIME -j "$PROTOCOL://$TEST_IP/alien.png" > $LOG_FILE
|
|
node parse-http-test.js $LOG_FILE $RESULTS_FILE
|
|
sleep 5
|
|
done
|
|
|
|
rm $LOG_FILE
|