Monday 3 June 2013

Siebel Protocol recording and correlation in load runner

Siebel 7.x Record and Replay for LoadRunner 8.x

Preparation before record – Internet Explorer Settings

To avoid problems, verify and change the following Internet Explorer’s settings before you try to record:
1.      Enable all ActiveX controls and plug-ins. This option is available in Internet Explorer ® Tools ® Internet Options ® Security ® Custom Level).
2.      Enable the “Use HTTP 1.1 through proxy connection” option. This option is available in Internet Explorer ® Tools ® Internet Options ® Advanced, under the “HTTP 1.1 settings” radio button.

Recording Siebel script with Auto-Correlation option

Correlation is the mechanism by which VuGen saves dynamic values to parameters during record and replay, for use at a later point in the script. For general information about correlation, you can refer to Problem ID 11806 - What is correlation and how is it done

For Siebel script, you can instruct VuGen to automatically apply correlation during recording using one of the following methods:
·         VuGen Native Siebel Correlation
The native, built-in rules, work on a low level, allowing you to debug your script and understand the correlations in depth.
·         Siebel Correlation Library
The Siebel correlation library automatically correlates most of the dynamic values, creating a concise script that you can replay easily. Note that this is only available for Siebel 7.7 and the library is distributed by Siebel.

How to record with VuGen Native Siebel Correlation

VuGen’s native built-in rules for the Siebel server detect the Siebel server variables and strings, automatically saving them for use at a later point within the script. It is available in VuGen recording option by default; you do not need to have any additional components installed.

Steps to record with Native Siebel correlation:

1.      From the ‘New Multiple Protocol Script’ window, add ‘Siebel-Web’ and click OK.

2.      Set the following Recording Options:
a.       Internet Protocol: Recording:
·         Select ‘ HTML based script’
·         Click on ‘HTML Advanced’ and select the following
i.        Script Type: a script containing explicit URLs only
ii.      Non HTML-generated elements: Do not record
  1. Internet Protocol: Advanced:
i.        Clear the ‘Reset context for each action’ option.
ii.      Select ‘Support Charset’ then select ‘UTF-8’
  1. Internet Protocol: Correlation:
i.        Make sure that you have ‘Enable Correlation during recording’
ii.      Make sure that ‘Siebel’ is selected. You can expand the list to see the details about each rule if you wish.
  1. Leave other options as default.

3.      Record in the following way:
·         Record the login in the vuser_init section
·         Record the Business Process in Action1
·         Record the logout in the vuser_end section

How to record with Siebel Correlation Library

Siebel has released a correlation library file, ssdtcorr.dll, as part of the Siebel Application Server version 7.7. This library is available only through Siebel and can be found on siebsrvr\bin directory for Windows

Note: The Siebel Correlation API is supported on Windows 2000 and Windows XP only. This implies that if you correlate the script with this method, you cannot replay this script on UNIX platform. If you need to run the script on UNIX platform, use the VuGen Native Siebel Correlation method.

The library file, ssdtcorr.dll, must be available to all machines where a Load Generator, Controller, or Tuning Console resides.

Steps to record with Siebel correlation library:

1.      Copy ssdtcorr.dll into the <LoadRunner>\bin directory of Controller / Tuning Console, and ALL Load Generator machines

2.      From the ‘New Multiple Protocol Script’ window, add ‘Siebel-Web’ and click OK.

3.      Set the following Recording Options:
a.       Internet Protocol: Recording:
·         Select ‘HTML based script’
·         Click on ‘HTML Advanced’ and select the following
    1. Script Type: a script containing explicit URLs only
    2. Non HTML-generated elements: Do not record
  1. Internet Protocol: Advanced:
i.        Clear the ‘Reset context for each action’ option.
ii.      Select ‘Support Charset’ then select ‘UTF-8’
  1. Internet Protocol: Correlation:
i.        Delete the default ‘Siebel’ correlation rule
ii.      Click on ‘Import’, the ‘Import correlation Settings from a file’ window opens.
iii.    Navigate to <LoadRunner>\dat\webrulesdefaultsetting directory, select ‘WebSiebel77Correlation.cor’ and click ‘Open’
iv.    On the ‘Confirm Rule Replacement’ window, select ‘Overwrite’
Note:  To revert back to the default correlation, delete all of the Siebel rules and click ‘Use Defaults’.
  1. Leave other options as default.

4.      Record in the following way:
·         Record the login in the vuser_init section
·         Record the Business Process in Action1
·         Record the logout in the vuser_end section


Replaying Siebel script – Run-Time Settings

Make sure that “Simulate a new user on each iteration” is not selected in the Browser Emulation options.

Common Replay Errors

Error: “We detected an Error which may have occurred for one or more of the following reasons: We are unable to process your request. This is most likely because you used the browser BACK or REFRESH button to get to this point.”


Diagnosis: A HTTP request has been sent twice to the server. This could be an individual web_url request or part of the resources being downloaded from another request. When sending the second request to the server, the Siebel 7.x server detects multiple requests and thus, issues the above error.

Example:
The following is a sample HTML-based script. Even though “start.swe3” is a frame within step “start.swe2,” you can see that an additional request is generated for “start.swe3” because of the “wait.html” step. On replay, the server may reject the second request,  “start.swe3,” since it is the same for the HTTP call generated by “start.swe2.” This may be due to the SWECount or SWEC.

      web_submit_data("start.swe2",
            "Action=http://64.242.155.45/callcenter/start.swe",
            "Method=POST",
            "RecContentType=text/html",
            "Referer=http://64.242.155.45/callcenter/start.swe?SWECmd=Start",
            "Mode=HTML",
            ITEMDATA,
            "Name=SWEUserName", "Value=sadmin", ENDITEM,
            "Name=SWEPassword", "Value=sadmin", ENDITEM,
            "Name=SWENeedContext", "Value=false", ENDITEM,
            "Name=SWEFo", "Value=SWEEntryForm", ENDITEM,
            "Name=SWETS", "Value=1024549479671", ENDITEM,
            "Name=SWECmd", "Value=ExecuteLogin", ENDITEM,
            "Name=SWEBID", "Value=-1", ENDITEM,
            "Name=SWEC", "Value=0", ENDITEM,
            LAST);

      web_url("wait.html",
            "URL=http://64.242.155.45/callcenter/wait.html",
            "TargetFrame=", "Resource=0","RecContentType=text/html","Referer=",
            "Snapshot=t6.inf","Mode=HTML",
            LAST);

      web_url("start.swe3",
"URL=http://64.242.155.45/callcenter/start.swe?SWEFrame=top._swe&_sn={Siebel_sn_body3}&SWECmd=GetCachedFrame&SWEC=1",
            "TargetFrame=", "Resource=0",
            "RecContentType=text/html",
            "Referer=http://64.242.155.45/callcenter/start.swe",
            "Mode=HTML",
LAST);
Solutions:

  1. Change the Mode in "start.swe2" to “Mode=HTTP”

The idea behind changing the mode from HTML to HTTP is to avoid parsing the HTML page that is returned by the server, so that resources are not downloaded. This helps to avoid multiple downloads of same request.

If the script still fails on the first iteration, go to step 2.  If the script fails on the second iterations onward, go to step 3.


  1. Disable the Run-Time Viewer

If the script still fails on the first iteration after the change from step 1, try to close the Run-Time Viewer. This option is in VuGen’s Tools ® General Options ® Display tab; clear the “Show Browser during Replay” option.  For more information about this, refer to Problem ID 17234 - Errors in Web replay because of conflict with the runtime browser.

If problem persists, refer to step 4


  1. Correlate SWECount or SWEC

If you are able to run the first iteration, but the script fails on the second iteration or onwards, you will need to correlate SWECount (7.0.3) or SWEC (7.0.4) from the previous step “start.sweXXX.”  For information about correlation, refer to Problem ID 11806 - What is correlation and how is it done.

If problem persists, refer to step 4.


  1. Run the script with the extended log

If none of the above helps, replay the script with the extended log and identify the HTTP request that is being downloaded multiple times. Search for a similar HTTP Request being sent earlier in the execution log. Once you locate the same, set “Mode=HTTP” so that the resources for that request are not downloaded, and try replaying the script again.

No comments: