Files
stripstream-librarian/infra/bench.sh

34 lines
717 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
BASE_API="${BASE_API:-http://127.0.0.1:8080}"
TOKEN="${API_TOKEN:-stripstream-dev-bootstrap-token}"
measure() {
local name="$1"
local url="$2"
local total=0
local n=15
for _ in $(seq 1 "$n"); do
local t
t=$(curl -s -o /dev/null -w '%{time_total}' -H "Authorization: Bearer $TOKEN" "$url")
total=$(python3 - "$total" "$t" <<'PY'
import sys
print(float(sys.argv[1]) + float(sys.argv[2]))
PY
)
done
local avg
avg=$(python3 - "$total" "$n" <<'PY'
import sys
print(round((float(sys.argv[1]) / int(sys.argv[2]))*1000, 2))
PY
)
echo "$name avg_ms=$avg"
}
measure "books" "$BASE_API/books"
measure "search" "$BASE_API/search?q=sample"
echo "bench done"