Skip to content

Releases: Blazemeter/HLSPlugin

v3.2

27 Sep 18:20
Compare
Choose a tag to compare
v3.2 Pre-release
Pre-release

In this release, the following features were added:

  • Added option to include video type in request response headers
  • Added dropdown selection for resolution, bandwidth, audio and subitles. Also added a load playlist button
  • Added base for variant download
  • Support use of ByteRange label for fragmented media playlists
  • Update JMeter Compatibility up to 5.5

Also, the following are fixes or changes to prevent potential errors:

  • Fixed issue where resolution is null and it attempts to evaluate it as a dictionary
  • Start using local library to get EXT-X-MAP
  • Return specific error in sampler if selected bandwidth or resolution doesn't exist
  • Fix updating redirection uri when Master Playlist has redirection
  • hls docker generation
  • Fix issue when playlists use relative paths
  • Fix issue when resolution field is not present
  • Fix issue when language field is not present

The documentation was updated to represent new views and options

3.1

26 Apr 16:13
Compare
Choose a tag to compare

Now is possible to manually specify in sampler what is the protocol to be used while downloading the playlist!
By default, the sampler can automatically detect the protocol, but in some corner cases, the detection logic can't properly identify the protocol. In such scenarios, you can now manually specify which is the correct protocol.

Fix segment URL resolution for DASH live streamings which were previously generating incorrect timestamp values.

3.0.3

28 Jul 19:06
Compare
Choose a tag to compare

This patch release includes:

  1. Fix Master-Slave issue, related to RMI mechanism used by JMeter when running that type of test.
  2. Improve URL recognition.

IMPORTANT: Due to URL recognition improvements, when testing HLS protocol is mandatory for URLs to contain the extension .m3u8 as detailed here. If this extension is not found, the URL will be handled as a MPEG DASH protocol.

3.0.2

12 May 18:43
Compare
Choose a tag to compare

This patch release includes changes on HLS protocol:

  • Fix for equal signs on URIs.
  • Improvements in the way subtitles are been extracted.

3.0.1

01 Apr 18:53
Compare
Choose a tag to compare

In this patch release, the following changes were made:

  • Fixed the playlist reload to keep working after interrupting a test and starting a new one.
  • Fixed rounding issue when calculating reload time to allow for finer reload times.
  • We included a jenv file to fix the java version to be used in dev environments using jenv.

3.0

11 Feb 15:27
Compare
Choose a tag to compare
3.0

MPEG-DASH supported, minor interface changes and more!

In this new major release, we have added new support for video streaming protocols and improved some features on the interface. Keep reading to know all about it!

  • Support MPEG-DASH:

    • Now HLS plugin also supports MPEG-Dash links to be tested. As you may know, DASH its one of the most used Video Streaming protocols used worldwide, from companies like Youtube to Netflix. And now, you can test any DASH video streaming you like too!
  • Change Sampler and Samples Names:

    • In an attempt to offer a wider range of support for video streaming protocols, the addition of DASH makes us think for a bigger picture and changes regarding the GUI reflect it. The HLS Samplers changed their names to "Streaming Sampler" since now it covers more than just HLS for video streaming.
  • Automatic Protocol recognition:

    • Are you testing HLS, DASH? It doesn't matter, now the plugin will automatically detect the protocol from the URL and test it right away.

Notice:

In future versions, we will change the name of the plugin to "Video Streaming" instead of "HLS", following the same idea of covering a wider range of protocols.

2.0

24 Sep 02:25
Compare
Choose a tag to compare
2.0

In this major release we have tackled most of pending issues reported from users and some new cool features!

Here is a list of all major changes included in this version:

  • Simplified UI
    • It is no longer required to specify the protocol (which is now automatically extracted from provided URL and playlist body) to be used by the sampler or the type of video for the URL (which is now extracted directly from the playlist). This simplifies the setup to users avoiding providing unnecessary information. Check the README for some screenshots.
  • Live sample results feedback and statistics granularity
    • Many users were concerned that HLS Sampler was not providing any kind of feedback (sample results) while it was downloading the segments to fulfill specified play time. This was particularly painful when specifying long play time videos. To fix this, conform with JMeter model and provide real time sample results, we changed from a hierarchical structure of sample results to a plain structure were each request has no direct association to the rest. Check the README for some screenshots.
      This also fixes another issue reported by many users were they were not able to get granular statistics on number of HTTP requests issued by the sampler, only getting a single sample for each HLS sampler invocation (composed of many HTTP requests).
      Additionally, to compensate for the lack of structure on new generated sample results, naming of sample results has been improved to ease identification of each request and proper statistics analysis.
      WARNING: Since the structure of the sample results has changed (no more hierarchical relations) any potential post processors or assertions might need to be accommodated to the new format. Check following item on assertions and post processors changes.
  • Granular post processors and assertions sample result filtering
    • Now you can select what particular type of sample result (master playlist, media playlist, video segment, audio segment, etc) you want to apply a post processor or assertion to, allowing you to implement specific logic for each. Please check the Assertions and Post Processors section in the Readme for more details.
      WARNING: main and subsamples selection on assertions and post processors have no effect anymore.
  • Subtitles and audio track selection
    • You can now select a particular subtitle and/or audio track (if the master playlist contains some) for the plugin to automatically download (as a player would). More details on the the README.
  • Stopping HLS sampler
    • It is now possible through JMeter test plan execution Stop button, to stop HLS sampler in the middle of a video "playback" (in fact just download of segments). On previous version this was not possible, and when Stop button was hit, the test plan would not stop until all samplers finished downloading the video segments.
  • Video playback between iterations
    • Previous version of the sampler automatically continued from where it left between iterations, this means that if you had an HLS sampler with 5 seconds period within a Thread Group with 5 iterations, you would get in first iteration the segments associated to the first 5 seconds, in following iteration the following 5 seconds and so on. This behavior is not how JMeter samplers usually work, which are in general stateless and iterations are a way to just continue doing same requests in iterations. We have changed the sampler behavior which now will start video playback from the beginning of the playlist in each iteration, but we have also added a new checkbox that allows to use previous behavior (to resume download between iterations) for the users that still need that in their tests plans.
      WARNING: since default behavior has changed, make sure you get the expected behavior when migrating previous versions test plans to this new version.
  • URL resolution
    • Issues when solving relative URLs from playlists are now fixed following the HLS RFC guidelines.
  • Playlist reload logic
    • Previous version of the sampler tried to make requests as fast as possible, ignoring HLS RFC guidelines for HLS clients playlist reload times. This was particularly bad when consuming livestreams, since the plugin might consume all current segments and then constantly (without any wait) request for media playlist until it got new segments, which in consequence generated unnecessary resource consumption both in JMeter and on HLS servers. The plugin now complies with HLS RFC by waiting for proper period between playlist reloads.
  • JMeter HTTP sampler logic for all HTTP requests
    • The plugin now uses JMeter provided HTTP sampler logic to make all requests and generate sample results. This fixes integration with all JMeter HTTP configuration test elements (cookies, headers, cache, etc), provides consistent formatting of sample results with the ones generated by HTTP sampler and fixes all existing issues while handling non success status codes and connection problems.
  • Automatically follow redirects
  • Reuse of HTTP connection for sampler HTTP requests
    • Previous version of the sampler was creating and closing a connection for each HTTP request (retrieving playlists and segments). This generates unnecessary resource usage on both JMeter and server. This release uses HTTPClient with standard JMeter reuse of connections making the plugin behave as Video Stream players do.
  • X-MEDIA-SEGMENT-DURATION response header
    • This version adds to each media segment HTTP sample result a response header which contains the reproduction duration for the segment. This eases getting video streaming KPIs to measure the user experience on the reproduction by combining it with download times.
  • Consistent stream variant resolution
    • Video stream variant resolution (through bandwidth and resolution settings) is now consistent regardless the order the variants appear in the playlist. Bandwidth will be considered more important (with higher priority) than resolution selection, unless resolution is set to a custom value and bandwidth is not.

Some other minor fixes have been introduced, please check this version and let us know of any other improvement you think would be nice to include in future releases.

1.3

29 Mar 15:25
Compare
Choose a tag to compare
1.3

•Logo has been added.
•Plugin name has been changed to continue with the convention of BlazeMeter plugins .
•Issue in live stream when it did not show results in View Results Tree has been fixed.