2

I tried to test my HLS server using JMeter with HLS Sampler. But on my cmd there is a notif error. What should i do ?

java.io.FileNotFoundException: http://192.168.2.215/vod/BF1.mp4/chunk.m3u8
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        at com.blazemeter.jmeter.hls.logic.Parser.getBaseUrl(Parser.java:49)
        at com.blazemeter.jmeter.hls.logic.HlsSampler.getPlayList(HlsSampler.java:104)
        at com.blazemeter.jmeter.hls.logic.HlsSampler.sample(HlsSampler.java:156)
        at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:498)
        at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:424)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: http://192.168.2.215/vod/BF1.mp4/chunk.m3u8
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        at java.net.HttpURLConnection.getResponseCode(Unknown Source)
        at com.blazemeter.jmeter.hls.logic.Parser.getBaseUrl(Parser.java:46)
        ... 6 more
Zae
  • 21
  • 1

2 Answers2

1

It is a bug in the plugin which doesn't handle all possibilities of URLs, I guess redirection or relative URLs.

We made a POC in the past with it and we found out there were several cases not handled correctly which could lead to:

  • Hanging test, test would never end
  • False positives (test is marked as failed while there is no real issue)
  • lot of HLS possibilities not handled
  • Let's not even talk about Live streams which is far more complex than VOD and which works only with very few simple cases.

But as it's a free OSS plugin, you can try to provide a patch yourself if you have time and ability to understand java and jmeter.

I think the plugin is fine to handle very simple cases, but not for all real-life possibilities as of current state.

Besides even with it, simulating how a Player requests URLs to Streaming servers is very complex to reproduce as you need to mimic pauses, playing the video, lags ...

And of course usually when you want to test HLS, you also want to test mpeg-dash at least which is another much more complex story.

Finally, you usually need custom metrics to analyze your load test that the plugin lacks.

Loc Ann
  • 455
  • 6
  • 24
0

There are 2 possibilities:

  1. There is a bug in your video stream, i.e. m3u8 playlist refers to non-existing chunk URL, test if you can play the video using a normal video player i.e. VLC
  2. There is a bug in the HLS Sampler plugin which incorrectly parses the initial response. In this case reach out to plugin developers via jmeter-plugins forum. In the mean time you can use normal HTTP Request sampler to load test your HTTP Live Streaming service
Dmitri T
  • 159,985
  • 5
  • 83
  • 133
  • I have tried tutorial use HTTP Request on blazemeter with 30 thread users, there is no error. But when i check my server (htop & nload) there is no traffic. Btw my server using Ubuntu 16.04. – Zae Sep 19 '18 at 06:07