Тестирование производительности приложений веб-браузера, предоставляющих услуги веб-конференций, например удаленных экзаменов, проверок веб-камеры или веб-инструментов для проведения видеоконференций в Интернете, может быть сложным.

Например, вы можете проверить, как ведет себя ваша система, когда более 100 участников подключены к вашей онлайн-платформе видеоконференций и разговаривают и транслируют одновременно. Хотя ручное тестирование может быть вариантом для случайных проверок или небольших нагрузочных тестов, трудно охватить все сценарии и реализовать непрерывный мониторинг и нагрузочное тестирование, когда у вас ограниченное количество тестировщиков и оборудования. Чтобы облегчить эту задачу, Dotcom-Monitor представляет новую функцию эмуляции веб-камеры и микрофона, которая позволяет проводить нагрузочное тестирование и мониторинг веб-конференций в окне браузера для получения наиболее реалистичных результатов тестирования.

В этой статье мы узнаем, как добавить функцию эмуляции потокового аудио и видео в тестовый скрипт с помощью EveryStep Scripting Tool Desktop от Dotcom-Monitor.

Как это работает

В двух словах, Dotcom-Monitor эмулирует видео- и аудиопотоки в браузере каждый раз, когда целевое веб-приложение запрашивает доступ к веб-камере и микрофону на устройстве конечного пользователя. Для этого мы запускаем предварительно записанную последовательность пользовательских транзакций в браузере Chrome и используем пользовательские аудио/ видео файлы для передачи предварительно записанных носителей.

Dotcom-Monitor не имеет локально доступного хранилища. Перед выполнением шага потоковой передачи мультимедиа необходимо доставить файлы мультимедиа в сценарий из общедоступного хранилища файлов в Интернете. Dotcom-Monitor будет загружать файл с предоставленного URL-адреса в нашу систему каждый раз при выполнении скрипта и воспроизводить его в окне браузера для эмуляции оборудования для захвата видео и аудио.

Если у вас нет особых требований к тестированию файлов мультимедиа, мы рекомендуем использовать тестовые файлы, которые вы можете загрузить непосредственно в сценарий из хранилища CDN Dotcom-Monitor:

Аудио файл Видеофайл
30 сек https://d149yd38g6ldk.cloudfront.net/30sec.wav https://d149yd38g6ldk.cloudfront.net/WebCam30s.y4m
1 мин. https://d149yd38g6ldk.cloudfront.net/1min.wav https://d149yd38g6ldk.cloudfront.net/WebCam1m.y4m

Использование пользовательских файлов мультимедиа

Для нагрузочного тестирования убедитесь, что система хранения файлов, которую вы собираетесь использовать в тесте, имеет достаточную емкость для поддержания нагрузки во время тестового запуска. В противном случае во время выполнения теста могут возникнуть ошибки, связанные с загрузкой файла. Для сценариев веб-мониторинга производительности также важно использовать очень надежную систему хранения данных, чтобы обеспечить беспрепятственный доступ к тестовым носителям и быстрое время загрузки.

В целях оптимизации доставки медиафайлов в Dotcom-Monitor при выполнении нагрузочного тестирования или мониторинга рекомендуется загружать тестовые медиафайлы в надежное хранилище CDN.

Поддерживаемые форматы файлов и ограничения на размер

Максимальный размер файла мультимедиа составляет 20 МБ.

В настоящее время мы поддерживаем следующие форматы файлов мультимедиа для тестирования.

Для видеофайлов:

YUV4MPEG2 (a.k.a. Y4M)

Более подробную информацию о формате файла можно найти здесь: http://wiki.multimedia.cx/index.php?title=YUV4MPEG2

Для аудио файлов:

WAV

Пошаговое руководство по сценарию записи

Сначала загрузите настольную версию инструмента сценариев EveryStep. Пожалуйста, посмотрите, как установить и использовать инструмент в статье Использование рабочего стола scripting Tool EveryStep нашей вики.

В настольной версии EveryStep Recorder запишите навигацию в целевое приложение для веб-конференций и запустите сеанс потоковой передачи мультимедиа (например, нажмите кнопку Запустить видео или Разрешить доступ к веб-камере). Затем сохраните скрипт.

Чтобы добавить шаги эмуляции потока мультимедиа, добавьте следующие методы перед строками навигации веб-приложения:

tab0.Download (string  wavFileName, string wavFileURL);
tab0.Download (string  y4mFfileName, string y4mFileURL);
UseFileForFakeMediaCapture (MediaType.Camera, string  y4mFileName);
UseFileForFakeMediaCapture (MediaType.Microphone, string  wavfileName);

Определение параметров

строка wavFileName — .wav имя файла для эмуляции звука

Строка y4mfileName — имя файла .y4m для эмуляции видео

строка wavFileURL – URL аудиофайла

y4mFileURL строка – URL видеофайла

Убедитесь, что имена файлов согласованы по всему сценарию.

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

Ниже приведен пример сценария.

// script_version=3.0; everystep_version=4.0.8370.4032; date=4/23/2023; Chrome=104.0.5112.57; Use System Credentials
Tabs.SetSize (1768, 876);
DMBrowser tab0 = null;
Step (1, "Webcam Test - Check Your Camera With Our Online Tool - https://www.onlinemictest.com/webcam-test/");
tab0 = Tabs.NewTab ();
//Download a test audio file
tab0.Download ("30sec.wav", "https://d149yd38g6ldk.cloudfront.net/30sec.wav");
//Download a test video file
tab0.Download ("WebCam30s.y4m", "https://d149yd38g6ldk.cloudfront.net/WebCam30s.y4m");
//Emulate a webcam video stream and mic audio
UseFileForFakeMediaCapture (MediaType.Camera, "WebCam30s.y4m"); 
UseFileForFakeMediaCapture (MediaType.Microphone, "30sec.wav");
tab0.GoTo ("https://www.onlinemictest.com/webcam-test/");
//Click a button to allow access to webcam
tab0.Div ("//DIV[@ID=\"webcam-start\"]", "//DIV[@ID=\"fullscreen_close\"]/following-sibling::DIV[1]", "//DIV[@ID=\"fullscreen_open\"]/following-sibling::DIV[2]").Click ();
Delay ("10sec".ToDuration ());