With live video usage increasing to watch sporting events, popular TV shows, etc., load and performance testing live streaming applications has become a must to ensure they can withstand heavy traffic.
Our Sep 6, 2017 webinar looked at using Apache JMeter™ for testing streaming applications. Until now, JMeter supported the load testing of HTTP Live Streaming (HLS) applications, the leading protocol, with a few different elements. But now, a new HLS plugin for JMeter makes the process much simpler and efficient than before.
An overview of the HLS protocol including its key components
An introduction to the new JMeter HLS plugin
How to learn more and get involved with this open-source project
3. What a long strange trip it’s been...
Dave Karow { Developer Advocate } @davekarow
Keynote Systems (7 years)
- Load Testing
- Synthetic Monitoring
dynatrace
SOASTA
BlazeMeter
CA Technologies Continuous Delivery
4. HLS Overview
HLS = HTTP Live Streaming
• Uses only http/https (remember real media?)
– Proxy/firewall friendly
– Served from any http server/CDN
• Adaptive Bitrate: Degrades instead of stalling
– Multiple stream variants (by bandwidth/resolution)
– Client chooses/re-chooses best stream
5. HLS Components
1. Encoding/Encapsulation: Transcoder
a. The “heavy lifting” (CPU intensive)
b. Outputs:
i. .m3u8 master index (list of variants)
ii. .m3u8 variant index (list of segments)
iii. .ts file containing each segment
7. 1. Get master playlist for “about_demo” video
GET http://hls.demoblaze.com/index.m3u8
2. Parse master playlist for list of variants, choose one
(let’s assume low bandwidth environment, so lowest resolution to start)
3. Get variant playlist matching bandwidth/resolution
GET http://hls.demoblaze.com/about_demo_hls_600k.m3u8
4. Get and play fragment from variant playlist
GET http://hls.demoblaze.com/about_demo_hls_600k00000.ts
5. If live: Go back to #1 to get new master playlist
HLS Playback Flow @ High Level
18. Wrapping Up
The HLS Sampler plugin is open-source.
Pull requests are welcomed!
1. Go to jmeter-plugins.org
2. Search “hls”and click on “HLS Sampler”
3. That puts you in Git-Hub: jump right in!