Testland
Browse all skills & agents

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-qa

Part 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

TypeNameDescription
Skillwebsocket-testsRFC 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
Skillserver-sent-events-testsWHATWG 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
Skillgrpc-streaming-testsgRPC streaming RPCs (Server / Client / Bidi); deadline + cancellation propagation; status code matrix (CANCELLED, DEADLINE_EXCEEDED, INVALID_ARGUMENT, UNAUTHENTICATED, etc.); ghz load test
Skillmqtt-testsMQTT v5 - QoS 0/1/2 redelivery semantics, retained messages, Last Will and Testament, shared subscriptions ($share/...), $SYS/... introspection; Mosquitto in CI
Skillwebhook-replay-testsStandard Webhooks signature scheme (svix-id + svix-timestamp + svix-signature, HMAC-SHA256), 5-minute replay window, idempotency dedup, multi-key acceptance for rotation
Agentrealtime-protocol-reviewerAdversarial 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
Skillstomp-amqp-testsSTOMP + AMQP 0-9-1 messaging-protocol testing (Spring/ActiveMQ, RabbitMQ).
Skillsse-load-testLoad-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-qa

Skills

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.