Load Test (JMeter)¶
Goal: Verify the stability and observability of the ingress path under target throughput; ensure no real devices are hit using Dry-Run and disabled consumers; cross-validate via RabbitMQ and SkyWalking metrics.
1. Test Scope & Path¶
- Path: Gateway → ruoyi-robot → MQ
- Risk control:
- Dry-Run: all requests carry
X-Dry-Run: true
; the gateway returns 403 on real branches. - Disable consumers: downstream consumer process/thread count = 0; only validate ingress writes and throughput.
- Peripheral isolation: tasks are mock no-ops; no actual device actions are triggered.
2. Traffic Model & Method¶
- Target 100 QPS for 3 minutes; use Constant Throughput Timer to control global rate.
- Assertions/post-processors: keep necessary fields (request headers, injected
traceId
, HTTP status, etc.).
3. Results · Overview¶
- Error rate 0%, throughput stable; P95/P99 latency within expectations.
4. Results · Details¶
- Response
200 OK
; key headers/tags such asX-Which-Route
,traceId
are present for Trace ↔ Log cross-checks.
5. Message-Side Verification¶
- Queue:
robot.tempTask.q
(example); requests are visible as enqueued, no consumption (consumers disabled), DLX/DLQ rules OK.
6. Gateway Service Metrics¶
- Apdex, success rate, service load, instance load, endpoint load remain stable at 100 QPS, without abnormal spikes.
7. Business Service Metrics¶
- Service level: average latency, P95/P99, success rate stay stable.
- Instance level: load distribution is balanced, no obvious skew.
8. Endpoint Load & Latency¶
- Top-N endpoint load/latency visualization.
- Troubleshooting flow: locate slow/error endpoints → correlate traces → back-reference logs by
traceId
.