Skip to main content
WebSocket

Connection Load Test

SubscribeValidateExpert

Description

Test WebSocket server under load: multiple connections, high message rate.

Test Scenario

// Test: 100 concurrent connections
const connections = 100;
const messageRate = 10; // per second

const stats = { connected: 0, failed: 0, latencies: [] };

for (let i = 0; i < connections; i++) {
  const ws = new WebSocket('wss://echo.websocket.org');
  const start = Date.now();

  ws.onopen = () => {
    stats.connected++;
    stats.latencies.push(Date.now() - start);
  };

  ws.onerror = () => stats.failed++;
}

// After test: analyze stats
console.log('Success rate:', (stats.connected / connections) * 100 + '%');
console.log('Avg latency:', average(stats.latencies) + 'ms');

Testing Tips

  • •Create multiple concurrent connections
  • •Measure connection time
  • •Track message latency
// Playwright API Testing - WebSocket
import { test, expect } from '@playwright/test';
test('WebSocket connection', async ({ page }) => {
// Listen for WebSocket connections
const wsPromise = page.waitForEvent('websocket');
await page.goto('/websocket-demo');
const ws = await wsPromise;
expect(ws.url()).toContain('ws://');
// Wait for message
const framePromise = ws.waitForEvent('framereceived');
const frame = await framePromise;
expect(frame.payload).toBeDefined();
});

Challenge ID: ws-load-test

2 frameworks available