NOTE: The new Blazemeter HLS and DASH plugin is working well and preferred: https://github.com/Blazemeter/HLSPlugin
A more featureful plugin which accomplishes the same task as this plugin can be found here.
The HLS protocol provides an open, reliable, efficient means of delivering continuous video streaming (live or VOD) over the Internet using a standard HTTP transport. It allows a receiver to adapt the bitrate of the media to the current network conditions, in order to maintain uninterrupted playback at the best possible quality. Using HTTP in this way in many cases allows the content to be cached for efficient and scalable delivery to large audiences.
This plugin handles HLS playback complexity internally as an intelligent logic controller test element. After getting the master playlist file, a variant stream is chosen according the criteria configured in each Media Playlist Sampler, which in-turn gets the media playlist file, the segments, etc. The plugin simulates typical client player logic, and correspondingly presents the equivalent network load as a browser-based player would. Individual media playlist samplers provide fine grain control of stream type(video, audio, closed-captions), and can select played content based on network bandwidth, media advertised resolution, or custom criteria.
After that you can add assertions, listeners, etc.
Set debug output in log4j2.xml:
The following properties can be set in the HLS Player.
Set the link to the master playlist file
Set the playback time of the test:
The following properties can be set in the Media Playlist Sampler. They should be tuned to simulate the real scenario you want to test.
Select the bandwidth you want to simulate in your test. If there is only one playlist for the selected bandwidth, the plugin will select the playlist based only on this criterion.
After selecting the desired bandwidth you can select a resolution to simulate your specific device. For Custom Resolution provide the width by the height in pixels, for example "1920x1080"
You can set listeners to evaluate the results of your tests (e.g., Graph Results). The View Results Tree Listener can be used to display the HLS HTTP transactions, to observe details of the requests and responses involved (debug only).
set http.maxConnections=1000 in system.properties for jmeter for simulating large number of users
This plugin was initially based on the Blazemeter HLS Plugin, but has changed form considerably in this implementation. Thanks to Blazemeter for their initial work in this area.