# gRPC Load Testing Quick Start ## Installation Complete - **Go**: v1.22.0 installed in `~/go-install/go/` - **ghz**: Installed in `$HOME/go/bin/ghz` - **PATH**: Add `export PATH=$HOME/go/bin:$HOME/go-install/go/bin:$PATH` to your shell ## Quick Commands ### Run All Tests ```bash ./scripts/grpc_load_test_wave78.sh all ``` ### Test Specific Service ```bash # Trading Service ./scripts/grpc_load_test_wave78.sh trading # ML Training Service ./scripts/grpc_load_test_wave78.sh ml # Health Checks ./scripts/grpc_load_test_wave78.sh health ``` ### Stress Test ```bash # 1000 RPS, 30s duration, 100 connections ./scripts/grpc_load_test_wave78.sh stress ``` ### Custom Load Parameters ```bash export DURATION="30s" export RPS="500" export CONNECTIONS="50" export CONCURRENCY="100" ./scripts/grpc_load_test_wave78.sh trading ``` ## Direct ghz Usage ### Simple Test ```bash $HOME/go/bin/ghz \ --insecure \ --proto services/trading_service/proto/trading.proto \ --call trading.TradingService.GetOrderStatus \ -d '{"order_id": "test-123"}' \ --duration 10s \ --rps 100 \ localhost:50051 ``` ### With Authentication ```bash $HOME/go/bin/ghz \ --insecure \ --proto services/trading_service/proto/trading.proto \ --call trading.TradingService.GetOrderStatus \ -d '{"order_id": "test-123"}' \ -m '{"authorization": "Bearer YOUR_JWT_TOKEN"}' \ --duration 10s \ --rps 100 \ localhost:50051 ``` ## View Results ```bash # JSON format cat test_results/grpc_load_tests/*.json | jq . # Text format cat test_results/grpc_load_tests/*.txt # Latest results ls -lt test_results/grpc_load_tests/ | head ``` ## Service Ports - API Gateway: 50050 - Trading Service: 50051 - Backtesting Service: 50052 - ML Training Service: 50053 ## Full Documentation See: `docs/WAVE78_AGENT3_GRPC_LOAD_TEST_SETUP.md`