46 lines
1.3 KiB
Bash
46 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
#Command to install the testers:
|
|
# npm install
|
|
|
|
TEST_IP="psychic.local"
|
|
TEST_TIME=60
|
|
LOG_FILE=psychic-websocket-loadtest.json
|
|
RESULTS_FILE=websocket-loadtest-results.csv
|
|
PROTOCOL=ws
|
|
#PROTOCOL=wss
|
|
|
|
if test -f "$LOG_FILE"; then
|
|
rm $LOG_FILE
|
|
fi
|
|
|
|
echo "url,clients,rps,latency,errors" > $RESULTS_FILE
|
|
|
|
CORES=1
|
|
for CONCURRENCY in 1 2 3 4 5
|
|
do
|
|
echo "Testing $CONCURRENCY clients on $PROTOCOL://$TEST_IP/ws"
|
|
loadtest -c $CONCURRENCY --cores $CORES -t $TEST_TIME --insecure $PROTOCOL://$TEST_IP/ws --quiet 2> /dev/null >> $LOG_FILE
|
|
node parse-websocket-test.js $LOG_FILE $RESULTS_FILE
|
|
sleep 2
|
|
done
|
|
|
|
CORES=2
|
|
for CONNECTIONS in 6 8 10 12 14
|
|
do
|
|
CONCURRENCY=$((CONNECTIONS / 2))
|
|
echo "Testing $CONNECTIONS clients on $PROTOCOL://$TEST_IP/ws"
|
|
loadtest -c $CONCURRENCY --cores $CORES -t $TEST_TIME --insecure $PROTOCOL://$TEST_IP/ws --quiet 2> /dev/null >> $LOG_FILE
|
|
node parse-websocket-test.js $LOG_FILE $RESULTS_FILE
|
|
sleep 2
|
|
done
|
|
|
|
CORES=4
|
|
for CONNECTIONS in 16 20 24 28 32
|
|
do
|
|
CONCURRENCY=$((CONNECTIONS / CORES))
|
|
echo "Testing $CONNECTIONS clients on $PROTOCOL://$TEST_IP/ws"
|
|
loadtest -c $CONCURRENCY --cores $CORES -t $TEST_TIME --insecure $PROTOCOL://$TEST_IP/ws --quiet 2> /dev/null >> $LOG_FILE
|
|
node parse-websocket-test.js $LOG_FILE $RESULTS_FILE
|
|
sleep 2
|
|
done
|