Load testing Live Video Streaming and Adaptive Bitrate Streaming with JMeter and UbikLoadPack
Video streaming is an important part of customers experience on the internet. 100M internet users watch online video every day and 45% of internet users view at least one online video over the course of a month. However 62% of people is more likely to have a negative perception of a brand that published a poor quality video experience. This is the reason websites must offer a good video streaming experience. (source: livestream.com)
HLS, SMOOTH and MPEG-DASH are the main streaming format. They are currently used for delivering both Live and VOD video streaming on desktops, tablets and phones. And you are certainly using one of them on your own website.
What you dream of:
Your website delivers some videos and you expect that your customers can watch them without any lags or buffering delay; yet, you don’t know if your server infrastructure is able to handle the load incurred by the users traffic. What you know is that being one second faster increase significantly the conversion rate. However, video streaming load testing is complex. You have to script different formats and simulate a player, which requires time, skills and money.
Thinking about it, all you want is an easy way to test video streaming.
What you really can do:
You can accomplish all of your dreams and even more. This new release allows you to:
- Test your HLS, MPEG-DASH or SMOOTH format based video streaming service
- Test it for VOD Streaming without any scripting
- Test it for Live Streaming without any scripting
- Test it for different bit rates
- Test it for Adaptive Bitrate streaming
- Do it easily, fully and in a realistic way
What is new in this release?
UbikLoadPack VideoStreaming Plugin already allows you to test HLS, MPEG-DASH or SMOOTH streaming format in VOD.
We offer now an out-of -the-box new version for Live streaming. The plugin acts accordingly to the exact and latest format specification for:
- Static MPEG-DASH manifest
- Dynamic MPEG-DASH manifest
- Simple live MPEG-DASH manifest
- VOD HLS manifest
- Event HLS manifest
- On-demand SMOOTH manifest
It also handles Main Live MPEG-DASH manifest and Live SMOOTH manifest.
We also offer advanced settings for Adaptive Bitrate Streaming. You can now choose a specific bit rate for each segment of the video in a very precise and simple way.
We also add preemptive basic authentication with the Authorization Manager.
How does it work?
There is no magic in this. We simply do our best for you.
You just give us the video URL. You optionally add a time to play, a bandwidth, a connect timeout and/or a read timeout. The plugin will detect the format. It will also detect if it is VOD or Live streaming.
Any case, the plugin will load the video and simulate the reading in the most realistic way.
- Is it a VOD? It will parse the manifest and find every chunks in the playlist. Then, it will download and read them in real-time.
- Is it a Live? It will find every available chunk. Then, it will download and read them in real-time, reloading the following ones in the appropriate time.
How may I do?
You can simply follow those instructions in 4 steps:
1/ Add the sampler to your test plan
You may first start JMeter with the plugin. Documentation is provided with the plugin. Then, you just have to create a test plan and add an ULP Video Streaming Sampler.
2/ Inform the video URL and optional settings
Next, you may inform the video URL. You can also inform additional options:
- Play options
- Network options
- Timeout options
3/ (Optional) Set up the advanced settings for ABR
If you use the Adaptive Bitrate option in the network options, a new element will be added under the sampler. It allows you to configure a precise bit rate for a precise number of chunks to play.
You may click on the “Add” button. Then, new text fields will appear. On the first one, you may inform the bit rate you want. A list of the available bit rates can help you on the right side of the frame. On the second one, you may inform how many chunks will use this parameter. During the test, the different bit rate parameters will be applied to the number of chunks informed from the top to the bottom of the list.
Advanced settings also means advanced metrics. On the bottom of the main frame, a list of sample_variable are proposed to add to the user.properties file before running the test. Those new variable will returns the percentage of chunks read in the given bit rate.
4/ Analyze the results
That’s it. You can run your test plan and analyze the results.
In a few words
Here are the benefits you get with our solution:
- Realistic and scalable load testing with very basic knowledge of Apache JMeter
- OOTB Support of Live Streaming
- OOTB Support of VOD Streaming
- Easy simulation of ABR Streaming
- Maintainable tests as you don’t have to create complex scripts
- Representative and trustworthy results
- Ubik Load Pack is a JMeter based solution for complex protocols.
- Follow us on Twitter and StackOverflow.
- Follow Apache JMeter on Twitter
- Handy checklist for ensuring User Experience when delivering Video Streams at Large Scale 4 February 2019
- Reporting feature in JMeter 17 January 2019
- Shift left your performance tests with JMeter and Maven 15 January 2019