Testing WebRTC Applications
Introduction
Web Real-Time Communications (WebRTC) is an open source technology created by Google that allows peer-to-peer communication in web browsers and mobile applications through APIs.
This includes audio, video, and data transfers.
A large number of web applications are using the WebRTC technology, such as those used for online meetings and video conferences.
Media Emulation
The machines from our cloud are not connected to any webcams, microphones or speakers.
But we are using a technology that emulates all of those, called Media Emulation
.
This technology is enabled by default for all users.
When accessing a webcam in a Web Test, you will see a live stream that looks like this:
There is also the option to provide your own y4m
video file that will be shown in the webcam live feed.
Only certain browsers support the Media Emulation
technology.
Browser | Media Emulation | Custom y4m file |
---|---|---|
Chrome | ✅ | ✅ |
Edge | ✅ | ✅ |
Firefox | ✅ | ⛔ |
Safari | ⛔ | ⛔ |
Internet Explorer 11 | ⛔ | ⛔ |
Mobile browsers | ✅ | ✅ |
Currently, the option to add a custom
y4m
file is only available in our backend admin panel.You can write to our Support Team and they will help you add it for your account.
Full Media Emulation for Safari and Firefox is only available with dedicated machines on Endtest.
How to test WebRTC scenarios
If you are testing an online meeting application, you might need to connect with different users to the same meeting.
This can be achieved by using multiple browser tabs in your test.
It's easy to manage multiple browser tabs with the methods provided in the Miscellaneous
action:
- Open new tab
- Switch to next tab
- Switch to previous tab
A better approach would be to have separate test executions connecting to the same meeting.
The proper way to do this is to start a test execution that will start one or more different test executions.
And that allows you to connect to the same meeting from different browsers on different machines.
You would need to add a Send API Request step that will call the Endtest API and trigger a test execution.
Managing and syncing the separate test executions can be achieved with Wait Until and Pause steps.