Running a Video Streaming Performance Test with OctoPerf and UbikLoadPack

on 8 November 2023 Apple HTTP Live Streaming, AWS, AZURE, CLOUD, DEVOPS, HLS, JMETER, JMETER-PLUGINS, LOAD_TESTING, LoadRunner alternative, Microsoft-Smooth, Neoload Alternative, OTT, PRODUCTIVITY, TUNING, VIDEO and Tags: , , , , , , , , , , , , , with 0 comments
UBIK Load Pack Streaming plugin and OctoPerf

Running a Video Streaming Performance Test with OctoPerf and UbikLoadPack

In this blog, we will see how to run a Video Streaming Performance Test on a server delivering one of the following formats:

  • Apple HLS
  • Mpeg-Dash
  • Microsoft Smooth (HSS)
  • Adobe HDS

We’ll use the following tools:

Pre-requisites

To run what is described below:

  • Install Java 11 or Java 17
  • Install Apache JMeter
  • Request a trial version of UbikLoadPack Video Streaming Plugin, you’ll receive a mail with an attached trial license and a link to download the bundle
  • Get an OctoPerf account

The JMeter test plan

We’ll use a very simple test plan :

Note that we don’t configure anything in Thread Group regarding Users Arrival and schedule as it will be done on OctoPerf

In UbikLoadPack streaming sampler we just set :

  • Playlist URL to the HLS manifest URL , we will use https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8
  • Play only part of video is set to 30 seconds

Creation Steps on OctoPerf

Login to OctoPerf and click on Create Project:

Select JMeter Project:

You’ll see this screen:

  1. Upload your JMeter JMX file in JMETER JMX FILE section
  2. Then upload the following resource files in RESOURCE FILES section:
  • ubik-streaming-plugin.license (attached to the trial mail you receive from UbikLoadPack on trial request)
  • the plugin jar file located in the lib/ext folder in the bundle link you receive in the trial mail or downloadable from here
  • before-test.sh (see below for its content and explanation)
  • any CSV file required by your test and configured through CSV DataSet (we don’t have one in the test, but just to show it, we have uploaded one called credentials.csv)

You end up with this:

Contents of before-test.sh :

before-test.sh is a specific shell file that is executed by OctoPerf before the test runs as described here. It is by convention, you need to keep this name.

The content of our file is:

#!/usr/bin/env bash
export JVM_ARGS="${JVM_ARGS} -Djava.net.preferIPv4Stack=true -XX:MaxGCPauseMillis=20 -Xss256k -Dsun.net.inetaddr.ttl=5 -Dsun.net.inetaddr.negative.ttl=0"

USER_PROPS=${JMETER_HOME}/bin/user.properties
echo "ULP.videostreaming.licensepath=resources/ubik-streaming-plugin.license"  >> ${USER_PROPS}
echo "httpclient4.retrycount=0"  >> ${USER_PROPS}
cat ${USER_PROPS}

Explanation of before-test.sh

1) The first line sets some JAVA VIRTUAL MACHINE properties:

  • java.net.preferIPv4Stack=true tell the JVM to use IPv4 to connect to hosts (this can be removed if you don’t need it)
  • -Dsun.net.inetaddr.ttl=5 -Dsun.net.inetaddr.negative.ttl=0 : is useful to avoid DNS issues on injector
  • -XX:MaxGCPauseMillis=20 -Xss256k : Are memory tunings that can be adjusted as per your need

2) The second and third lines are the most important one for the Plugin, they set up the license path which is mandatory for the plugin to work through property ULP.videostreaming.licensepath

3) The last 2 lines show you how to adjust and add other JMeter properties, in this case httpclient4.retrycount

Then click on Validate:

OctoPerf allows you to validate that your configuration is ok by using Validate button

Define the load profile

The next step is to define your Load Profile, click on Scenarios inside Runtime:

For the demo, we’ll define 10 Virtual Users ramping from 0 to 10 in 1 minute then holding the load for 2 minutes:

Run Test:

To run the test, we click on Launch Test:

We can see the live results:

We can also see the response times, error rate per request type, the plugin automatically handle all requests related to your Video Stream (Manifest audio and video, Chunks audio and video …):

NDLR :

In this blog, we’ve seen how to use a popular SAAS for performance testing called OctoPerf with our UbikLoadPack Video Streaming plugin.
Thanks to this tool, you can scale our solution to hundreds of thousands of Virtual Users in few minutes to performance test your Video Streaming infrastructure.

Try it:

Request a trial version HERE.
Ask for a turnkey or consulting service at ubik-load-pack-sales@ubik-ingenierie.com.

Manage your UBIK Load Pack plugins with JMeter-plugins Manager

About UbikLoadPack :

You’ll probably also like: