Mersoft has been developing solutions to test network technology and web applications for over 15 years. Load testing any web application requires the ability to start up large quantities of virtual clients, run a series of scripted test scenarios, and collect the results. The challenge is compounded in WebRTC load testing with a live streaming media application where the quality of all the streams between the end points must be measured as well as client behaviors, server components, load balancers, STUN and TURN servers, etc.
Most testing apps (and there are plenty) will start up the prescribed number of load-generator clients and test app functions and the stream in the same way – from a user’s perspective. There are a few downsides to this approach:
- Full Windows+browser virtual clients are resource-intensive and take time to set up
- The complex environment is error-prone because the odds of changes to the client are high. They come from operating system patches, browser updates, and the web application being tested. It gets worse if the application exists in a complex enterprise environment where different groups support the authentication, middleware or other components used by the app. Teams spend time investigating failures and updating scripts instead of testing the product.
- Many users will access the app server via a native iOS or Android app, or a set-top box. Emulating a browser on Windows doesn’t serve any purpose in these circumstances.
When Mersoft decided to put its testing chops to work for WebRTC load testing, we took a different approach. First, we created a proprietary ‘headless webRTC’ client that runs extremely lean and fast. Plus, it can gather much more information about the WebRTC media. Here’s a screen shot of recent test session we did with our own Mersoft move™ and stream™ products.
In this case, it was a small test with only 20 clients and running 3 minutes each. Scale capacity is technically limitless, but regularly can handle thousands. It takes only a few seconds for each virtual client to get started and only require a small footprint for the OS and other overhead to execute the functions. The load tests run for as long as needed and, since they are easy to repeat, we can set it up to run in cycles while we intentionally break things to ensure each part reacts properly. When issues do arise, each client has detailed PCAP files, log files and a video recording.
Since Mersoft test™ is in the cloud, it replicates actual user experiences by accessing the apps from the public internet across whatever geography is needed. This ensures that the firewalls, load balancers and network connections are verified, not just the application and it’s servers. Mersoft test™ can also run in a customer’s data center, or even a combination.
Testing with a browser is supported too.
I just said how full browser clients are fat and slow, and error-prone, and offer less visibility to performance, but sometimes you still need them. For complete WebRTC load testing, it’s valuable to test user interface functions along with WebRTC functions. So, that’s why Mersoft test™ can create Microsoft Windows virtual machines and can run Chrome, Firefox or Internet Explorer/Edge. Use full Selenium scripting capability alongside the WebRTC scripting for a comprehensive testing approach. Soon, we will provide virtual Android and iOS devices as well.
In practice, we find that using a full browser client is helpful for other types of testing as well. This includes performance monitoring in production or test environment verification as part of a continuous integration process. So, it helps to think about the type of testing scenario and then decide the best approach from there.