Blazemeter / HLSPlugin

A repo to hold the OpenSource HLS JMeter Plugin code
Apache License 2.0
48 stars 17 forks source link

Jmeter is unable to redirect request based on location tag value in dash manifest #31

Open pongchais opened 1 year ago

pongchais commented 1 year ago

We are trying to load test our CDN nodes with Blazemeter HLS plugin on Apache Jmeter. Live dash stream is used which has location tag in it, that redirects the client to the another URL & then it provides the response. Since HLS plugin doesn't have that redirect feature based on Location tag, we are unable to replicate the exact client behavior during the loadtest.

Can we have such feature of refdirection based on location tag in dash manifest. Below is the sample of the dash manifest with location tag sample.txt

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="urn:mpeg:dash:schema:mpd:2011"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:scte35="https://schemas.scte.org/35/scte_35_20211104.xsd"
     xmlns:cenc="urn:mpeg:cenc:2013"
     xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
     profiles="urn:mpeg:dash:profile:isoff-live:2011"
     type="dynamic"
     minimumUpdatePeriod="PT4.955S" 
     publishTime="2023-07-17T08:34:02.673Z" 
     availabilityStartTime="2023-07-14T08:25:26.710Z" 
     timeShiftBufferDepth="PT12.0S"
     suggestedPresentationDelay="PT8.0S" 
     minBufferTime="PT16.0S">
    <ProgramInformation>
        <Title>tmp004_multi_antv_auto_wv_ott.smil</Title>
    </ProgramInformation>
    <Location>https://cdn179.example.net/p201uhddrm/tmp004_multi_antv_auto_wv_ott.smil/manifest_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw.mpd</Location>
    <Period id="0" start="PT0.0S">
        <AdaptationSet id="0" group="1" mimeType="video/mp4" width="960" height="540" par="16:9" frameRate="25" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate timescale="90000" media="segment_ctvideo_cfm4s_rid$RepresentationID$_cs$Time$_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s" initialization="segment_ctvideo_cfm4s_rid$RepresentationID$_cinit_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s">
                <SegmentTimeline>
                    <S t="23372996400" d="360000"/>
                    <S d="360000"/>
                    <S d="360000"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation id="p0va0br1500000" codecs="avc1.4d401f" sar="1:1" bandwidth="1500000" />
        </AdaptationSet>
        <AdaptationSet id="1" group="1" mimeType="video/mp4" width="480" height="360" par="4:3" frameRate="25" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate timescale="90000" media="segment_ctvideo_cfm4s_rid$RepresentationID$_cs$Time$_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s" initialization="segment_ctvideo_cfm4s_rid$RepresentationID$_cinit_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s">
                <SegmentTimeline>
                    <S t="23372996400" d="360000"/>
                    <S d="360000"/>
                    <S d="360000"/>
                    <S d="360000"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation id="p0va1br650000" codecs="aavc1.42e015" sar="1:1" bandwidth="650000" />
        </AdaptationSet>
        <AdaptationSet id="2" group="2" mimeType="audio/mp4" lang="Thai" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
            <SegmentTemplate timescale="48000" media="segment_ctaudio_cfm4s_rid$RepresentationID$_cs$Time$_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s" initialization="segment_ctaudio_cfm4s_rid$RepresentationID$_cinit_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s">
                <SegmentTimeline>
                    <S t="12465598896" d="191520"/>
                    <S d="192480"/>
                    <S d="191520"/>
                    <S d="192480"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation id="p0aa0br96000" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="96000">
        </Representation>
        </AdaptationSet>
        <AdaptationSet id="3" group="2" mimeType="audio/mp4" lang="Original" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
            <SegmentTemplate timescale="48000" media="segment_ctaudio_cfm4s_rid$RepresentationID$_cs$Time$_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s" initialization="segment_ctaudio_cfm4s_rid$RepresentationID$_cinit_w186558535_qYXBwaWQ9YW50djEmdHlwZT1saXZlJnZpc2l0b3I9YW50diZkcm09d3YzJnVpZD10ZGctdGVzdCZkaWQ9ZEdSbkxYUmxjM1Emc2lkPWE4ODNlZGFhNzAmcnQ9MTY4OTU4MjY2OCZkcz04NjQwMCZ0az0zckZTVWVmTHowYWMtZlFBaVY3NXY0aHZPV0xWczBESmp0RmFVSFJhZ2Iw_mpd.m4s">
                <SegmentTimeline>
                    <S t="12465598896" d="191520"/>
                    <S d="192480"/>
                    <S d="191520"/>
                    <S d="192480"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation id="p0aa1br96000" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="96000">
        </Representation>
        </AdaptationSet>
    </Period>
    <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2023-07-17T08:34:02.673Z"/>
</MPD>