1
|
#!/bin/bash -e
|
2
|
|
3
|
PORT=4201
|
4
|
PIDFILE=stresstest.pid
|
5
|
|
6
|
rm -f "${PIDFILE}"
|
7
|
trap '[ -r "${PIDFILE}" ] && kill "$(cat "${PIDFILE}")"; rm -f "${PIDFILE}"' \
|
8
|
EXIT INT TERM QUIT HUP
|
9
|
|
10
|
./shellinaboxd -p "${PORT}" -s "/:$(id -u):$(id -g):${PWD}:/bin/bash -c \
|
11
|
'while read i; do [ -z "${i}" ] && break; echo \" $i\"; done'" \
|
12
|
--background="${PIDFILE}"
|
13
|
|
14
|
session() {
|
15
|
local data="$(wget -O- --post-data='' --quiet "http://localhost:${PORT}/")"
|
16
|
local session="${data##*\"session\":\"}"
|
17
|
session="${session%%\"*}"
|
18
|
while read -r i; do
|
19
|
local keys="$(echo -n "${i}" | od -tx1 -An -w1000)"
|
20
|
wget -O/dev/null --post-data="session=${session}&keys=${keys// /}" \
|
21
|
--quiet "http://localhost:${PORT}/"
|
22
|
kill -0 "$(cat "${PIDFILE}")" || break
|
23
|
[ -z "$i" ] && break
|
24
|
data="$(wget -O- --post-data="session=${session}" \
|
25
|
--quiet "http://localhost:${PORT}/")"
|
26
|
data=${data##*\"data\":\"}
|
27
|
data=${data%%\"*}
|
28
|
echo "${data}"
|
29
|
done <<'EOF'
|
30
|
Hello world
|
31
|
This is a test
|
32
|
OK, that's it for now
|
33
|
|
34
|
EOF
|
35
|
}
|
36
|
|
37
|
pids=""
|
38
|
for i in `seq 100`; do
|
39
|
session &
|
40
|
pids="${pids} $!"
|
41
|
sleep 0.02
|
42
|
kill -0 "$(cat "${PIDFILE}")" || break
|
43
|
done
|
44
|
wait $pids >&/dev/null
|