qa-realtime-protocols
Real-time protocol testing: 7 skills (grpc-streaming-tests, mqtt-tests, server-sent-events-tests, sse-load-test, stomp-amqp-tests, webhook-replay-tests, websocket-tests) and 1 agent (realtime-protocol-reviewer). Anchored on RFC 6455, WHATWG SSE, gRPC streaming, MQTT v5, and the Standard Webhooks signature scheme.
Install this plugin
/plugin install qa-realtime-protocols@testland-qaPart of role bundle: qa-role-backend
qa-realtime-protocols
Real-time protocol wire-level testing: not just message round-trips, but handshakes, control frames, close codes, signature schemes, and the failure-mode matrix that's invisible until production.
Components
| Type | Name | Description |
|---|---|---|
| Skill | websocket-tests | RFC 6455 - handshake (Sec-WebSocket-Key/Accept), control frames (ping/pong/close), close codes (1000/1001/1006/1011), subprotocol negotiation, ping/pong keepalive, reconnect-with-jitter, Playwright frame inspection |
| Skill | server-sent-events-tests | WHATWG SSE - EventSource lifecycle, event-stream format (data:/event:/id:/retry:), Last-Event-ID reconnect-with-replay, 204 disable-reconnect, HTTP/1.1 connection-pool ceiling |
| Skill | grpc-streaming-tests | gRPC streaming RPCs (Server / Client / Bidi); deadline + cancellation propagation; status code matrix (CANCELLED, DEADLINE_EXCEEDED, INVALID_ARGUMENT, UNAUTHENTICATED, etc.); ghz load test |
| Skill | mqtt-tests | MQTT v5 - QoS 0/1/2 redelivery semantics, retained messages, Last Will and Testament, shared subscriptions ($share/...), $SYS/... introspection; Mosquitto in CI |
| Skill | webhook-replay-tests | Standard Webhooks signature scheme (svix-id + svix-timestamp + svix-signature, HMAC-SHA256), 5-minute replay window, idempotency dedup, multi-key acceptance for rotation |
| Agent | realtime-protocol-reviewer | Adversarial read-only reviewer of WebSocket / SSE / MQTT / webhook handler diffs - checks close-code handling, reconnect backoff, signature validation, MQTT QoS/Clean Start, and heartbeat/idle-timeout; emits BLOCK/PASS verdict |
| Skill | stomp-amqp-tests | STOMP + AMQP 0-9-1 messaging-protocol testing (Spring/ActiveMQ, RabbitMQ). |
| Skill | sse-load-test | Load-test SSE endpoints: concurrent-stream capacity and the HTTP/1.1 connection ceiling. |
Install
/plugin marketplace add testland/qa
/plugin install qa-realtime-protocols@testland-qaSkills
grpc-streaming-tests
Test gRPC streaming RPCs - Server-streaming (server returns sequence), Client-streaming (client sends sequence), Bidirectional (both sides stream independently). Cover deadline + cancellation + flow control + status codes (CANCELLED, DEADLINE_EXCEEDED) + metadata. Use ghz for load, grpcurl for ad-hoc, language-native test stubs for unit/integration.
mqtt-tests
Test MQTT v5.0 with Mosquitto broker in CI + paho-mqtt clients - QoS 0 / 1 / 2 delivery semantics, retained messages, Last Will and Testament (LWT), shared subscriptions ($share/group/topic), $SYS topic introspection. Critical for IoT, embedded, and M2M systems where wire-level guarantees matter.
server-sent-events-tests
Test Server-Sent Events (SSE) flows, one-way server-to-client push only (not bidirectional, use websocket-tests for client-to-server messaging): `EventSource` API on the browser side (`onmessage`, `onerror`, `readyState` 0/1/2), event stream format (`data:`, `event:`, `id:`, `retry:`), `Last-Event-ID` reconnect-with-replay header, content-type `text/event-stream`, and HTTP/1.1 connection-pool limits. Use Playwright for browser-side, raw HTTP client for server-side stream tests.
sse-load-test
Load-tests SSE endpoints at scale with k6 - measures concurrent-stream capacity, connection churn, and server memory pressure. Covers the HTTP/1.1 6-connection-per-origin browser ceiling vs HTTP/2 multiplexing, a custom k6 SSE client built on ReadableStream, and threshold gates for TTFB and data throughput. Use when validating whether a server can sustain N concurrent EventSource connections without connection starvation or memory growth.
stomp-amqp-tests
Tests STOMP over WebSocket (Spring, ActiveMQ, RabbitMQ Web STOMP) and AMQP 0-9-1 (RabbitMQ Java client) - frame connect/subscribe/send/ack sequences, ack modes (auto/client/client-individual), exchange and queue declarations, binding routing, Testcontainers RabbitMQ broker, and delivery assertion. Use when validating enterprise Spring or RabbitMQ messaging stacks before deploy.
webhook-replay-tests
Tests inbound webhook receivers for replay-attack resistance: capture incoming webhook payloads + headers, replay against the receiver under test, validate the Standard Webhooks signature scheme (svix-id + svix-timestamp + svix-signature, HMAC-SHA256 over `{id}.{timestamp}.{payload}`), svix-id idempotency dedup, and 5-minute timestamp-window enforcement by signing fixtures at runtime. Does NOT cover outbound delivery, retry-on-5xx, or failure-event exhaustion (see qa-notifications/webhook-delivery-tester for those). Use when testing the receiving side of a webhook integration.
websocket-tests
Test WebSocket protocol behavior - opening handshake (HTTP Upgrade with Sec-WebSocket-Key + Sec-WebSocket-Version: 13), control frames (ping 0x9 / pong 0xA / close 0x8), close-frame status codes (1000 normal, 1001 going-away, 1006 abnormal, 1011 server error), subprotocol negotiation, backpressure, and reconnect with jitter. Use ws (Node), websockets (Python), or Playwright frame inspection per language.