This chapter provides instructions on configuring and using the OpenScript Oracle EBS/Forms Load Test Module, which provides support for load testing of Oracle EBS/Forms web applications.
The Oracle EBS/Forms Load Test Module is an extension module to the OpenScript HTTP Module that extends the Web testing with Oracle EBS/Forms Load Test recording and playback capabilities. The Oracle EBS/Forms Load Test Module is fully integrated with the OpenScript platform including the Results view, Details view, Properties view, Console/Problems views, Preferences, Step Groups, Script Manager, and Workspace Manager.
The Oracle EBS/Forms Load Test recorder displays commands in the Tree View in easy-to-understand commands. By default, script commands are grouped into Steps Groups by the Web page on which they were performed. Each Step Group contains one or more script commands corresponding to recorded actions that were performed on the page. The default name for the Step Group is the Web page Title (as specified in the "Title" tag).
OpenScript shows the results of Oracle EBS/Forms Load Test script playback in the Results view. The Results view shows results for each script command (including duration and summary for failures). The Results Report compiles the same information into an HTML Results Report. Results can be exported from the OpenScript GUI in standard format (CSV / HTML). Results are also generated for unattended playback through the command line.
The Oracle EBS/Forms Load Test Module API includes a "nca" class that provides additional programming functionality.
The Oracle EBS/Forms Load Test Script Module. The New Project wizard (New from the File menu) includes an "Oracle EBS/Forms" option in the Load Test Group to use when creating Oracle EBS/Forms load testing projects in OpenScript. The Oracle EBS/Forms Load Test Script Module records Oracle EBS/Forms applications at the protocol level. OpenScript captures user actions and records them to the OpenScript script based upon HTTP requests and post data or query strings.
Correlation Library. The Oracle EBS/Forms Load Test Module includes an Oracle EBS/Forms-specific library of correlation rules for parameterizing scripts.
Test Cases (Validation). The Oracle EBS/Forms Load Test Module includes a Status Bar test for validating validate Oracle EBS/Forms application content on playback.
Oracle EBS/Forms-Specific Application Programming Interface (API). The Oracle EBS/Forms Load Test Module includes a Oracle EBS/Forms Load Test Module API Specification that can be used to customize Oracle EBS/Forms-specific scripts.
The Oracle EBS/Forms Load Test Module recorder has the following prerequisites:
Before recording any script in Forms Functional Test Module, you must run the Forms/EBS application at least once before attempting to record a script with OpenScript on that machine. This ensures that required JRE has been installed and also verifies that forms applications can run successfully on that machine inside of Internet Explorer.
You must set Use Browser Settings (selected) in the control panel proxy for all installed JVMs. Depending upon the Java version, the Use Browser Settings is either here:
Control Panel - Select Sun Java - Proxies tab
or here:
Control Panel - Select Java - General tab - Network Settings
If you want to report Forms End-User Performance Monitoring (EUM) metrics in Oracle Load Testing graphs, you must enable End User Monitoring metrics on the EBS R12 system being monitored. Go to the OAM configuration page for EBS and add the following two parameters to the desired configuration section in the EBS appsweb.cfg file:
EndUserMonitoringEnabled
: Set to "true" to enable Chronos logging. The default value is NULL.
EndUserMonitoringURL
: Specify the default value of the URL for the Web Listener associated with the Oracle Applications Web Server. This can be amended to an alternative URL which points to a WebCache or HTTP Server instance which may be located on another machine.
Sample URL format:
http://<hostname>:<portnumber>/oracle_smp_chronos/oracle_smp_chronos_sdk.gif.
See the Installation and Configuration section of the Oracle Real User Experience Insight Accelerator for Oracle E-Business Suite Guide for additional information.
Notes:
Values are only reported when EUM metrics are enabled on the Forms server.
Values are only reported in Oracle Load Testing if you set Generate Timers for All Resources to TRUE in your Oracle Load Testing script scenario preferences.
Values are only reported to Oracle Load Testing graphs. They do not appear in the Oracle Load Testing session report.
The Oracle EBS/Forms Load Test Module records standard Oracle EBS/Forms components for Oracle E-Business Suite Release 12 (Forms 10g) running on Sun JRE and E-Business Suite Release 11i (Forms 6i). The Recorder creates load test scripts for automating testing of Oracle EBS/Forms applications.
Oracle EBS/Forms are applet based controls and the Oracle EBS/Forms Load Test Module provides the object/attribute information for OpenScript to record interactions with those controls. Actions will be captured in the test script as OpenScript "nca" commands. Other components are standard Web controls which are captured as standard OpenScript "http" navigation commands. Correlation rules can be modified by users through the Preferences settings for new scripts.
The Oracle EBS/Forms Load Test Module provides a record toolbar button that lets you initiate the Oracle EBS/Forms recorder and capture Web/Oracle EBS/Forms page actions to the script view. The record toolbar includes start and stop recording toolbar buttons. OpenScript recorders also open a floating toolbars that can be used while recording without having to switch between the browser and OpenScript.
Oracle EBS/Forms scripts supporting recording and playing back Forms applications that communicate over HTTP, HTTPS, and Forms Socket mode.
To set Oracle EBS/Forms Load Test record preferences:
Start OpenScript.
Select OpenScript Preferences from the View menu.
Expand the OpenScript node and the Record category.
Select Oracle EBS/ Forms Load Test.
Set the parameters. See Section 2.5.6, "Oracle EBS/Forms Load Test Preferences" for descriptions of the Record Preferences settings.
Click OK.
To record Oracle EBS/Forms Load Test scripts:
Start OpenScript.
Set the Oracle EBS/Forms Load Test Correlation preferences.
Set the Oracle EBS/Forms Load Test Recording preferences.
Select New from the File menu.
Expand the Load Testing group.
Select Oracle EBS/Forms (The Oracle EBS/Forms script combines both HTTP and Oracle EBS/Forms technologies as part of the same script).
Click Next.
Select the Repository and Workspace.
Enter a script name.
Click Finish. A new Script tree is created in the Script View.
Select Record from the Script menu. The browser automatically opens when you start recording.
Load the web page where you want to start recording into the browser.
Navigate the web site to record page objects, actions, and navigations. The page objects, actions, and navigations will be added to the node of the script tree specified by the Set Record Section setting (the Run node is the default).
When finished navigating pages, close the browser.
Select Stop from the Script menu or click the Stop button on the OpenScript toolbar.
Expand the Run node of the script to view the page objects, actions, and navigation nodes in the script tree.
You can customize the script using the menu options or the Code View for specific testing requirements.
Note:
Do not close the script editor view or script project while recording or playing back scripts. Doing so could result in unpredictable behavior in the OpenScript application.OpenScript plays back recorded Oracle EBS/Forms actions/commands which consist of an object identified by its attributes (for example: nca.treeList("
handlerName
").selectByIndex(0);
). The actions used for playback will either be those that are recorded or specified manually in the Java Code view. Playback can be configured through IE only as the Oracle EBS/Forms Load Test Module does not support Firefox. Unattended playback is supported through Oracle Test Manager or third-party tools using OpenScript's command line interface.
The Oracle EBS/Forms Load Test Module provides playback and iterate toolbar buttons that allows users to start the script playback for either a single playback through the script or multiple iterations using data from a databank file. Playback results for Oracle EBS/Forms Load scripts can be viewed in the Results and Console views.
To set Oracle EBS/Forms Load Test playback preferences:
Start OpenScript.
Select OpenScript Preferences from the View menu.
Expand the OpenScript node and the Playback category.
Select Oracle EBS/Forms Load Test.
Select or clear the message options. See Section 2.4.7, "Oracle EBS/Forms Load Test Preferences" for descriptions of the Playback Preferences settings.
Click OK.
To play back Oracle EBS/Forms Load scripts:
Start OpenScript.
Open the Oracle EBS/Forms Load script to play back.
Select Playback from the Script menu or click the toolbar button.
You can view the progress of the script playback in the Console View. You can review the results of script playback in the Results View.
To play back Oracle EBS/Forms Load scripts with iterations:
Start OpenScript.
Open the Oracle EBS/Forms Load script to play back.
Select Iterate from the Script menu or click the toolbar button.
Select Use Databanks.
Select which databank file to specify the settings for if more than one database is configured for the script.
Specify the settings for the databank file.
Select the Run no more than [ ] iterations option and set the iteration count to the desired number of playback iterations. See Section 4.2.4, "Playing Back Scripts With Iterations" for additional information about iteration settings.
Click OK.
You can view the progress of the script playback in the Console View. You can review the results of script playback in the Results View.
In cases where you have multiple servers running the same EBS application for different purposes and want to do load testing for these sites using the same EBS/Forms load testing scripts, the Scripts may require some modifications. This section lists some areas to check and modify before using scripts recorded for one site for load testing on another site of the same EBS/Forms application.
Parameterize URLs
Use the Parameterize URL option on the Tools menu to create a variable name for the base URLs of the script.
Correlate the server name and port number when in socket mode
Locate the http navigation just before the "Connect to Forms server" Tree view or the nca.connect
Java code. Correlate the forms server name and server port number to verify the host value and port number match the server on which you want to play back the script.
Correlate the EBS/Forms Config Value
EBS load script recorded against one site does not playback on another site because the "config" attribute value is different between sites. For example Site A may have config='GDEV
' and Site B may have config='OSIT'
. The Site A recorded script has "config=sl8st213"
in the XML message sent to forms server while Site B requires "config=mz8st213"
in the same message. Replace the value of the "config" attribute in the XML messages with a variable.
The formsload.config correlation rule ( config='(.+?)'
) is used for EBS/Forms application versions 11.x. The formsload.config_12 correlation rule (config\s*=\s*(?:'|')(.+?)(?:'|')
) is used for EBS/Forms application versions 12. The correlation rules replaces the value of the "config" attribute in the XML messages with a variable.
Check Variables from JavaScript and Web page
An http.javaScriptPath
command may not play back correctly due to a slight difference between the JavaScript code of two sites. For example, Site A uses JavaScript such as:
http.javaScriptPath("web.jscript.httprws60224remsuso_414", 1, 5, 86, 0)
However, Site B uses JavaScript such as:
http.javaScriptPath("web.jscript.httprws60224remsuso_414", 1, 5, 87, 0)
Where a JavaScript variable does not play back correctly on a different site, in most cases the variables were for "static" content and can be safely removed. Right-click on the JavaScript variable that fails and choose "Delete" to delete the variable. If you have many static JavaScript variables that are failing in the script, right-click on any single Javascript variable and choose the option to remove all variables starting with http.jscript
.
Once a script has been created/recorded, you can make modifications to customize the script for your specific testing needs.
The Oracle EBS/Forms Module includes actions for Oracle EBS/Forms objects that can be added to a script.
To add Forms actions to a script:
Record a EBS/Forms Functional Test script.
Select the script node where you want to add the action.
Select the Script menu and then select Other from the Add sub menu.
Expand the Forms Load Action node.
Expand an action node and select the action.
Click OK.
Enter the object identification path for the object. You can use the Capture or Select menu options to capture or select an object path.
Enter any required values to use for the object action.
Click OK. The action node is added to the script tree.
In the Java Code view, a nca.
object
(
handlerName
).
action
()
method will be added to the script code:
nca.treeList("handlerName").selectByIndex(0);
The Forms Load Action node includes actions for objects such as Application, Button, CheckBox, ChoiceBox, List Item, List of Values, Pop List Item, Radio Button, Tab, Text Field, Window, Generic Client, and Alert Dialog. Other object actions have corresponding Java code methods.
In some cases, you may want to convert EBS/Forms actions recorded to the script into the raw XML client messages to troubleshoot playback issues. For example, the script recorder creates actions in the script tree such as Activate window ("
WindowName
")
. The Java code for the action would be similar to nca.window(
id
, "
WindowName
").activate()
.
However, the actual XML message traffic between the application server and the Web client is more verbose. For example, the message traffic for a window activate action could be similar to the following:
<Messages> <ClientMessage Object="HEADER"> <Message mActionString="MSG_UPDATE" mActionCode="2" mHandlerClassId="0" mHandlerId="170"> <Property actionString="WINDOW_ACTIVATED" action="247" type="java.lang.Boolean" value="true"/> </Message> </ClientMessage> <ClientMessage Object="HEADER_ORIGINATING_BAL_SEG_VALUE_0"> <Message mActionString="MSG_UPDATE" mActionCode="2" mHandlerClassId="0" mHandlerId="566"> <Property actionString="CURSOR_POSITION" action="193" type ="java.lang.Integer" value="0"/> </Message> </ClientMessage> </Messages>
If you need to troubleshoot specific script actions, you can convert the script action to the raw XML messages and try playing back the script again to see if the XML messages resolve the issue.
To convert EBS/Forms actions to XML client messages:
Right-click the script node you want to convert and select Properties. The Form Window opens with the following options:
Automatically generate the Forms client messages: When selected, the script uses the recorded Forms action on playback.
Path: Shows the recorded Forms action path.
Send recorded Forms client messages: When selected, the script uses the recorded raw XML client messages on playback.
Description: Shows a description of the client messages.
Recorded Messages: Shows the raw XML client and server messages generated between the application server and the web client during recording.
Select the Send recorded Forms client messages option. If necessary, you can edit the raw XML messages.
Click OK.
Note:
Converting the script action to XML messages cannot be undone unless you close the script without saving.The script node changes to a Send Message
action
action. The Java Code for the action will change to a method in the following form:
nca.sendMessages(id,"description","<Messages>XML string</Messages>");
The raw XML message string can be very long and can increase script size.
The Oracle EBS/Forms Load Test Module includes a script Application Programming Interface (API) specific to Oracle EBS/Forms load testing. The Oracle EBS/Forms Load Test Module recorder creates the Java code that corresponds to the Tree View and displays the Oracle EBS/Forms Load Test commands in the Java Code view using easy-to-understand function names. The Java Code view commands correspond to the Tree View and you can edit your scripts in either view.
You can use the Oracle EBS/Forms Load Test API to enhance recorded scripts with additional testing functionality. Commands that are specific to the Oracle EBS/Forms Functional Testing Module are part of the "nca" class. Additional functional test methods are available in the "http" class. You can also leverage other commands from other enabled classes (services) or general Java commands in your scripts.
Some examples of the Oracle EBS/Forms Testing Module API include:
Application
Alert Dialog
Button
CheckBox
ChoiceBox
Generic Client
List Item
List of Values
Pop List Item
Radio Button
Tab
Text Field
Window
Many API methods can be added using the Oracle EBS/Forms Load Test Module Tree View. Additional methods can be added using the Java Code view. Use Ctrl-space in the Java Code view to open an Intellisense window listing available procedures. See the API Reference in the OpenScript help for additional programming information.
To set Setting Oracle EBS/Forms Load Test Correlation preferences:
Start OpenScript.
Select OpenScript Preferences from the View menu.
Expand the OpenScript node and the Correlation category.
Expand the Oracle EBS/Forms Load Test library.
Select or clear the check boxes to enable or disable specific rules.
Click the Add or Edit buttons to modify rules in the library.
Click OK.
The Oracle EBS/Forms correlation library defines the correlation rules for Oracle EBS/Forms-based applications. The correlation rules specify the variable names and regular expressions to use to replace dynamic data in Oracle EBS/Forms applications and navigations. The default Oracle EBS/Forms correlation library provided with the OpenScript Oracle EBS/Forms Load Test Module includes the following correlation rules:
formsload.location - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern document.location='(.+?)'
and replaces it with the variable name formsload.location
in all locations.
EBS Link and Form Action - DOM Correlation - this rule implements the Web Document Object Model correlation rules for Links and Form actions for Oracle EBS/Forms applications.
ICX Ticket 11i - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern icx_ticket\s*=\s*(?:'|')(.+?)(?:'|')
and replaces it with the variable name formsload.icx_ticket_11i
in all locations.
ICX Ticket R12 - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern icx_ticket&gv15=(.+?)&
and replaces it with the variable name formsload.icx_ticket_r12
in all locations.
ICX Ticket R12s - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern gv15\s*=\s*"(.+?)"
and replaces it with the variable name formsload.icx_ticket_r12s
in all locations.
JSLaunchForm - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern href="javascript:launchForm\('(.+?)'\)"
and replaces it with the variable name formsload.launchform
in all locations.
formsload.module - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern <PARAM (?:name|NAME)=(?:|'|")serverArgs(?:|'|")\s+(?:value|VALUE)="module=(.+?)
and replaces it with the variable name formsload.module
in all locations.
formsload.config - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern config='(.+?)'
and replaces it with the variable name formsload.config
in all locations. This rule is used for EBS/Forms application versions 11.x.
formsload.config_12 - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern config\s*=\s*(?:'|')(.+?)(?:'|')
and replaces it with the variable name formsload.config
in all locations. This rule is used for EBS/Forms application versions 12.
SSO FormsID - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern sso_formsid=(.+?)
and replaces it with the variable name formsload.ssoformsId
in all locations.
FormsLT Global Substitution - Oracle/EBS Forms Load Variable Substitution - this rule adds the appropriate Connect Statement for Forms implementations running in HTTP mode. Substitute Forms URL transforms and ICX Ticket transform.
formsload.oas - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern oas(?:=|%3d|%3D)(.+?\.\.)
and replaces it with the variable name formsload.oas
in all locations.
formsload.ti - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern &_ti(?:=|%3d|%3D)(.+?)&
and replaces it with the variable name formsload.ti
in all locations.
EBS DOM Correlation - DOM Correlation - this rule implements the default EBS Document Object Model correlation rules for Oracle EBS/Forms applications.
formsload.backslashJsVar - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern \\'\w+\\':\\'(.+?)\\',
and replaces it with the variable name formsload.backslashJsVar
in all locations.
formsload.formsvar.LOCATE_FG_BAR - Oracle/EBS Forms Load Variable Substitution Forms Only - this rule locates text in the HTML matching the Regular Expression pattern \[13\]LOCATE_FG_BAR\[15\](.+?)\"/>
and replaces it with the variable name formsload.formsvar.LOCATE_FG_BAR
in all Requests and Responses locations.
formsload.formsvar.WINSYS_HYPERLINK_params - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <Property actionString=\"WINSYS_HYPERLINK\" action=\"283\" type=\"\[Ljava\.lang\.String;\" length=\"2\" value0=\"(.+?)params=(.+?)&oas
and replaces it with the variable name formsload.formsvar.WINSYS_HYPERLINK_params
in all Requests and Responses locations.
formsload.formsvar.WINSYS_HYPERLINK_oas - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <Property actionString=\"WINSYS_HYPERLINK\" action=\"283\" type=\"\[Ljava\.lang\.String;\" length=\"2\" value0=\"(.+?)&oas=(.+?)\"
and replaces it with the variable name formsload.formsvar.WINSYS_HYPERLINK_oas
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_session_key - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="configurator_session_key">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_session_key
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_icx_session_ticket - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="icx_session_ticket">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_icx_session_ticket
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_creation_date - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="config_creation_date">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_creation_date
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_effective_date - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="config_creation_date">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_effective_date
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_model_lookup_date - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="config_model_lookup_date">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_model_lookup_date
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_requested_date - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="requested_date">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_requested_date
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_client_header - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="client_header">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_client_header
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_client_line - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="client_line">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_client_line
in all Requests and Responses locations.
formsload.formsvar.CONFIGURATOR_warehouse_id - Oracle/EBS Forms Load Variable Substitution Forms-Http - this rule locates text in the HTML matching the Regular Expression pattern <param name="warehouse_id">(.+?)</param>
and replaces it with the variable name formsload.formsvar.CONFIGURATOR_warehouse_id
in all Requests and Responses locations.
Client Set Cookie - Client Set Cookie - this rule sets the client cookie.
formsload.formsstep.THINKTIME - Oracle/EBS Forms Load Step Generation - this rule is used to generate think time in script step groups.
formsload.objectCategoryId - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern ,\{'ObjectCategoryId':'.+?','DetailObjectId':'(.+?)'
and replaces it with the variable name formsload.objectCategoryId
in all locations.
formsload.detailObjectId - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern ,\{'ObjectCategoryId':'(.+?)','DetailObjectId':'.+?'
and replaces it with the variable name formsload.detailObjectId
in all locations.
formsload.HzPuiCustAccountId - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'HzPuiCustAccountId':'(.+?)'
and replaces it with the variable name formsload.HzPuiCustAccountId
in the location matching the Regular Expression HzPuiCustAccountId=((.+?))(&|$|\s)
.
formsload.evtSrcRowIdx - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'evtSrcRowIdx':'(.+?)'
and replaces it with the variable name formsload.evtSrcRowIdx
in the location matching the Regular Expression evtSrcRowIdx=((.+?))(&|$|\s)
.
formsload.evtSrcRowId - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'evtSrcRowIdx':'(.+?)'
and replaces it with the variable name formsload.evtSrcRowId
in the location matching the Regular Expression evtSrcRowId=((.+?))(&|$|\s)
.
formsload.value - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'DefaultFormName','goto','OIENavBar',0,'(.+?)'
and replaces it with the variable name formsload.value
in the location matching the Regular Expression value=((.+?))(&|$|\s)
.
Correlate Headers - Correlate Headers - this rule implements the default Correlate Headers correlation rules for EBS/Forms applications that use dynamic headers.
Correlate Referer Header - Correlate Referer Header - this rule implements the default Correlate Referer Header correlation rules for EBS/Forms applications that use dynamic headers.
formsload.loginsave - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern submitForm\('DefaultFormName',1,\{'_FORM_SUBMIT_BUTTON':'(.+?)'
and replaces it with the variable name formsload.loginsave
in all locations.
formsload.loginsubmit - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern _FORM_SUBMIT_BUTTON':'(.+?)'
and replaces it with the variable name formsload.loginsubmit
in the location matching the Regular Expression _FORM_SUBMIT_BUTTON=((.+?))(&|$|\s)
.
formsload.submit backslash - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern \{\\'_FORM_SUBMIT_BUTTON\\':\\'(.+?)\\'\}
and replaces it with the variable name formsload.submit.backslash
in the location matching the Regular Expression _FORM_SUBMIT_BUTTON=((.+?))(&|$|\s)
.
formsload.oas - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern oas=(.+?\.\.)
and replaces it with the variable name formsload.oas
in all locations.
formsload.resultsVOName - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'ResultsVOName':'.+?','ItemKey':'(.+?)','evtSrcRowId':'','evtSrcRowIdx'
and replaces it with the variable name formsload.resultsVOName
in all locations.
formsload.ItemKey - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'ResultsVOName':'(.+?)','ItemKey'
and replaces it with the variable name formsload.ItemKey
in all locations.
formsload.SDP_RLID - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern &SDP_RLID=(.+?)&
and replaces it with the variable name formsload.SDP_RLID
in all locations.
formsload.SDP_RHID - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern &SDP_RHID=(.+?)&
and replaces it with the variable name formsload.SDP_RHID
in all locations.
formsload.QotFrmEvtVal - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'QotFrmEvtVal':'(.+?)',
and replaces it with the variable name formsload.QotFrmEvtVal
in the location matching the Regular Expression &QotFrmEvtVal=((.+?))&
.
formsload.QotFrmEvt - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'QotFrmEvt':'(.+?)',
and replaces it with the variable name formsload.QotFrmEvt
in the location matching the Regular Expression QotFrmEvt=((.+?))&
.
formsload.QotFrmEvtVal2 - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'QotFrmEvtVal2':'(.+?)',
and replaces it with the variable name formsload.QotFrmEvtVal2
in the location matching the Regular Expression QotFrmEvtVal2=((.+?))&
.
formsload.serverValidate - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'serverValidate':'(.+?)',
and replaces it with the variable name formsload.serverValidate
in the location matching the Regular Expression serverValidate=((.+?))&
.
formsload.QotFrmSvMdlFg - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'QotFrmSvMdlFg':'(.+?)',
and replaces it with the variable name formsload.QotFrmSvMdlFg
in the location matching the Regular Expression &QotFrmSvMdlFg=((.+?))&
.
formsload.QotFrmEvtSrc - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'QotFrmEvtSrc':'(.+?)',
and replaces it with the variable name formsload.QotFrmEvtSrc
in the location matching the Regular Expression &QotFrmEvtSrc=((.+?))(&|$|\s)
.
formsload.navBarSubmit - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern _navBarSubmit\('DefaultFormName','\w+','',\d+,'(.+?)'\)
and replaces it with the variable name formsload.navBarSubmit
in all locations.
The following are key concepts, tools, and functions you can use when debugging Oracle EBS/Forms Load Test scripts recorded during recording as well as playback.
This section explains how to use the Message Log for debugging Oracle EBS/Forms Load Test Scripts.
When recording EBS/Forms Load scripts, the Oracle EBS/Forms Load Test module generates a complete log of messages that were exchanged between the forms server and the client browser. The log is generated for all types of communication (See Recording Oracle EBS/Forms Load Tests):
Socket Connection - numerically identified by a 0
HTTP Connection - numerically identified by a 1
HTTPS Connection - numerically identified by a 2
This recorded log is located in <installdir>/OFT/<ScriptName>/recordedData/FormsLT_Recorded_FormsMessage_Logs/RecordedMessages.log.
The format in the log is as follows:
MESSAGE FROM CLIENT: indicates a Message sent from client to server, followed by an XML string representation of the message object.
TERMINAL MESSAGE FROM CLIENT: indicates a Terminal Message sent from client to server, followed by an XML string representation of the terminal message object.
MESSAGE FROM SERVER: indicates a response message sent from the server to client, followed by an XML string representation of the message object.
TERMINAL MESSAGE FROM SERVER: indicates a Terminal Message indicating the end of a response sent from the server to the client, followed by an XML string representation of the terminal message object.
If a script fails during playback, you can enable the message log for debug purposes.
To enable the message log:
Open the Oracle EBS/Forms load test script.
Enable the Capture Playback Log option in the EBS/Forms Playback Preferences.
After enabling message logging, click the play button to run the script. During script play back, all forms messages exchanged between server and the client are printed to the console window in OpenScript.
This is a rather large log of messages and using the recorded log as a reference, compare the messages being sent to the server by OpenScript. Check for messages that appear in the recorded log but not in the playback log. It is normal to have messages such as OUTERSIZE, LOCATION missing. The reason for this is because the EBS/Forms load script recorder was designed keeping in mind that the user should see actions being recorded in the script instead of messages.
Message playback logs can be used to compare the recorded vs. played back forms messages to troubleshoot script problems. Select a result in the Results view and compare the recorded vs. playback messages in the Comparison tab of the Details view.
The Details view for EBS/Forms load scripts can have the following tabs:
Object Details Tree: Shows a text-based representation of the property names and values of an EBS/Forms object in a tree hierarchy. You can right click a property to add a Text Matching test.
Screenshot: Shows an image of the EBS/Forms window for visual identification. The Screenshot is taken on Window Activate actions.
Messages: Shows the raw XML EBS/Forms messages recorded for the selected script node.
Message Tree: Shows the XML EBS/Forms message parameters and values for the selected script node in a tree hierarchy.
Comparison: Shows a comparison of the recorded vs. playback XML EBS/Forms messages or object details for the selected item in the Results view. Select the comparison type from the Compare list.
Messages to check for when analyzing recorded and playback logs are as follows:
FOCUS messages: Make sure the correct component has focus. The script cannot execute an action on a component without correctly setting a focus on it. For example, a text field component contains a button which displays a list of values dialog when pressed. This button is not enabled until the focus is correctly set on the text field. In this case, if OpenScript tries to execute a press button action and the focus in not correct, you will encounter an error such as "Component not available".
WINDOW_ACTIVATED messages: Make sure the correct window is the currently active windows for the script action on a component. If the correct window is not currently active, the script will not be able to execute any actions on the components within that window.
"Component {0} does not exist" error messages (error code COMPONENT_DOES_NOT_EXIST) may occur when initially creating an Oracle Forms Load Testing script. This error is reported Possible causes:
If the error appears on the first action of the script, it could be indicative of "Issue 1. Connection Failures and ICX_Ticket Correlation" above.
The object specified in the script truly does not exist in the application at the time the action was performed on it.
For example, when recording the script, if the tester searches for an order and deletes it, then during playback the script will fail because the order number no longer exists to delete. In some situations it may be helpful to insert status bar text validations, in cases where a status bar text message is expected.
In other cases, the Forms application may display an unexpected dialog box error message indicating some validation failure or other business flow error in the application itself. If such a dialog did not appear during recording, then any subsequent actions will fail. Check the error log in the script to see if any error dialog messages appeared. Check that all data inputs in the script are valid, and carefully review the actions specified in the script.
In other cases, it may be difficult to diagnose the root cause of the problem without technical support. For example, it could be that the application being tested is using a custom forms object that sends a custom message to the server that the Forms playback engine does not recognize.
When playing the script in HTTP mode, the server can respond with error messages in plain/text which would require special handling by the VU. The following are the most common types of ifError
messages returned by the server.
These messages are returned as a response of any forms request against the server when playing the script in HTTP mode. The response content type for these messages is 'plain/text' and the response code is '200 OK'
The client does not handle cookies. Enable cookie handling for that virtual user.
The server was unable to create an Oracle EBS/Forms process. Problem exists on the server-side.
The server was unable to start the Oracle EBS/Forms process. Problem exists on the server-side.
The Oracle EBS/Forms session was aborted and the VU is unable to communicate with the server. In most cases this would occur when the server is experiencing a heavy load or if there is a problem with the script.
The server is currently busy, re-try the request later. The VU will re-try this request <n> number of times where <n> is a value specified in Forms Load Test playback preferences before it throws an error/stops playback.
The server is busy, re-try the request in <n> milliseconds. This type of message will not be displayed to the user, the VU will automatically re-try this request after <n> milliseconds.