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';