
Є такий тип задач, які виглядають просто поки не починаєш їх робити. WebSocket тестування — якраз така.
Стандартний Chrome DevTools показує WebSocket трафік у вкладці Network. Але тільки читати. Захотів перехопити повідомлення — відкривай Wireshark, піднімай проксі, налаштовуй сертифікати. Захотів підмінити один фрейм — пиши окремий скрипт. Для швидкого QA-пасу або дебагу це надмірно.
Я зробив розширення, яке вирішує саме цю проблему: інструмент для тестування WebSocket — безкоштовне Chrome-розширення з відкритим кодом.
Що воно вміє зараз:
Проксі трафіку — всі WebSocket-з'єднання на сторінці проходять через розширення. Бачиш кожен фрейм в реальному часі: напрямок, тип, вміст, час.
Модифікація вихідних повідомлень — задаєш правило: якщо повідомлення містить рядок X, підміни на Y. Корисно коли хочеш перевірити як сервер реагує на конкретний payload без зміни коду.
Моніторинг — просто дивишся на трафік. Зручно коли досліджуєш як популярні сервіси використовують WebSocket або шукаєш вразливості в обробці вхідних даних.
Типові кейси де це реально рятує:
QA pass перед релізом. Є компонент який приймає повідомлення через WS і щось малює на UI. Хочеш перевірити edge cases — передаєш підмінені дані не змінюючи сервер і не пишучи тести.
Дебаг протоколу. Бачиш що щось ламається в реалтайм фічі але не розумієш де. Вмикаєш моніторинг, дивишся на фрейми — одразу видно чи проблема на клієнті чи сервері.
Security audit. Перевіряєш валідацію вхідних даних на сервері. Підміняєш повідомлення, дивишся що повертається.
Що в роадмапі:
Зараз підтримується тільки модифікація вихідних (client → server) повідомлень. Наступний крок — вхідні (server → client). Також планую вбудований WS-клієнт прямо в розширенні і базову автоматизацію тестів.
Розширення безкоштовне, open source на GitHub. Якщо є фідбек або баг — issues відкриті.