HTTP Functions

emulation http profile config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

This is a Spirent Extension created to configure, modify, or delete a load, client, or server profile for HTTP testing.

HTTP testing is the core of application layer network testing. To test HTTP with Spirent HLTAPI, you begin by setting up a load profile, an HTTP client profile, and an HTTP server profile. A load profile configures the amount of network traffic to generate for a test. An HTTP client profile defines the type of user behavior that you want all HTTP clients to emulate. An HTTP server profile defines the HTTP server to emulate.

Synopsis:

Note: M indicates the argument is `Mandatory`.

       emulation http profile config
               mode=  {create | modify | delete} M
               profile_type= {load | client | server} M
               body_content_type= {ascii | binary}
               body_size_type= {fixed | random}
               enable_delayed_ack= {true | false}
               enable_keep_alive= {true | false}
               enable_pipeline= {true | false}
               enable_video_client= {true | false}
               enable_video_server= {true | false}
               fixed_body_size= <0-4294967295>
               fixed_response_latency= <0-4294967295>
               http_version= {version_1_0 | version_1_1}
               ipv4_tos= <0-255>
               ipv6_traffic_class= <0-255>
               load_type= {connections | connections_per_time_unit | transactions |
                           transactions_per_time_unit | bandwidth | playlists}]
               max_connections_attempted= <0-4294967295>
               max_open_connections= <0-4294967295>
               max_pipeline_depth= <1-255>
               max_transactions_attempted= <0-4294967295>
               profile_handle= <handle>
               profile_name= <ALPHANUM>
               random_body_size_mean=  <0-4294967295>
               random_body_size_std_deviation=  <0-4294967295>
               random_latency_mean= <0-4294967295>
               random_latency_std_deviation= <0-4294967295>
               randomization_seed= <0-4294967295>
               response_timing_type=  {fixed | random}
               rx_window_limit= <0-4294967295>
               server_port_num= <1-65535>
               server_sliding_window_play_list_size= <3-100>
               server_target_duration= <5-15>
               server_type= {microsoft_iis | apache}
               tos_type=  {tos| diffserv}
               user_agent_header= <ALPHANUM>
               use_dynamic_load= {true | false}
               video_client_video_type= {VOD| LIVE}
               video_client_bitrate_alg= {smart | normal | constant}
               video_client_predef_method= {minimum | median | maximum}
               video_client_start_bitrate= {predefine | userdefine}
               video_client_type= {spirent_hls}
               video_client_user_def_value= <40-4096>
               video_client_view_time= <0-4294967295>
               video_server_bitrate_list= {br_64 | br_96 | br_150 | br_240 | br_256
                                       | br_440 | br_640 | br_800 | br_840 | br_1240}]
               video_server_stream_type= {adaptive_bitrate | progressive}
               video_server_type= {live_streaming}
               video_server_version= {version_1_0}

Arguments:

mode
                Specifies the action to perform. This argument is `Mandatory`.
                Possible values are::


                 create      Creates the kind of profile specified by type. You must
                             specify profile_type.

                 modify      Modifies the specified profile

                 delete      Deletes the specified profile


profile_type
                Specifies the type of profile to be created. This argument is
                `Mandatory`. Possible values are described below::

                 load_profile            HTTP load profile that determines the
                                         traffic pattern in which the load is
                                         generated for the test phase

                 client_profile          HTTP client profile configuration

                 server_profile          HTTP server profile configuration

body_content_type
                Specifies the body content type for server responses. Possible
                values are ASCII and Binary. The default is ASCII.

body_size_type
                Specifies the method to determine body size for server responses.
                Possible values are::


                 fixed
                            Use the value you specify in fixed_body_size

                 random
                            Use a random value generated based on the range
                            specified by both random_body_size_mean and
                            random_body_size_std_deviation

                The default is fixed.

burst_time
                The duration of the burst. This argument is only valid when
                load_pattern is set to burst. The unit is determined by the
                duration_units argument. Possible values range from 0
                to 40000000. The default is 20.


enable_delayed_ack
                Enables/disables delayed acknowledgment (ACK) on TCP connections.
                Use profile_type to specify whether it is for a an HTTP
                client or a server. Possible values are true (enable) and false
                (disable). The default is false.

enable_keep_alive
                Determines whether to keep the connection open after the initial
                request is accepted. Possible values are true and false. If it is
                set to true, Spirent HLTAPI will keep the connection open after the
                initial request is accepted. The default is true.

enable_pipeline
                Determines whether to allow the client to issue multiple
                requests to the HTTP server. This argument is only valid when
                enable_keep_alive is set to true. Possible values are true and
                false. The default is true.


enable_video_client
                Enables/disables video for the HTTP client. Possible values are
                true (enable) and false (disable). The default is false.

enable_video_server
                Enables/disables video for the HTTP server. Possible values are
                true (enable) and false (disable). The default is false.

fixed_body_size
                The response's body size in bytes for a fixed body size type.
                This argument is only valid when you set body_size_type to
                fixed. Possible values range from 0 to 4294967295. The default is
                64.

fixed_response_latency
                The delay in milliseconds before the server sends a response for
                a fixed response timing type. You must set response_timing_type
                to fixed. Possible values range from 0 to 4294967295. The default
                is 0.

http_version
                Specifies the HTTP version to be used by the server. Possible
                values are::


                 version_1_0      HTTP version 1.0

                 version_1_1      HTTP version 1.1

                The default is version_1_1.

ipv4_tos
                Specifies the Type of Service (TOS) settings to use for IPv4
                Layer 4/7 traffic. Use profile_type to specify whether it is for
                a client or a server. Possible values range from 0 to 255. The
                default is 192.

ipv6_traffic_class
                Specifies the traffic class settings to use for IPv6 Layer
                4/7 traffic. Use profile_type to specify whether it
                is for a client or a server. Possible values range from 0 to 255.
                The default is 0.

load_type
                Specifies the type of traffic that is measured for the load.
                Possible values are::


                 connections                     The number of simultaneous network
                                                 connections generated

                 connections_per_time_unit       The number of new connections to
                                                 be opened in a given time unit,
                                                 regardless of the number of
                                                 connections currently open

                 transactions                    The number of simultaneous
                                                 transactions generated

                 transactions_per_time_unit      The number of transactions per time
                                                 unit for the duration of the test

                 bandwidth                       The load in terms of bandwidth,
                                                 sent on a besteffort basis

                 playlists                       Protocol playlists

                The default is connections.

max_connections_attempted
                The upper limit for the number of connection attempts that are
                made throughout the test. Possible values range from 0 to
                4294967295. The default is 4294967295.

max_open_connections
                The upper limit for the number of open connections throughout the
                test. Possible values range from 0 to 4294967295. The default is
                4096.

max_pipeline_depth
                Maximum depth of the HTTP request pipeline. This argument is only
                valid when enable_pipeline is set to true. Possible values range
                from 1 to 255. The default is 8.

max_transactions_attempted
                The upper limit for the number of transaction attempts that are
                made throughout the test. Possible values range from 0 to
                4294967295. The default is 4294967295.

profile_handle
                Specifies the profile handle

profile_name
                Specifies the name of the profile

random_body_size_mean
                Mean size of the response body when body_size_type is set to
                random. You must set body_size_type to random. Possible values
                range from 0 to 4294967295. The default is 0.

random_body_size_std_deviation
                Standard deviation of the response body size for a random body
                size type. You must set body_size_type to random. Possible
                values range from 0 to 4294967295. The default is 0.

random_latency_mean
                The delay before the server sends a response for a random
                response timing type. You must set response_timing_type to
                random. Possible values range from 0 to 4294967295. The default
                is 0.

random_latency_std_deviation
                Standard deviation of the response latency for a random response
                timing type. You must set response_timing_type to random.
                Possible values range from 0 to 4294967295. The default is 0.

randomization_seed
                A number to define the heights in the random phases of the test.
                If the value is zero, the seed is determined by the time the test
                is executed. Possible values range from 0 to 4294967295. The
                default is 123456.

response_timing_type
                The timing type which determines the time that the server will
                wait before sending a response. Possible values are::


                 fixed       Use the value you specify in fixed_response_latency

                 random      Use a random value generated based on the range
                             specified by both random_latency_mean and
                             random_latency_std_deviation

                The default is fixed.

rx_window_limit
                Maximum size of the receive window for TCP connections. Use
                profile_type to specify whether it is for a client or a server.
                Possible values range from 0 to 4294967295. The default is 32768.

server_port_num
                Port number to use on the server. Possible values range from 1 to
                65535. The default is 80.

server_sliding_window_play_list_size
                The sliding window playlist size to use for live video. When the
                number of fragments passes the size of the sliding window, the
                media sequence number is incremented.
                Values: 3-100
                Default: 8

server_target_duration
                Video server target duration in seconds
                Values: 5 - 15
                Default: 10

server_type
                Specifies the HTTP server type to use. Possible values are
                Microsoft_IIS and Apache. The default is Microsoft_IIS.

tos_type
                Specifies the formatting of the Quality of Service (QoS) value.
                Possible values are::


                 tos         Type of Service

                 diffserv    Differentiated Services

                The default value is tos.

user_agent_header
                A description of the simulated client vendor

use_dynamic_load
                Determines whether to allow the load to be changed dynamically
                during the test. This argument is only valid when load_type is
                set to bandwidth. If it is set to true, the HTTP load phase
                configured in the ``emulation http phase config`` function will
                not work. Possible values are true and false. The default is
                false.

video_client_bitrate_alg
                Specifies the bitrate algorithm for the HTTP client. Possible
                values are::


                 smart       The client starts playing the stream at the
                             starting bitrate. It determines the
                             upshift and downshift thresholds by calculating the
                             available bandwidth using the time it took to
                             download the previous fragment, and selecting the
                             bitrate that is closest to that value, without
                             exceeding it. (If the bandwidth is below the minimum
                             bitrate, then the minimum bitrate is used.)

                 normal      The client starts playing the stream at the starting
                             bitrate specified by video_client_start_bitrate. It
                             then uses the upshift and downshift to
                             increase or decrease the bitrate level by one.

                 constant    The client plays the stream at the starting
                             bitrate throughout the session.

                The default value is smart.


video_client_predef_method
                Specifies the predefined method with which you get the starting
                bitrate value. You must set video_client_start_bitrate
                to predefine. Possible values are minimum, median, and maximum.
                The default value is minimum.

video_client_start_bitrate
                Specifies the method to determine the starting bitrate at the HTTP
                client. Possible values are::


                 predefine   Use the starting bitrate generated based on the
                             method set in video_client_predef_method

                 userdefine  Use the value specified by video_client_user_def_value

                The default is predefine.


video_client_type
                Specifies the video client type. You must set
                enable_video_client to true. The available option is
                spirent_hls. Spirent HTTP Live Streaming (HLS) is a Spirent
                standard in adaptive bitrate video. The default value is
                spirent_hls.


video_client_video_type
                Specifies the client video type for the HTTP client profile.
                Possible values are::


                 VOD         Streaming method used to deliver content on demand

                 LIVE        Streaming method used to deliver ongoing, live content

                The default value is VOD.

video_client_user_def_value
                Specifies the userdefined starting bitrate in kbps. You must set
                video_client_start_bitrate to userdefine. Possible values range
                from 40 to 4096. The default value is 128.

video_client_view_time
                Specifies the view time for the video client. This argument is
                only available when video_client_type is set to live. Possible
                values range from 0 to 4294967295. The default is 60.

video_server_bitrate_list
                A list of bitrates for the video server. Possible values are
                br_64, br_96, br_150, br_240, br_256, br_440, br_640, br_800,
                br_840, and br_1240. The default value is br_64.

video_server_stream_type
                Specifies the video streaming type for the HTTP server profile.
                Possible values are::


                 adaptive_bitrate    Detects a user's available bandwidth in real
                                     time and calibrates the video stream accordingly

                 progressive         Transfers digital media files from a server
                                     to a client, typically using the HTTP
                                     protocol when initiated from a computer. The
                                     user may begin playback of the media
                                     before the download is complete.

                The default value is adaptive_bitrate.

video_server_type
                Specifies the video server type for the HTTP server profile. The
                available type is live_streaming. The default value is
                live_streaming.

video_server_version
                Specifies the video server version for the HTTP server profile.
                The available option is version_1_0. The default value is
                version_1_0.

Arguments Unsupported by Save as HLTAPI:

None
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

load_profile_handle         The load profile handle

client_profile_handle       The HTTP client profile handle

server_profile_handle       The HTTP server profile handle

status                      Success (1) or failure (0) of the operation

log                         An error message (if the operation failed)
Description:

The emulation http profile config creates, modifies, or deletes a load, client, or server profile for HTTP testing. Use mode to specify the action to perform, and use profile_type specify the type of profile to be created.

Before configuring HTTP on the specified devices, you must create all three types of profiles. The corresponding profiles will be contained in the keyed list returned by the function.

Examples:

To create an HTTP load profile:

set result [emulation http profile config mode=create
    profile_type= load
    profile_name= http_load
    max_connections_attempted= 100
    max_open_connections= 20
    max_transactions_attempted= 30
    load_type= connections_per_time_unit
    randomization_seed= 100000]

Sample Output:

{load_profile_handle clientloadprofile1} {status 1}

To create an HTTP client profile:

set result [emulation http profile config mode=create
    profile_type= client
    profile_name= http_client
    http_version= version_1_0
    enable_keep_alive= true
    enable_pipeline= true
    enable_video_client= false
    max_pipeline_depth= 10
    video_client_start_bitrate= userdefine
    video_client_bitrate_alg= normal
    video_client_view_time= 61
    video_client_user_def_value= 128
    video_client_predef_method= median
    video_client_type= spirent_hls
    video_client_video_type= live
    user_agent_header= "abc123 456der"]

Sample Output:

{client_profile_handle clientprofile1} {status 1}

To create an HTTP server profile:

set result [emulation http profile config mode=create
    profile_type= server
    profile_name= http_server
    body_content_type= binary
    body_size_type= fixed
    http_version= version_1_0
    server_type= apache
    fixed_body_size= 128
    fixed_response_latency= 1
    response_timing_type= fixed
    tos_type= tos
    ipv4_tos= 64
    rx_window_limit= 32769
    enable_delayed_ack= true
    video_server_stream_type= progressive
    video_server_type= live_streaming
    server_video_length= 61
    video_server_version= version_1_0
    server_media_seq_num= 2
    server_target_duration= 11
    server_sliding_window_play_list_size= 10
    server_port_num= 80
    ]

Sample Output:

{server_profile_handle serverprofile1} {status 1}

emulation http config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
A Spirent Extension created to configure, modify or delete an HTTP client/server on the specified device

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation http config
        mode= {create|modify|delete} M
        http_type=  {client|server} M
        client_profiles= <handle>
        connected_server=  <handle>
        device_handle= <handle>
        dynamic_load= <1-1000000>
        endpoint_connection_pattern= {pair | backbone_src_first |
                            backbone_dst_first | backbone_interleaved}]
        load_profiles=  <handle>
        max_request_per_client= <1-4294967295>
        max_simultaneous_clients= <1-4294967295>
        max_transactions_per_server= <1-4294967295>
        port_handle=  <handle>
        server_profiles=  <handle>

Arguments:

mode
                Specifies the action to be performed. This argument is `Mandatory`.
                Possible values are::


                 create   Enables the HTTP configuration on the device

                 modify   Modifies the HTTP configuration on the specified device

                 deletes  Deletes the HTTP configuration on the specified device


http_type
                Specifies the type of HTTP to be configured. This argument is
                `Mandatory`. Possible values are client::

                 client   HTTP client

                 server   HTTP server

                The default is client.

client_profiles
                Specifies the client profile handle returned by the
                ``emulation http profile config`` function

connected_server
                Specifies the device handle, on which the HTTP server is configured

device_handle
                Specifies the device handle. This argument is `Mandatory` when
                mode is set to modify or delete.

dynamic_load
                Load value in units of the load profile, only used when
                use_dynamic_load is set to true. Possible values range from 1 to
                1000000. The default is 30.

endpoint_connection_pattern
                Specifies the method to associate endpoints
                Possible values are::


                 pair                        Pair connections

                 backbone_src_first          Backbone connections, varying the
                                             source address first

                 backbone_dst_first          Backbone connections, varying the
                                             destination address first

                 backbone_interleaved        Backbone connections, interleaving
                                             source and destination addresses

                The default value is pair.

load_profiles
                Specifies the load profile handle returned by the
                ``emulation http profile config`` function

max_request_per_client
                Maximum number of requests from a single client. Possible values
                range from 1 to 4294967295. The default is 10.

max_simultaneous_clients
                Maximum number of simultaneous clients supported by the server.
                Possible values range from 1 to 4294967295. The default is
                4294967295.

max_transactions_per_server
                Maximum number of transactions between a single client and
                server. Possible values range from 1 to 4294967295. The default
                is 10.

port_handle
                Specifies the port handle. If mode is set to create and
                device_handle is not specified, it will create a device with
                default values from Spirent TestCenter.

server_profiles
                Specifies the server profile returned by the
                ``emulation http profile config`` function.

Arguments Unsupported by Save as HLTAPI:

None
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

device_handle       The handle of the default device created by port_handle. Only
                    returned when device_handle is not available.

client_handle       HTTP client handle

server_handle       HTTP server handle

status              Success (1) or failure (0) of the operation

log                 An error message (if the operation failed)
Description:

The emulation http config function creates, modifies, or deletes an emulated HTTP client/server on the specified device. Use mode to specify the action to perform, and use http_type to specify whether you want to configure an HTTP server or HTTP client. (See Arguments for more information.)

Before enabling HTTP server/client on the specified devices, make sure there are already HTTP server/client/load profile handles returned by the emulation http profile config function.

Examples:

To configure an HTTP client on the specified device:

set result [emulation http config mode=create
    port_handle=    $port1
    http_type=  client
    client_profiles= $client_profile
    load_profiles= $load_profile
    device_handle= $intf1
    max_transactions_per_server= 20
    connected_server= $intf2]

Sample Output:

{client_handle httpclientprotocolconfig1} {status 1}

To configure an HTTP server on the specified device:

set result [emulation http config mode=create
    port_handle= $port2
    http_type= server
    max_request_per_client= 20
    server_profiles= $server_profile
    max_simultaneous_clients= 10
    device_handle= $intf2]

Sample Output:

{server_handle httpserverprotocolconfig1} {status 1}

emulation http phase config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
A Spirent Extension created to configure, modify, or delete phases for http load profiles. An HTTP test consists of a sequence of phases defined in a load profile.

Synopsis:

Note: M indicates the argument is `Mandatory`.

       emulation http phase config
           mode= {create | modify | delete} M
           burst_time= <0 - 40000000>
           pause_time= <0 - 40000000>
           period= <0 - 10000>
           profile_handle= <handle>
           phase_handle= <handle>
           phase_name= <ALPHANUM>
           load_pattern= {stair | flat | burst | sinusoid | random | sawtooth}
           duration_units= {milliseconds | seconds | minutes | hours}
           height= <0 - 10000000>
           ramp_time= <0 - 40000000>
           repetitions= <0 - 100>
           steady_time= <0 - 40000000>

Arguments:

mode
                Specifies the action to be performed. This argument is `Mandatory`.
                Possible values are::


                 create   Creates the load phase under the specified profile handle

                 modify   Modifies the specified load phase

                 deletes  Deletes the specified load phase

burst_time
                The duration of the burst, in the unit determined by the
                duration_units argument. This argument is only valid when
                load_pattern is set to burst. Possible values range from 0 to
                40000000. The default is 20.

duration_units
                The unit of time for the load generation of the specified phase.
                Possible values are seconds, milliseconds, minutes, and hours.
                The default is seconds.

height
                The total amount of load related to the load type. Possible
                values range from 0 to 10000000. The default is 30.

load_pattern
                Determines the traffic pattern in which the load is generated for
                the test phase. Possible values are::


                 stair      Controls the workload as it climbs or descends
                            through a series of steps

                 flat       Holds the amount of load steady

                 burst      Introduces sudden increases (spikes) in a load for
                            a relatively short period of time, after which the
                            load decreases

                 sinusoid   Defines an arbitrary curve that represents a neutral
                            to high workload, then neutral to low, and back to
                            neutral

                 random     Shows the bounds of where values occur in the workload

                 sawtooth   The ending load height is the same as the beginning

                The default value is stair.

profile_handle
                Specifies the profile handle on which the HTTP phase is
                configured. This argument is `Mandatory` when mode is set to
                create.

phase_handle
                Specifies the load phase handle to use when phase_mode is set to
                modify or delete

phase_name
                Specifies the name of the load phase to create

pause_time
                The pause time between bursts, in the unit specified by
                duration_units. This argument is only valid when -load_pattern
                is set to burst or sawtooth. Possible values range from 0 to
                40000000. The default is 40.

period
                The amount of time to gradually achieve the total load specified
                by height. duration_units determines the units for this
                attribute. This argument is only valid when load_pattern is set
                to sinusoid. Possible values range from 0 to 1000.

ramp_time
                The amount of time each step takes to reach the load type applied
                to height. duration_units determines the units for this
                attribute. This argument is only valid when load_pattern is set
                to flat, random or stair. Possible values range from 0 to
                40000000. The default is 20.

repetitions
                The number of times that you want the pattern to repeat. The
                system performs best when you set the values between 1 and 10.
                Values above 50 can cause the display to redraw slowly. This
                argument is only valid when load_pattern is set to burst, random,
                sawtooth, sinusoid or stair. Possible values range from 0 to 100.
                The default is 1.

steady_time
                The amount of time that the step takes. duration_units determines
                the unit for this attribute. This argument is only valid when
                load_pattern is flat, random, sawtooth or stair. Possible values
                range from 0 to 40000000. The default is 20.

Arguments Unsupported by Save as HLTAPI:

None
Description:

The emulation http profile config function creates, modifies, or deletes load phases for specified HTTP load profiles.

In the create mode, one or more HTTP phases can be created for the same load profile and the corresponding phase handles will be returned.

If the creation, modification, or deletion fails, Spirent HLTAPI returns an error message.

Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

load_phase_handle       The load phase handle created

status                  Success (1) or failure (0) of the operation

log                     An error message (if the operation failed)

Examples:

To configure an HTTP phase for the specified HTTP load profile:

set load_profile [keylget result load_profile_handle]

set load_phase_handle1 [emulation http phase config
  mode= create
  profile_handle= $load_profile
  phase_name= "phase1"
  load_pattern= burst
  repetitions= 1
  height= 30
  burst_time= 20
  pause_time= 40
  duration_units= seconds]

Sample Output:

{status 1}

emulation http control

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
A Spirent Extension created to starts, stop the configured HTTP traffic, or clear all statistics (transmitted and received counters) of the specified handle

Synopsis:

Note: M indicates the argument is `Mandatory`.

        emulation http control
          mode=  {start|stop|clear_stats} M
          handle=  <handle_list> M

Arguments:

mode
                Specifies the action to be performed. This argument is `Mandatory`.
                Possible values are::


                 start        Starts the HTTP traffic

                 stop         Stops the HTTP traffic

                 clear_stats  Clears all statistics (transmitted and received
                              counters) on the specified handle

handle
                Specifies a list of client or server handles, which are
                returned by the ``emulation http config`` function.
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

status        Success (1) or failure (0) of the operation

log           An error message (if the operation failed)
Description:
The emulation http control function starts, stops the HTTP traffic, or clears all statistics of the specified device handle.

Examples:

Sample Input:

set result [emulation http control mode=start
             handle= "$client $server"]

Sample Output:

{status 1}

emulation http stats

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
A Spirent Extension to return HTTP statistics on the specified handle

Synopsis:

Note: M indicates the argument is `Mandatory`.

     emulation http stats
         handle= <handle> M

Arguments:

handle
    Specifies the HTTP client/server handle from which HTTP statistics are
    retrieved. This argument is `Mandatory`.
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

status                  Success (1) or failure (0) of the operation

log                     An error message (if the operation failed)

The following keys are returned when you specify a client handle:

aborted_connections
            Total number of aborted connections from the client block

aborted_connections_per_second
            Total number of aborted connections per second from the client block

aborted_transactions
            Total number of aborted transactions from the client block

aborted_transactions_per_second
            Total number of aborted transactions per second from the client block

active_connections
            Number of connections open or attempting for this client at this instant
                attempted_connections
            Total number of attempted connections from the client block

attempted_connections_per_second
            Total number of attempted connections per second from the client block

attempted_transactions
            Total number of attempted transactions from the client block

attempted_transactions_per_second
            Total number of attempted transactions per second from the client block

avg_response_time_per_url_msec
            Average response time per URL in milliseconds

elapsed_seconds
            Time duration in seconds that this client block instance has been running

goodput_avg_rx_rate_bps
            Average goodput receive rate in bits per second

goodput_avg_tx_rate_bps
            Average transmitted goodput rate in bits per second

goodput_max_rx_rate_bps
            Maximum received goodput rate in bits per second

goodput_max_tx_rate_bps
            Maximum transmitted goodput rate in bits per second

goodput_min_rx_rate_bps
            Minimum received goodput rate in bits per second

goodput_min_tx_rate_bps
            Minimum transmitted goodput rate in bits per second

goodput_rx_bps
            Current received goodput in bits per second

goodput_rx_bytes
            Total received goodput bytes

goodput_tx_bps
            Current transmitted goodput in bits per second

goodput_tx_bytes
            Total transmitted goodput bytes

intended_load
            Intended load

max_response_time_per_url_msec
            Maximum response time per URL in milliseconds

min_response_time_per_url_msec
            Minimum response time per URL in milliseconds

rx_response_code_200
            Received response codes with a value of 200

rx_response_code_400
            Received response codes with a value of 400

rx_response_code_404
            Received response codes with a value of 404

rx_response_code_405
            Received response codes with a value of 405

successful_connections
            Total number of successful connections from the client block

successful_connections_per_second
            Total number of successful connections per second from the client block

successful_transactions
            Total number of successful transactions from the client block

successful_transactions_per_second
            Total number of successful transactions per second from the client block

sum_response_time_per_url_msec
            Sum of response times per URL in milliseconds

unsuccessful_connections
            Total number of unsuccessful connections from the client block

unsuccessful_connections_per_second
            Total number of unsuccessful connections per second from the client block

unsuccessful_transactions
            Total number of unsuccessful transactions from the client block

unsuccessful_transactions_per_second
            Total number of unsuccessful transactions per second from the client block

The following keys are returned when you specify a server handle:

active_connections
            Number of connections open (accepted) for this server at this instant

elapsed_seconds
            Time duration in seconds that this server block has been running

goodput_avg_rx_rate_bps
            Average received goodput rate in bits per second

goodput_avg_tx_rate_bps
            Average transmitted goodput rate in bits per second

goodput_max_rx_rate_bps
            Maximum received goodput rate in bits per second

goodput_max_tx_rate_bps
            Maximum transmitted goodput rate in bits per second

goodput_min_rx_rate_bps
            Minimum received goodput rate in bits per second

goodput_min_tx_rate_bps
            Minimum transmitted goodput rate in bits per second

goodput_rx_bps
            Current received goodput in bits per second

goodput_rx_bytes
            Total received goodput bytes

goodput_tx_bps
            Current transmitted goodput in bits per second

goodput_tx_bytes
            Total transmitted goodput bytes

successful_transactions
            Total number of successful transactions from the server block

successful_transactions_per_second
            Total number of successful transactions per second from the server block

total_connections
            Total number of connections handled by this HTTP server

total_connections_per_second
            Total number of connections per second from the server block

tx_response_code_200
            Count of transmitted response codes with value 200

tx_response_code_400
            Count of transmitted response codes with value 400

tx_response_code_404
            Count of transmitted response codes with value 404

tx_response_code_405
            Count of transmitted response codes with value 405

unsuccessful_transactions
            Total number of unsuccessful transactions from the server block

unsuccessful_transactions_per_second
            Total number of unsuccessful transactions per second from the server block
Description:

The emulation http stats function provides statistics for the HTTP emulation. Use handle to specify the HTTP server or client handle from which you want to retrieve the statistics.

This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message.

Examples:

Sample Input:

set result [emulation http stats handle=$client]

Sample Output:

{successful_transactions 2000} {attempted_transactions 2000}
{successful_transactions_per_second 0} {rx_response_code_404 0}
{max_response_time_per_url_msec 10} {goodput_min_tx_rate_bps 0}
{goodput_max_rx_rate_bps 1073536} {attempted_transactions_per_second 0}
{avg_response_time_per_url_msec 4} {goodput_avg_rx_rate_bps 491327}
{rx_response_code_405 0} {aborted_transactions_per_second 0}
{unsuccessful_transactions 0} {goodput_max_tx_rate_bps 303576}
{goodput_avg_tx_rate_bps 139617} {aborted_connections_per_second 0}
{unsuccessful_connections 0} {active_connections 0} {goodput_rx_bps 0}
{sum_response_time_per_url_msec 9301} {goodput_tx_bps 0} {goodput_rx_bytes
635900} {aborted_transactions 0} {successful_connections 100} {intended_load 0}
{attempted_connections 100} {successful_connections_per_second 0}
{rx_response_code_200 2000} {goodput_tx_bytes 180700} {aborted_connections 0}
{attempted_connections_per_second 0} {unsuccessful_transactions_per_second 0}
{elapsed_seconds 10} {rx_response_code_400 0}
{unsuccessful_connections_per_second 0} {min_response_time_per_url_msec 3}
{goodput_min_rx_rate_bps 0} {status 1}

#### HLTAPI for Python ####

Sample Input:

result11 = sth.emulation_http_stats (handle = server_handle);

Sample Output:

{'status': '1', 'goodput_rx_bytes': '184700', 'active_connections': '0',
'goodput_tx_bytes': '635900', 'total_connections_per_second': '0',
'total_connections': '100', 'tx_response_code_405': '0',
'tx_response_code_404': '0', 'successful_transactions': '2000',
'unsuccessful_transactions': '0', 'goodput_max_rx_rate_bps': '310606',
'goodput_rx_bps': '0', 'goodput_avg_rx_rate_bps': '135497',
'goodput_avg_tx_rate_bps': '466501', 'elapsed_seconds': '10',
'goodput_min_rx_rate_bps': '0', 'goodput_min_tx_rate_bps': '0',
'tx_response_code_400': '0', 'tx_response_code_200': '2000',
'goodput_tx_bps': '0', 'unsuccessful_transactions_per_second': '0',
'successful_transactions_per_second': '0', 'goodput_max_tx_rate_bps': '1069381'}

#### HLTAPI for Perl ####

Sample Input:

my %result11 = emulation http stats (handle => $server_handle);

Sample Output:

$VAR1 = 'unsuccessful_transactions';
$VAR2 = '0';
$VAR3 = 'goodput_rx_bps';
$VAR4 = '0';
$VAR5 = 'status';
$VAR6 = '1';
$VAR7 = 'successful_transactions';
$VAR8 = '2000';
$VAR9 = 'tx_response_code_404';
$VAR10 = '0';
$VAR11 = 'goodput_rx_bytes';
$VAR12 = '184700';
$VAR13 = 'goodput_min_rx_rate_bps';
$VAR14 = '0';
$VAR15 = 'active_connections';
$VAR16 = '0';
$VAR17 = 'tx_response_code_405';
$VAR18 = '0';
$VAR19 = 'tx_response_code_200';
$VAR20 = '2000';
$VAR21 = 'goodput_avg_rx_rate_bps';
$VAR22 = '132841';
$VAR23 = 'goodput_avg_tx_rate_bps';
$VAR24 = '457358';
$VAR25 = 'goodput_max_rx_rate_bps';
$VAR26 = '303231';
$VAR27 = 'goodput_tx_bps';
$VAR28 = '0';
$VAR29 = 'unsuccessful_transactions_per_second';
$VAR30 = '0';
$VAR31 = 'successful_transactions_per_second';
$VAR32 = '0';
$VAR33 = 'goodput_min_tx_rate_bps';
$VAR34 = '0';
$VAR35 = 'goodput_max_tx_rate_bps';
$VAR36 = '1064304';
$VAR37 = 'total_connections';
$VAR38 = '100';
$VAR39 = 'elapsed_seconds';
$VAR40 = '11';
$VAR41 = 'total_connections_per_second';
$VAR42 = '0';
$VAR43 = 'tx_response_code_400';
$VAR44 = '0';
$VAR45 = 'goodput_tx_bytes';
$VAR46 = '635900';