Réalisation et Expertise technique IT

Load testing MPEG-DASH Video Streaming with Apache JMeter and UbikLoadPack

on 12 septembre 2016 Apple HTTP Live Streaming, AWS, AZURE, DEVOPS, HLS, JMETER, JMETER-PLUGINS, LOAD_TESTING, PERFORMANCE, PRODUCTIVITY, VIDEO and Étiquettes : , , , , , with 1 comment

The format

MPEG-DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1:2012) is a vendor free format that is used to stream content through HTTP requests.

It is gaining popularity and its usage increases as many providers allow customers to use this format to deliver content (ie various cloud services, even Microsoft Azure platform allows its customer to use this format, with one caveat though, the url format is rather complicated, but good news, our plugin can handle those too !).

The Dashif group website has a software section that presents players (Javascript and Flash for example) and segmenters.

As such, it compares with other vendor formats like Apple HLS, Microsoft Smooth Streaming, Adobe HDS, etc…

MPEG-DASH uses playlists called Media Presentation Description that ends with .mpd extension.

The new version of our plugin, formerly called HLS Plugin is now able to handle this new format, it is now VideoStreaming Plugin.

All the features and custom metrics  described in a previous post on this blog are of course still available.

Testing this new format in Apache JMeter with our plugin is still easy as you only need to provide the url of the manifest file, the plugin will auto-detect the format used (HLS or MPEG-DASH) and will process it accordingly.

Sample Demo

First get a valid license HERE.

Execute the preliminary configuration steps :

1 – Unzip bundle

  • Unzip ubik-hls-plugin-XXX.zip.
  • Copy lib/ext/ubik-jmeter-videostreaming-plugin-X.X.X.jar to jmeter/lib/ext folder
  • For JMeter versions below 3.0, Copy “/lib/groovy­all­X.X.X.jar” to “/lib/” folder. Since 3.0 groovy bundle is embedded.

2 – Edit JMeter configuration

  • Put your license file in a folder of your choice, we will reference this folder as LICENSE_FOLDER, this folder must contain ubik-videostreaming-plugin.license
  • Edit user.properties and add the following properties:
#license configuration

ULP.hls.licensepath=/ubik-hls-plugin.license

#export metrics

sample_variables=ulp_buffer_fill,ulp_lag_time,ulp_play_time,ulp_lag_ratio,ulp_dwn_time
  • Edit “saveservice.properties” and add at end of file:
_com.ubikingenierie.jmeter.plugin.hls.result.HLSSampleResultConverter=collection

3 – Launch Jmeter !

 

Add a ULP Video Streaming Sampler to your test.

MPEG-DASH sampler menu

Add a ULP Video Streaming Sampler

 

Now we can start a test. We’ll keep it simple and chose a playlist at :
http://dash.edgesuite.net/dash264/TestCases/1b/qualcomm/2/MultiRate.mpd

jmeter_enter_playlist

The sampler view : add playlist url and customize options

In play options, choose play only part of videos and enter 10 seconds for example.

In network options leave auto or choose a bandwidth you would like to test.

Add a listener to your test, a view result tree for example (Right-click your test –> Add –> Listener –> View Result Tree).

Finally click the green play button in the bar above.

If you chose 10 seconds like we did, after that duration, you should be able to see your results in the View Results Tree.

You can see the manifest has been downloaded with several video chunks.

jmeter_view_result

The Result Tree after 10 seconds

 

Have a look at the metrics and have fun !

So, enjoy this new possibility in UbikLoadPack VideoStreaming Plugin.

Several JMeter test cases (.jmx files) are provided in the plugin bundle, including for Mpeg-Dash.

Come and give it a try, the trial is still free.

About us:

Ubik Load Pack is a JMeter based solution for complex protocols.
– Follow us on Twitter and StackOverflow.
– Follow Apache JMeter on Twitter

1 Comment

    Comments are closed.