The world soccer (or football, if you’re British) tournament will be held in Russia very soon, and many TV stations, websites and apps will experience high traffic spikes from fans from all over the world. Like many large and attractive events, the success of this soccer competition depends on the ability to live stream it, without crashing.
Performance testing the broadcasting channels ensures viewers will enjoy continuous and real-time video streaming. Satisfied viewers will retain brand loyalty, which in turn generates higher revenues. Ongoing streaming will also ensure that the commercials will also be broadcasted without interruption.
To help you get ready, here are 5 best practices for load testing live streaming. If you need immediate help, request a BlazeMeter demo.
1. Check Which Protocol you Need to Load Test
There are quite a few popular protocols for live streaming video: HLS, Progressive Download, RTMP, MPEG-DASH. All of them can be tested with any number of load testing tools (see next point). But each one requires setting up the testing script a bit differently.
Luckily, we already have load testing tutorials for live streaming protocols in our technical blog. Here is everything you need:
- Load Testing Video Streaming for All Protocols
- HTTP Live Video Streaming (HLS) Load Testing
- HLS Live Video Streaming for VOD Load Testing
- RTMP Live Video Streaming Load Testing
- RTMPT Live Video Streaming Load Testing
2. Choose Your Performance Testing Tool
There are many good open source load testing tools to choose from, each providing a different value. Apache JMeter™, the most popular tool, has an easy to use GUI, scripting options, and wide community support. There are also many free video tutorials and articles that can teach you how to write your scripts.
Other tools that don’t have a GUI provide more flexibility when writing scripts. If you don’t want to use JMeter, we recommend Gatling (which uses Scala) or Locust (which uses Python). Read a comprehensive comparison of open source performance testing tools, right here.
Another quick and easy solution is Taurus. Taurus is an open source test automation framework, which runs the testing tools for you. All you need to do is write a simple load testing scenario in YAML and choose which tool you want to run it in. Taurus will run the test in the background, and show you real-time results.
All of these tools are really great solutions for running your test locally. But, if you need to scale your test to run in the cloud from many locations, ramp-up to 1000s or 1000000s of users, collaborate on tests and results or get advanced reporting - you should also use BlazeMeter. Read more here.
3. Record Your Testing Scenario
Instead of creating your test scripts from scratch, you can jump ahead by recording your scenario and then editing it in JMeter. The BlazeMeter Chrome Extension is a free and easy to use tool. All you need to do it add it to your Chrome, record and export to JMeter.
Using the recorder will shorten the time it takes to create your scripts, leaving you with more time to analyze results and to fix bottlenecks.
The Chrome extension will also soon include the ability to record Selenium scripts as well, enabling you to combine your load and functional GUI testing. Sign up for updates here.
4. Define Your KPIs
You created your tests, ran them and are now looking at a dashboard with lots of graphs and metrics. Now what? To be able to utilize all of your hard work, make sure you define KPIs in advance, by answering the question - what is considered success and what is considered failure?
You should answer these questions for KPIs like Response Time, Error Rate and Percentiles. Adding Assertions to your script will also help you determine how successful your website is performing.
5. Implement Continuous Testing and Continuous Integration
Testing your website or app is an ongoing process. Any time you change your code, add a marketing campaign that might bring lots of traffic to your website or just want to ensure nothing broke lately, you should run performance tests.
The easiest way to test continuously is to add your performance tests to Continuous Integration tools, like open source Jenkins, or TeamCity. You can automate your tests to run every night and every time time you commit, and go over the results every morning, with your coffee. JMeter, Taurus and BlazeMeter integrate with these tools. Here’s how:
- How to Run JMeter with Jenkins
- How to Run JMeter with TeamCity
- Integrating Taurus and Jenkins
- Integrating Taurus with TeamCity
- BlazeMeter’s Jenkins Plugin
- BlazeMeter’s TeamCity Plugin
No matter which team you’re cheering, watching the games is fun, so make sure you and your viewers are able to watch continuous live streaming, by running performance tests.
Learn more about using JMeter for performance testing HLS from this free on-demand webinar:
You might also find these useful:
Interested in writing for our Blog? Send us a pitch!