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)
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 (
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 Runners 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.