HTTP Functions

sth::emulation_http_profile_config

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 that the argument is Mandatory .

sth::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 best-effort 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 sth::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 pre-defined 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 user-defined 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 sth::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

#### HLTAPI for Tcl ####

To create an HTTP load profile:

set result [sth::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 [sth::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 [sth::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}

#### HLTAPI for Python ####

To create an HTTP load profile:

result1 = sth.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:

result2 = sth.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:

{'status': '1', 'client_profile_handle': 'clientprofile1'}

To create an HTTP server profile:

result3 = sth.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:

{'status': '1', 'server_profile_handle': 'serverprofile1'}

#### HLTAPI for Perl ####

To create an HTTP load profile:

my %result1 = sth::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:

$VAR1 = 'status';
$VAR2 = '1';
$VAR3 = 'load_profile_handle';
$VAR4 = 'clientloadprofile1';

To create an HTTP client profile:

my %result2 = sth::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:

$VAR1 = 'client_profile_handle';
$VAR2 = 'clientprofile1';
$VAR3 = 'status';
$VAR4 = '1';

To create an HTTP server profile:

my %result3 = sth::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::
$VAR1 = ‘server_profile_handle’; $VAR2 = ‘serverprofile1’; $VAR3 = ‘status’; $VAR4 = ‘1’;

sth::emulation_http_config

Purpose

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

Synopsis

Note

M indicates that the argument is Mandatory .

sth::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 sth::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 sth::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 sth::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 sth::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 sth::emulation_http_profile_config function.

Examples

#### HLTAPI for Tcl ####

To configure an HTTP client on the specified device:

set result [sth::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 [sth::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}

#### HLTAPI for Python ####

To configure an HTTP client on the specified device:

result5 = sth.emulation_http_config (
       mode = 'create',
       port_handle = port_handle[0],
       http_type = 'client',
       client_profiles = client_profile,
       load_profiles = load_profile,
       device_handle = dev_handle,
       max_transactions_per_server = 20,
       connected_server = dev_handle1);

Sample Output:

{'status': '1', 'client_handle': 'httpclientprotocolconfig1'}

To configure an HTTP server on the specified device:

result4 = sth.emulation_http_config (
       mode = 'create',
       port_handle = port_handle[1] ,
       http_type = 'server',
       max_request_per_client = 20,
       server_profiles = server_profile,
       max_simultaneous_clients = 10,
       device_handle = dev_handle1);

Sample Output:

{'status': '1', 'server_handle': 'httpserverprotocolconfig1'}

#### HLTAPI for Perl ####

To configure an HTTP client on the specified device:

my %result5 = sth::emulation_http_config (
      mode => 'create',
      port_handle => "$port[1]",
      http_type => 'client',
      client_profiles => $client_profile,
      load_profiles => $load_profile,
      device_handle => $dev_handle,
      max_transactions_per_server => 20,
      connected_server => $dev_handle1);

Sample Output:

$VAR1 = 'status';
$VAR2 = '1';
$VAR3 = 'client_handle';
$VAR4 = 'httpclientprotocolconfig1';

To configure an HTTP server on the specified device:

my %result4 = sth::emulation_http_config (
        mode => 'create',
        port_handle => "$port[2]" ,
        http_type => 'server',
        max_request_per_client => 20,
        server_profiles => $server_profile,
        max_simultaneous_clients => 10,
        device_handle => $dev_handle1);

Sample Output:

$VAR1 = 'server_handle';
$VAR2 = 'httpserverprotocolconfig1';
$VAR3 = 'status';
$VAR4 = '1';

sth::emulation_http_phase_config

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 that the argument is Mandatory .

sth::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 sth::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

#### HLTAPI for Tcl ####

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

set load_profile [keylget result load_profile_handle]

set load_phase_handle1 [sth::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}

#### HLTAPI for Python ####

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

load_phase_handle1 = sth.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’, ‘load_phase_handle’: ‘clientloadphase1’}

#### HLTAPI for Perl ####

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

my %load_phase_handle1 = sth::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’, ‘load_phase_handle’: ‘clientloadphase1’}

sth::emulation_http_control

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 that the argument is Mandatory .

sth::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 sth::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 sth::emulation_http_control function starts, stops the HTTP traffic, or clears all statistics of the specified device handle.

Examples

#### HLTAPI for Tcl ####

Sample Input:

set result [sth::emulation_http_control -mode start \
             -handle "$client $server"]

Sample Output:

{status 1}

#### HLTAPI for Python ####

Sample Input:

result6 = sth.emulation_http_control (
         mode = 'start',
         handle = server_handle);

Sample Output:

{'status': '1'}

#### HLTAPI for Perl ####

Sample Input:

my %result6 = sth::emulation_http_control (
        mode => 'start',
        handle => "$server_handle");

Sample Output:

$VAR1 = 'status';
$VAR2 = '1';

sth::emulation_http_stats

Purpose

A Spirent Extension to return HTTP statistics on the specified handle

Synopsis

Note

M indicates that the argument is Mandatory .

sth::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 sth::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

#### HLTAPI for Tcl ####

Sample Input:

set result [sth::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 = sth::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';