diff --git a/Makefile b/Makefile index 1ad53b4..efd28f3 100644 --- a/Makefile +++ b/Makefile @@ -267,33 +267,36 @@ load-test: echo "Concurrent: $$CONCURRENT"; \ echo ""; \ START_TIME=$$(date +%s); \ - seq 1 $$REQUESTS | xargs -P$$CONCURRENT -I{} bash -c ' \ - LINE=$$((RANDOM % $(TOTAL_VOICES) + 1)); \ - VOICE_SPEC=$$(sed -n "$${LINE}p" /tmp/load_test_voices.txt); \ - MODEL=$$(echo $$VOICE_SPEC | cut -d: -f1); \ - VOICE=$$(echo $$VOICE_SPEC | cut -d: -f2); \ + seq 1 $$REQUESTS | xargs -P$$CONCURRENT -I{} bash -c " \ + TOTAL_VOICES=\$$(wc -l < /tmp/load_test_voices.txt); \ + LINE=\$$((RANDOM % \$$TOTAL_VOICES + 1)); \ + VOICE_SPEC=\$$(sed -n \"\$${LINE}p\" /tmp/load_test_voices.txt); \ + MODEL=\$$(echo \$$VOICE_SPEC | cut -d: -f1); \ + VOICE=\$$(echo \$$VOICE_SPEC | cut -d: -f2); \ NUM={}; \ - START=$$(date +%s%3N); \ + START=\$$(date +%s%3N); \ if curl -s -X POST http://$(REMOTE_HOST):8000/v1/audio/speech \ - -H "Content-Type: application/json" \ - -d "{\"voice\":\"$$VOICE\",\"input\":\"Load test number $$NUM\"}" \ - -o /tmp/load_test/request_$${NUM}.mp3 2>&1; then \ - END=$$(date +%s%3N); \ - DURATION=$$((END - START)); \ - SIZE=$$(stat -c%s /tmp/load_test/request_$${NUM}.mp3 2>/dev/null || echo 0); \ - printf "[%3d] %-20s %-25s %5dms %6d bytes\n" "$$NUM" "$$MODEL" "$$VOICE" "$$DURATION" "$$SIZE"; \ + -H 'Content-Type: application/json' \ + -d '{\"model\":\"'\$$MODEL'\",\"voice\":\"'\$$VOICE'\",\"input\":\"Load test number '\$$NUM'\"}' \ + -o /tmp/load_test/request_\$${NUM}.mp3 2>&1; then \ + END=\$$(date +%s%3N); \ + DURATION=\$$((END - START)); \ + SIZE=\$$(stat -c%s /tmp/load_test/request_\$${NUM}.mp3 2>/dev/null || echo 0); \ + printf '[%3d] %-20s %-25s %5dms %6d bytes\n' \"\$$NUM\" \"\$$MODEL\" \"\$$VOICE\" \"\$$DURATION\" \"\$$SIZE\"; \ else \ - printf "[%3d] %-20s %-25s FAILED\n" "$$NUM" "$$MODEL" "$$VOICE"; \ + printf '[%3d] %-20s %-25s FAILED\n' \"\$$NUM\" \"\$$MODEL\" \"\$$VOICE\"; \ fi \ - '; \ + "; \ END_TIME=$$(date +%s); \ DURATION=$$((END_TIME - START_TIME)); \ SUCCESS=$$(ls /tmp/load_test/*.mp3 2>/dev/null | wc -l); \ + VALID=$$(find /tmp/load_test -name '*.mp3' -size +1000c 2>/dev/null | wc -l); \ echo ""; \ echo "🎉 Load test complete!"; \ echo " Total requests: $$REQUESTS"; \ - echo " Successful: $$SUCCESS"; \ - echo " Failed: $$((REQUESTS - SUCCESS))"; \ + echo " Files created: $$SUCCESS"; \ + echo " Valid audio (>1KB): $$VALID"; \ + echo " Failed: $$((REQUESTS - VALID))"; \ echo " Duration: $${DURATION}s"; \ echo " Avg: $$((DURATION * 1000 / REQUESTS))ms per request"; \ echo " Throughput: $$((REQUESTS / DURATION)) req/s"; \