#!/bin/bash # 2026-03-19 — stress test script: параллельный запуск всех 8 стресс-функций BASE="https://sless.kube5s.ru/fn/sless-ffd1f598c169b0ae" echo "=== РАУНД 1: первый холодный запуск ===" curl -s -m 35 "$BASE/stress-slow" -d '{"sleep":3}' -H "Content-Type:application/json" > /tmp/r_slow.json & curl -s -m 10 "$BASE/stress-divzero" > /tmp/r_divzero.json & curl -s -m 40 "$BASE/stress-bigloop" -d '{"n":1000000}' -H "Content-Type:application/json"> /tmp/r_bigloop.json & curl -s -m 35 "$BASE/stress-writer" -d '{"rows":3,"prefix":"batch1"}' -H "Content-Type:application/json" > /tmp/r_writer.json & curl -s -m 15 "$BASE/stress-go-fast" -d '{"n":15}' -H "Content-Type:application/json" > /tmp/r_go_fast.json & curl -s -m 10 "$BASE/stress-go-nil" > /tmp/r_go_nil.json & curl -s -m 20 "$BASE/stress-js-async" > /tmp/r_js_async.json & curl -s -m 10 "$BASE/stress-js-badenv" > /tmp/r_js_badenv.json & wait echo "[slow]: $(cat /tmp/r_slow.json)" echo "[divzero]: $(cat /tmp/r_divzero.json)" echo "[bigloop]: $(cat /tmp/r_bigloop.json)" echo "[writer]: $(cat /tmp/r_writer.json)" echo "[go-fast]: $(cat /tmp/r_go_fast.json)" echo "[go-nil]: $(cat /tmp/r_go_nil.json)" echo "[js-async]: $(cat /tmp/r_js_async.json)" echo "[js-badenv]:$(cat /tmp/r_js_badenv.json)" echo "" echo "=== РАУНД 2: повторный (горячий кэш) ===" curl -s -m 15 "$BASE/stress-bigloop" -d '{"n":2000000}' -H "Content-Type:application/json" > /tmp/r2_bigloop.json & curl -s -m 10 "$BASE/stress-go-fast" -d '{"n":20}' -H "Content-Type:application/json" > /tmp/r2_go_fast.json & curl -s -m 20 "$BASE/stress-js-async" > /tmp/r2_async.json & curl -s -m 35 "$BASE/stress-writer" -d '{"rows":10,"prefix":"batch2"}' -H "Content-Type:application/json" > /tmp/r2_writer.json & wait echo "[bigloop-2M]: $(cat /tmp/r2_bigloop.json)" echo "[go-fast-20]: $(cat /tmp/r2_go_fast.json)" echo "[js-async-2]: $(cat /tmp/r2_async.json)" echo "[writer-10]: $(cat /tmp/r2_writer.json)" echo "" echo "=== РАУНД 3: crash функции с неверными параметрами ===" curl -s -m 10 "$BASE/stress-divzero" -d '{"n":100,"d":0}' -H "Content-Type:application/json" > /tmp/r3_dz.json & curl -s -m 10 "$BASE/stress-go-nil" -d '{"crash":true}' -H "Content-Type:application/json" > /tmp/r3_nil.json & curl -s -m 10 "$BASE/stress-js-badenv" -d '{"crash":true}' -H "Content-Type:application/json" > /tmp/r3_bad.json & # divzero с нормальным делителем — должен вернуть результат curl -s -m 10 "$BASE/stress-divzero" -d '{"n":42,"d":7}' -H "Content-Type:application/json" > /tmp/r3_ok.json & # go-nil без краша — должен вернуть ok curl -s -m 10 "$BASE/stress-go-nil" -d '{"crash":false}' -H "Content-Type:application/json" > /tmp/r3_nil_ok.json & wait echo "[divzero crash]: $(cat /tmp/r3_dz.json)" echo "[go-nil crash]: $(cat /tmp/r3_nil.json)" echo "[js-badenv crash]: $(cat /tmp/r3_bad.json)" echo "[divzero ok 42/7]: $(cat /tmp/r3_ok.json)" echo "[go-nil ok]: $(cat /tmp/r3_nil_ok.json)" echo "" echo "=== ИТОГ: количество строк в таблице ===" curl -s -m 15 "$BASE/pg-table-reader" echo "" echo "=== DONE ==="