Перейти к содержанию

Скрипты для тестирования максимального количества WebRTC публикаций/подписчиков

В сборке 5.2.1766 добавлены скрипты для нагрузочного тестирования WCS на максимальное число публикаций или подписчиков. Скрипты написаны на bash и используют REST API для публикации и захвата потоков с тестируемого WCS сервера. Скрипты располагаются в каталоге /usr/local/FlashphonerWebCallServer/tools

Для нагрузочного тестирования необходимы:

  • тестируемый WCS сервер
  • тестирующий WCS сервер
  • средство публикации исходного потока (например, OBS для публикации RTMP, или пример Media Devices для публикации WebRTC)

Attention

Обратите внимание, что производительность тестирующего сервера должна быть минимум вдвое больше, чем тестируемого, в противном случает сам тестирующий сервер станет узким местом в нагрузочном тесте.

Тестирование максимального количества WebRTC публикаций

Тестирование максимального количества публикаций проводится при помощи скрипта

/usr/local/FlashphonerWebCallServer/tools/pushStreams.sh
  1. Для теста используются:

    • test1.flashphoner.com - тестируемый WCS сервер
    • test2.flashphoner.com - тестирующий WCS сервер
    • пример Media Devices для публикации исходного потока
  2. Публикация исходного потока на сервер test2.flashphoner.com

  3. Запуск скрипта pushStreams script on test2.flashphoner.com

    /usr/local/FlashphonerWebCallServer/tools/pushStreams.sh ws://test1.flashphoner.com:8080 http://test1.flashphoner.com:8081 test loadtest 10
    
    Здесь:

    • ws://test1.flashphoner.com:8080 - websocket URL тестируемого сервера
    • http://test1.flashphoner.com:8081 - HTTP URL тестируемого сервера для использования REST API
    • test - имя исходного потока, который будет публиковаться на тестируемый сервер
    • loadtest - префикс имени, с которым будут публиковаться потоки на тестируемый сервер
    • 10 - количество публикаций
      При успешном запуске, скрипт выводит на консоль список публикаций
  4. Контроль публикаций на странице статистики тестируемого сервера http://test1.flashphoner.com:8081/?action=stat

  5. Запуск скрипта pushStreams на сервере test2.flashphoner.com для остановки теста

    /usr/local/FlashphonerWebCallServer/tools/pushStreams.sh ws://test1.flashphoner.com:8080 http://test1.flashphoner.com:8081 test loadtest stop
    
    Здесь:

    • ws://test1.flashphoner.com:8080 - websocket URL тестируемого сервера
    • http://test1.flashphoner.com:8081 - HTTP URL тестируемого сервера для использования REST API
    • test - имя исходного потока, который публикуется на тестируемый сервер
    • loadtest - префикс имени, с которым публикуются потоки на тестируемый сервер
    • stop - ключевое слово для остановки публикаций с указанными параметрами
      При успешной остановке публикаций, скрипт выводит на консоль сведения об остановке

Тестирование максимального количества WebRTC подписчиков

Тестирование максимального количества подписчиков проводится при помощи скрипта

/usr/local/FlashphonerWebCallServer/tools/pullStreams.sh
  1. Для теста используются:

    • test1.flashphoner.com - тестируемый WCS сервер
    • test2.flashphoner.com - тестирующий WCS сервер
    • пример Media Devices для публикации исходного потока
  2. Публикация исходного потока на сервер test1.flashphoner.com

  3. Запуск скрипта pullStreams на сервере test2.flashphoner.com

    /usr/local/FlashphonerWebCallServer/tools/pullStreams.sh ws://test1.flashphoner.com:8080 http://test1.flashphoner.com:8081 loadtest 10
    
    Здесь:

    • ws://test1.flashphoner.com:8080 - websocket URL тестируемого сервера
    • http://test1.flashphoner.com:8081 - HTTP URL тестируемого сервера для использования REST API
    • loadtest - префикс имени, с которым будут захватываться потоки с тестируемого сервера
    • 10 - количество подписчиков
      Обратите внимание: скрипт захватит все опубликованные на тестируемом сервере потоки, каждый заданным количеством подписчиков.
      При успешном запуске, скрипт выводит на консоль список подписчиков
  4. Контроль подписчиков на странице статистики тестируемого сервера http://test1.flashphoner.com:8081/?action=stat

  5. Запуск скрипта pullStreams на сервере test2.flashphoner.com для остановки теста

    /usr/local/FlashphonerWebCallServer/tools/pullStreams.sh ws://test1.flashphoner.com:8080 http://test1.flashphoner.com:8081 loadtest stop
    
    Здесь:

    • ws://test1.flashphoner.com:8080 - websocket URL тестируемого сервера
    • http://test1.flashphoner.com:8081 - HTTP URL тестируемого сервера для использования REST API
    • loadtest - префикс имени, с которым захватываются потоки с тестируемого сервера
    • stop - ключевое слово для остановки подписчиков с указанными параметрами
      При успешной остановке подписок, скрипт выводит на консоль сведения об остановке