Load Test your Smooth Streaming applications with HP LoadRunner

This post was written by Yoav Agami, from the HP LoadRunner R&D team.

 

Smooth Streaming is an Internet Information Services (IIS) Media Services extension which provides streaming of high-quality video to Silverlight and other clients over HTTP.  The major difference between Smooth Streaming and traditional streaming is that traditional streaming delivers the content at a fixed rate and quality, while Smooth Streaming adapts the stream rate and quality by monitoring the local bandwidth and video playback performance of the client.  This article explains how you can use HP LoadRunner to load test applications that use Smooth Streaming.

 

Here are the steps you need to take to create a load test of a Smooth Streaming application:

 

1)  Use the Web (HTTP/HTML) protocol to record your Smooth Streaming application, and generate a script.

 

Note: Before you start recording,configure the Recording Options dialog's General > Recording tab as follows, depending on whether you want to record a URL-based script or HTML-based script:

  • URL-Based Script:  Select 'URL-based script', and click the 'URL Advanced' button.  In the resulting 'Advanced URL' dialog, check the 'Use web_custom_request only' checkbox:

p1.png

 

  • HTML-Based Script: Select 'HTML-based script', and click the 'HTML Advanced' button.  In the resulting 'Advanced HTML' dialog, select 'Record in separate steps and use concurrent groups':

p2.png

 

If you selected HTML-based script, remove the web_custom_start(NULL); and web_concurrent_end(NULL); steps for streaming steps.

 

2)  Look for the “Manifest” request, which is the start of the streaming communication:

 

web_custom_request("Manifest"
        "URL=http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest", 
        "Method=GET"
        "Resource=0", 
        "RecContentType=text/xml"
        "Referer="
        "Snapshot=t11.inf"
        "Mode=HTTP"
        LAST);

 

3) After the “Manifest” request, you should find a number of Streaming requests, which look like the following:

 

    web_custom_request("Fragments(video=0)"
        "URL=http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/QualityLeve...350000)/Fragments(video=0)"
        "Method=GET"
        "Resource=1"
        "RecContentType=video/mp4"
        "Referer="
        "Snapshot=t12.inf"
        LAST);

    web_custom_request("Fragments(audio=0)"
        "URL=http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/QualityLeve...64000)/Fragments(audio=0)"
        "Method=GET"
        "Resource=1"
        "RecContentType=video/mp4"
        "Referer="
        "Snapshot=t13.inf"
        LAST);

 

 

4) You can configure the the script to emulate different bandwidths than the ones recorded:

 

      - Create parameters for the values you want to change

 

      - For example, replace “QualityLevels” in the previous step with a parameter called ‘qualityLevel’, as follows:

 

    web_custom_request("Fragments(video=0)"
        "URL=http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/QualityLeve...{qualityLevel})/Fragments(video=0)"
        "Method=GET"
        "Resource=1"
        "RecContentType=video/mp4"
        "Referer="
        "Snapshot=t12.inf"
        LAST);

 

You can configure the values that will be used for ‘qualityLevel’ in each iteration from the Parameter Properties dialog box:

 

paramprops.png

 

 

5) Replay the script. Verify that the size of the response from each request corresponds to the value of the parameter that was sent.

 

 

 

 

Leave us a comment in the box below to let us know how you are load testing your Smooth Streaming applications.

 

 

 

Thanks to Yoav for providing this article!

 

 

Click here to learn more about HP LoadRunner

 

 

DownloadWP-LoadFactor-Performance testing for web applications.png

 

Comments
Belfd | ‎08-27-2013 03:08 PM

Short and to the Point. Good job Yoav.

10x

Dan

gatlaprasanna(anon) | ‎05-26-2014 10:11 PM

We are working for one of the video streaming application, followed all the above said steps, but when we replay the recorded script we see warning in the replay log as "Warning -26682: Embedded space(s) or misplaced quotes in value of "Pragma" response header for"

 

Is this some kind of corrleation we missed out or ?

 

Thanks,

Prasanna

Yoav_Agami | ‎05-27-2014 12:15 AM

Hi Prasanna,

 

This doesn't sound like a problem with correlations. The user send the quality level that he wants (user can set parameter that can change in  each request).

 

Can you share your AUT or script?

 

Thanks,

Yoav

Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the Community Guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
About the Author
Malcolm is a functional architect, focusing on best practices and methodologies across the software development lifecycle.


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation