top of page
Search
  • Writer's pictureSeema K Nair

WebAudio Testing for SaaS Audio application

Recently, we got an opportunity to develop automated tests for a SaaS based web audio application that can be used for audio recording and communication.


The core test scenarios in the application involved recording , play back the recorded audio and to ensure that no data is lost during recording. A typical web automation framework using WebDriver was not sufficient to accomplish this project.


We decided to develop a automation framework for this project that should support the following in addition to using Selenium WebDriver:


1. Browser configuration to handle media files.

2. System commands and modules that can help us mimic a real communication in the tests.

3. Google APIs that can help us validate and ensure recorded data did not miss any communication.


Framework:

The solution framework was developed using NodeJS Framework .


Browser Configuration:


We configured Chrome browser to use fake media and fake devices by setting ChromeOptions such as


  • --use-fake-ui-for-media-stream (skips GUM permission prompt)

  • --use-fake-device-for-media-stream (uses a fake device)


Chrome browser was also configured to store all downloaded media files in a fixed path within the project directory.


prefs: {  'directory_upgrade': true,  'prompt_for_download': false,  "download.default_directory": path.resolve("e2eTests/audio");        }

The framework was setup also to execute on Chrome Canary, along with the stable version of Chrome browser.


System Commands:


afplay - Command line mp3 player in MacOS

ffmpeg - Convert mp3 file to flac format


Continuous Integration:

The continuous integration was setup using Github Actions on a MacOS system with the complete audio based sanity tests running in less than 20 minutes to cover the critical workflow in the application.


If you are interested in getting your WebRTC or Audio based application tested, please contact us at : qa@calibrecode.com. We can develop customised testing solutions based on your product needs.
















48 views0 comments
bottom of page