Тестирование приложения WebRTC

Я пытаюсь протестировать приложение WebRTC. Сейчас лучшее, что я могу сделать, - это открыть несколько частных окон браузера и позволить им общаться друг с другом, но это явно не масштабируется.

Я ищу способ создать большое количество пиров на одной машине. Я заглядывал в Phantom.js, но он пока не поддерживал WebRTC. Какие-либо предложения?

2 ответа

Проблема в том, что PhantomJS в настоящее время основан на QtWebKit, а WebRTC нужны компоненты из Chromium, а также WebKit.

Для Phantom.js было бы много работы, чтобы все это реализовать заново - и есть также проблемы с поддержкой кодеков и т. Д. Мне также кажется, что в безголовой среде было бы трудно протестировать getUserMedia(), который является фундаментальным для WebRTC, но требует взаимодействия с пользователем и не может быть написан в сценарии.

Для MediaStream его можно использовать https://www.npmjs.com/package/mediastream как:

import { MediaStream as libMediaStream } from 'mediastream';

Для getUserMedia() его можно использовать https://www.npmjs.com/package/get-user-media-promise как:

(<any>window.navigator).mediaDevices = Object.assign({}, 
  window.navigator.mediaDevices,
  { getUserMedia: require('get-user-media-promise')}
);

RTCPeerConnection, в зависимости от ваших модульных тестов, может быть смоделирован как:

window['RTCPeerConnection'] = () => {
  return {
    close: () => { },
    getTracks: () => { },
    addStream: () => { },
    createOffer: () => { },
    addIceCandidate: () => { },
    setRemoteDescription: () => { },
    createAnswer: () => { },
    setLocalDescription: () => { }
  };
};
Другие вопросы по тегам