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 - WebSocketimport { test, expect } from '@playwright/test';test('WebSocket connection', async ({ page }) => {// Listen for WebSocket connectionsconst wsPromise = page.waitForEvent('websocket');await page.goto('/websocket-demo');const ws = await wsPromise;expect(ws.url()).toContain('ws://');// Wait for messageconst framePromise = ws.waitForEvent('framereceived');const frame = await framePromise;expect(frame.payload).toBeDefined();});
Challenge ID: ws-load-test
2 frameworks available