SSL Testing with Load Runner (Mercury Interactive) Software

(Last modified: 23Oct2003)

This document (10088099) is provided subject to the disclaimer at the end of this document.

goal

SSL (HTTPS) Testing with Load Runner Software causes the DUT (Device Under Test) to be slow or run out of memory

fact

Load Runner 7.5x/7.6

iChain 2.2 and above

Other SSL Web Applications

symptom

A Load Runner HTTPS stress test of around 500 concurrent users against iChain with secure exchange (SSL) enabled in the front end can get the iChain Proxy Server to show any of the following:

Result in a constant 100% CPU utilization, and/or

Result in very high response times (slow access), and/or

Result in losing total TCP/IP connectivity.

cause

Some clients and servers do not terminate connections cleanly, with the result that during load tests, connections may get trapped in waiting states, causing a drain on networking resources. Load Runner shutdown its connection GRACEFUL (by default) – which is a full shutdown sequence i.e., a 4-way handshake between the web client and server. The client sends a FIN packet, and then waits up to 4 minutes for the server to shut down its side of the connection. When the server is experiencing heavy open and close connection requests, the OS will be busy dealing those requests.

These open connections results in the NICI Modules such as XMGR.NLM & XENGEXP.NLM along with TCPIP.NLM to cause fragmentation of memory.

With iChain it was observed that the shutdown modes ‘GRACEFUL’ and ‘FAST’ did not help.

fix

Use web_set_sockets_option ("SHUTDOWN_MODE", "ABRUPT") in the Load Runner Script at the beginning of each Action.

ABRUPT is equivalent to the browser being shut down, or the computer being switched off. ABRUPT slams the connection shut by sending a RESET packet. This mode is used when stressing the main business logic of application without worrying about how the OS handles socket connections.

The Load Runner Function Reference states the following for its ‘Shutdown Mode’ Options:

GRACEFUL (default) - a full shutdown sequence. This is the normal mode of shutdown - a 4-way handshake between the web client and server. If any of the following occur, consider changing to the ARUPT option:

a) Connections fail during Vuser loading

b) Using the netstat application, many sockets are found to be in the WAIT state

c) The handle count of Load Runner’s driver mmdrv rises during the running of the Vusers

d) A "No buffer space available" error message when trying to establish a connection

ABRUPT - a reset packet is sent to the web server causing it to close the connection. Note however, that servers sometimes do not receive the packet or they do not successfully execute cleanup operations. This usually results in dead connections.

FAST - a compromise between GRACEFUL and ABRUPT. A full shutdown sequence is initiated by the web client with a very fast timeout.

note

An example of a Load Runner 7.5/7.6 Script with this shutdown mode option:

#include "as_web.h"

 

Action()

{

/* Setting the SSL Version to 3 */

web_set_sockets_option("SSL_VERSION","3");

/* Shutting Down any socket connections using FAST Mode - a compromise between GRACEFUL and ABRUPT */

web_set_sockets_option("SHUTDOWN_MODE","ABRUPT");

lr_start_transaction("login page");

web_url("index",

"URL=https://www.logtestb.com/web1x.html",

TargetFrame=",

Resource=0",

RecContentType=text/html",

Referer=",

Snapshot=t1.inf",

Mode=HTML",

LAST);

lr_stop_transaction("login page");

/* Sets the time to wait in seconds */

lr_think_time( 10 );

lr_start_transaction("auth page");

web_submit_data("login",

"Action=https://www.logtestb.com/ICSLogin/auth-up",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Referer=https://www.logtestb.com/ICSLogin/?\"https://www.logtestb.com/web1x.html\"",

"Snapshot=t2.inf",

"Mode=HTML",

ITEMDATA,

"Name=context", "Value=default", ENDITEM,

"Name=username", "Value={uname}", ENDITEM,

"Name=password", "Value={pwd}", ENDITEM,

"Name=url",

"Value=https://www.logtestb.com/web1x.html", ENDITEM,

"Name=proxypath", "Value=reverse", ENDITEM,

"Name=button", "Value= Login ", ENDITEM,

LAST);

lr_stop_transaction("auth page");

/* Sets the time to wait in seconds */

lr_think_time( 10 );

lr_start_transaction("web1x.html");

web_url("1web1x",

"URL=https://www.logtestb.com/web1x.html",

"TargetFrame=",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_stop_transaction("web1x.html");

/* Sets the time to wait in seconds */

lr_think_time( 10 );

lr_start_transaction("web2x.html");

web_url("1web2x",

"URL=https://www.logtestb.com/web2x.html",

"TargetFrame=",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_stop_transaction("web2x.html");

/* Sets the time to wait in seconds */

lr_think_time( 10 );

lr_start_transaction("web3x.html");

web_url("1web3x",

"URL=https://www.logtestb.com/web3x.html",

"TargetFrame=",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_stop_transaction("web3x.html");

/* Sets the time to wait in seconds */

lr_think_time( 10 );

lr_start_transaction("web4x.html");

web_url("1web4x",

"URL=https://www.logtestb.com/web4x.html",

"TargetFrame=",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_stop_transaction("web4x.html");

return 0;

}

document

Document Title: SSL Testing with Load Runner (Mercury Interactive) Software
Document ID: 10088099
Solution ID: NOVL93482
Creation Date: 23Oct2003
Modified Date: 23Oct2003
Novell Product Class:iChain

disclaimer

The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.
Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.