Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用JMeter测试HLS_Java_Regex_Jmeter_Http Live Streaming - Fatal编程技术网

Java 用JMeter测试HLS

Java 用JMeter测试HLS,java,regex,jmeter,http-live-streaming,Java,Regex,Jmeter,Http Live Streaming,我正在使用JMeter从流媒体服务器测试HLS播放。因此,第一个HTTP请求是主清单文件(m3u8)。说 对此的回复将生成一个播放列表,类似 subsubFolder/360p/file1.m3u8 subsubFolder/480p/file1.m3u8 subsubFolder/720p/file1.m3u8 因此,下一组URL将成为 http://myserver/application1/subpath1/subsubFolder/360p/file1.m3u8 http://myse

我正在使用JMeter从流媒体服务器测试HLS播放。因此,第一个HTTP请求是主清单文件(m3u8)。说

对此的回复将生成一个播放列表,类似

subsubFolder/360p/file1.m3u8
subsubFolder/480p/file1.m3u8
subsubFolder/720p/file1.m3u8
因此,下一组URL将成为

http://myserver/application1/subpath1/subsubFolder/360p/file1.m3u8
http://myserver/application1/subpath1/subsubFolder/480p/file1.m3u8
http://myserver/application1/subpath1/subsubFolder/720p/file1.m3u8
现在,对这些进一步的单独回复将是块的索引,如

0/file1.ts
1/file1.ts
2/file2.ts
3/file3.ts
同样,我们还有下一组URL

http://myserver/application1/subpath1/subsubFolder/360p/0/file1.ts
http://myserver/application1/subpath1/subsubFolder/360p/1/file1.ts
http://myserver/application1/subpath1/subsubFolder/360p/2/file1.ts
http://myserver/application1/subpath1/subsubFolder/360p/3/file1.ts
这只是一套(360p)的情况。还有两套类似的(480p和720p)

我希望在这之前,需求声明是明确的。
现在,问题陈述。

使用
作为静态部分,regex(+?).m3u8在第一次回复时应用,给出
子路径1/subsubFolder/360p/file1
。然后再次将其添加到静态部分,以获得
+.m3u8
问题将在下一阶段出现。正如你所看到的,对于之前提取的部分,我得到的只是

http://myserver/application1/subpath1/subsubFolder/360p/file1/0/file1.ts
问题很明显,一个额外的文件1,360p/file1代替了360p/0


任何建议、输入或替代方法都值得赞赏。

如果我正确理解了这个问题,您所需要的只是文件名,因为其他URL都可以用它来构造。而不是使用
http://myserver/application1
作为正则表达式的静态部分,我会尝试直接获取文件名:

([^\/.]+)\.m3u8$
# match one or more characters that are not a forward slash or a period
# followed by a period
# followed by the file extension (m3u8)
# anchor the whole match to the end
现在考虑你的URL,例如<代码>http://myserver/application1/subpath1/subsubFolder/360p/file1.m3u8,上面的正则表达式将捕获
文件1
,请参见此处的。现在您可以构造其他URL,例如(伪代码):


这就是你想要的吗?

如果我正确理解了这个问题,你所需要的只是文件名,因为其他URL都可以用它来构造。而不是使用
http://myserver/application1
作为正则表达式的静态部分,我会尝试直接获取文件名:

([^\/.]+)\.m3u8$
# match one or more characters that are not a forward slash or a period
# followed by a period
# followed by the file extension (m3u8)
# anchor the whole match to the end
现在考虑你的URL,例如<代码>http://myserver/application1/subpath1/subsubFolder/360p/file1.m3u8,上面的正则表达式将捕获
文件1
,请参见此处的。现在您可以构造其他URL,例如(伪代码):

这就是你想要的吗?

确保你使用:

  • (.*)
    -作为正则表达式(在正则表达式中将加号改为星号)
  • -1
    -作为匹配号
  • $1$
    -作为模板

有关详细说明,请参阅文章

确保您使用:

  • (.*)
    -作为正则表达式(在正则表达式中将加号改为星号)
  • -1
    -作为匹配号
  • $1$
    -作为模板


有关详细说明,请参阅文章

如果您准备购买一个商业插件,那么有一个简单且更现实的解决方案,即UbikLoadPack提供的Apache JMeter插件:

除了为您执行此操作外,它还将模拟玩家读取文件的方式。它的伸缩性也比任何自定义脚本或播放器解决方案都要好。 它支持视频点播和直播,这是相当困难的脚本

见:


免责声明,我们是此解决方案的提供商

如果您准备支付商业插件的费用,那么有一个简单且更现实的解决方案,即UbikLoadPack提供的Apache JMeter插件:

除了为您执行此操作外,它还将模拟玩家读取文件的方式。它的伸缩性也比任何自定义脚本或播放器解决方案都要好。 它支持视频点播和直播,这是相当困难的脚本

见:


免责声明,我们是此解决方案的提供商

否,仅文件名是不够的,因为子路径或子子文件夹部分也可能/将发生更改。问题在于递增地追加从每个请求获得的回复中获得的路径。我不想手动创建它们,因为数字不是固定的。那么你能给出一个更真实的文件路径的例子吗?在你的驱动器上考虑一个电影的结构。第一级可能是对语言进行分类。第二种可能是体裁。因此,您将拥有URL
language1/genre1 language2/genre1 language3/genre1
这不是一个具有固定应用程序路径的web应用程序。这适用于媒体服务器,其中路径表示实际映射的路径。不,仅文件名是不够的,因为子路径或子子文件夹部分也可能/将发生更改。问题在于递增地追加从每个请求获得的回复中获得的路径。我不想手动创建它们,因为数字不是固定的。那么你能给出一个更真实的文件路径的例子吗?在你的驱动器上考虑一个电影的结构。第一级可能是对语言进行分类。第二种可能是体裁。因此,您将拥有URL
language1/genre1 language2/genre1 language3/genre1
这不是一个具有固定应用程序路径的web应用程序。这与媒体服务器有关,其中路径表示实际映射的路径。
http://myserver/application1/subpath1/subsubFolder/360p/ + filename + .m3u8
http://myserver/application1/subpath1/subsubFolder/360p/ + filename + /0/ + filename + .ts