错误:使用JMeter和插件HLS Sampler加载测试HLS

时间:2018-09-19 02:17:28

标签: jmeter hls jmeter-plugins

我尝试使用带有HLS Sampler的JMeter测试我的HLS服务器。但是在我的cmd上有一个notif错误。我该怎么办?

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

2 个答案:

答案 0 :(得分:1)

这是plugin中的一个错误,它不能处理URL的所有可能,我想是重定向或相对URL。

我们过去用它制作了一个POC,发现有一些未正确处理的案例可能导致:

  • 停止测试,测试永远不会结束
  • 误报(在没有实际问题的情况下,测试被标记为失败)
  • 未处理很多HLS可能性
  • 我们甚至不谈论比VOD复杂得多且仅在极少数简单情况下起作用的实时流。

但是,由于它是一个免费的OSS插件,如果您有时间和能力了解Java和jmeter,则可以尝试自己提供补丁。

我认为该插件可以处理非常简单的情况,但不适用于当前状态下的所有现实情况。

除了它之外,由于需要模仿暂停,播放视频,滞后...,因此模拟播放器如何向Streaming服务器请求URL的过程非常复杂,无法重现。

当然,通常,当您要测试HLS时,您还至少要测试mpeg-dash,这是另一个更为复杂的故事。

最后,您通常需要custom metrics来分析插件缺少的负载测试。

答案 1 :(得分:0)

有2种可能性:

  1. 您的视频流中有一个错误,即m3u8播放列表是指不存在的块URL,请测试您是否可以使用普通的视频播放器(即VLC
  2. 来播放视频)
  3. HLS Sampler插件中存在一个错误,该错误错误地解析了初始响应。在这种情况下,请通过jmeter-plugins forum与插件开发者联系。同时,您可以使用普通的HTTP Request采样器来load test your HTTP Live Streaming service