Spaces:
Build error
Build error
| .PHONY: smoke load stress soak all install-k6 proto | |
| # k6 binary with gRPC support | |
| K6 := k6 | |
| GRPC_HOST ?= localhost:9090 | |
| PROTO_DIR := ../../pkg/proto | |
| # Install k6 with gRPC extension | |
| install-k6: | |
| @echo "Installing k6 with gRPC extension..." | |
| @go install go.k6.io/xk6/cmd/xk6@latest | |
| @xk6 build --with github.com/grafana/xk6-grpc | |
| # Copy proto files for k6 | |
| proto: | |
| @echo "Copying proto files..." | |
| @mkdir -p proto | |
| @cp $(PROTO_DIR)/*.proto proto/ | |
| # Smoke test - quick sanity check | |
| smoke: proto | |
| @echo "Running smoke test..." | |
| $(K6) run --env GRPC_HOST=$(GRPC_HOST) \ | |
| --tag testid=smoke-$(shell date +%s) \ | |
| --out json=results/smoke-$(shell date +%Y%m%d-%H%M%S).json \ | |
| grpc-test.js \ | |
| --only smoke | |
| # Load test - normal traffic | |
| load: proto | |
| @echo "Running load test..." | |
| @mkdir -p results | |
| $(K6) run --env GRPC_HOST=$(GRPC_HOST) \ | |
| --tag testid=load-$(shell date +%s) \ | |
| --out json=results/load-$(shell date +%Y%m%d-%H%M%S).json \ | |
| grpc-test.js \ | |
| --only load | |
| # Stress test - find breaking point | |
| stress: proto | |
| @echo "Running stress test..." | |
| @mkdir -p results | |
| $(K6) run --env GRPC_HOST=$(GRPC_HOST) \ | |
| --tag testid=stress-$(shell date +%s) \ | |
| --out json=results/stress-$(shell date +%Y%m%d-%H%M%S).json \ | |
| grpc-test.js \ | |
| --only stress | |
| # Soak test - extended duration | |
| soak: proto | |
| @echo "Running soak test..." | |
| @mkdir -p results | |
| $(K6) run --env GRPC_HOST=$(GRPC_HOST) \ | |
| --tag testid=soak-$(shell date +%s) \ | |
| --out json=results/soak-$(shell date +%Y%m%d-%H%M%S).json \ | |
| grpc-test.js \ | |
| --only soak | |
| # Run all scenarios | |
| all: proto | |
| @echo "Running all test scenarios..." | |
| @mkdir -p results | |
| $(K6) run --env GRPC_HOST=$(GRPC_HOST) \ | |
| --tag testid=full-$(shell date +%s) \ | |
| --out json=results/full-$(shell date +%Y%m%d-%H%M%S).json \ | |
| grpc-test.js | |
| # Export to Grafana Cloud k6 | |
| cloud: proto | |
| @echo "Running in Grafana Cloud..." | |
| $(K6) cloud --env GRPC_HOST=$(GRPC_HOST) grpc-test.js | |
| # Clean results | |
| clean: | |
| rm -rf results/ | |
| rm -rf proto/ | |