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:
- Apache JMeter to setup the test
- UbikLoadPack Video Streaming Plugin to simulate realistically video players and get Video Metrics
- OctoPerf to run a massive test from the Cloud or On Premise
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:
- Upload your JMeter JMX file in JMETER JMX FILE section
- 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 :
- Ubik Load Pack is used by Big players in the Video streaming field
- We provide professional services for Load Testing
- Learn more about our streaming plugin
- Detailed features of UbikLoadPack Streaming Solution
- Get a Free trial
You’ll probably also like:
- Performance Testing Low Latency Dash servers with UbikLoadPack
- Performance Testing Low Latency HLS servers
- Load testing MPEG-DASH Video Streaming with Apache JMeter and UbikLoadPack
- Video Streaming: CMAF and Low-Latency
- Cases studies
- Manage your UBIK Load Pack plugins with JMeter-plugins Manager
L’article Running a Video Streaming Performance Test with OctoPerf and UbikLoadPack est apparu en premier sur Ubik Ingénierie.