Deployment
Automated deployment update
4b1daed
Raw
History Blame Contribute Delete
1.96 kB
.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/