8 Using the Oracle EBS/Forms Load Test Module

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.

8.1 About the Oracle EBS/Forms Load Test Module

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.

8.1.1 Key Features of the Oracle EBS/Forms Load Test Module

  • 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.

8.1.2 Prerequisites

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/Jinitiator 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 JInitiator/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.

8.2 Recording Oracle EBS/Forms Load Tests

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. Recording can be configured through Internet Explorer only as the Oracle EBS/Forms Load Test Module does not support Firefox.

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 toolbar that can be used while recording without having to switch between the browser and OpenScript.

When an recording Oracle EBS/Forms script determining the type of communication is important. Oracle EBS/Forms client can communicate with the server using the following modes:

  • Socket Mode: All the communication exchanged between the server and client is performed at a socket level therefore the proxy recorder will not capture any transactions that occur between the server and client.

  • HTTP Mode: All the communication happens over the HTTP protocol and gets captured by both the proxy recorder and the Oracle EBS/Forms Load Test module. The duplication of HTTP requests is filtered out by the Oracle EBS/Forms Load Test module and the message log only retains the requests captured by Oracle EBS/Forms Load Test module and not the request captured by proxy recorder.

  • HTTPS Mode: This mode the communication is very similar to that of HTTP except the connection is made over the HTTP protocol on port 443 using SSL.

8.2.1 Setting Oracle EBS/Forms Load Test Record Preferences

To set Oracle EBS/Forms Load Test record preferences:

  1. Start OpenScript.

  2. Select OpenScript Preferences from the View menu.

  3. Expand the OpenScript node and the Record category.

  4. Select Oracle EBS/ Forms Load Test.

  5. Set the parameters. See Section 2.5.5, "Oracle EBS/Forms Load Test Preferences" for descriptions of the Record Preferences settings.

  6. Click OK.

8.2.2 Recording Oracle EBS/Forms Load Test Scripts

To record Oracle EBS/Forms Load Test scripts:

  1. Start OpenScript.

  2. Set the Oracle EBS/Forms Load Test Correlation preferences.

  3. Set the Oracle EBS/Forms Load Test Recording preferences.

  4. Select New from the File menu.

  5. Expand the Load Testing group.

  6. Select Oracle EBS/Forms (The Oracle EBS/Forms script combines both HTTP and Oracle EBS/Forms technologies as part of the same script).

  7. Click Next.

  8. Select the Repository and Workspace.

  9. Enter a script name.

  10. Click Finish. A new Script tree is created in the Script View.

  11. Select Record from the Script menu. The browser automatically opens when you start recording.

  12. Load the web page where you want to start recording into the browser.

  13. 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).

  14. When finished navigating pages, close the browser.

  15. Select Stop from the Script menu or click the Stop button on the OpenScript toolbar.

  16. 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.

8.3 Playing Back Scripts

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.

8.3.1 Setting Oracle EBS/Forms Load Test Playback Preferences

To set Oracle EBS/Forms Load Test playback preferences:

  1. Start OpenScript.

  2. Select OpenScript Preferences from the View menu.

  3. Expand the OpenScript node and the Playback category.

  4. Select Oracle EBS/Forms Load Test.

  5. Select or clear the message options. See Section 2.4.7, "Oracle EBS/Forms Load Test Preferences" for descriptions of the Playback Preferences settings.

  6. Click OK.

8.3.2 Playing Back Oracle EBS/Forms Load Scripts

To play back Oracle EBS/Forms Load scripts:

  1. Start OpenScript.

  2. Open the Oracle EBS/Forms Load script to play back.

  3. 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.

8.3.3 Playing Back Oracle EBS/Forms Load Scripts with Iterations

To play back Oracle EBS/Forms Load scripts with iterations:

  1. Start OpenScript.

  2. Open the Oracle EBS/Forms Load script to play back.

  3. Select Iterate from the Script menu or click the toolbar button.

  4. Select Use Databanks.

  5. Select which databank file to specify the settings for if more than one database is configured for the script.

  6. Specify the settings for the databank file.

  7. 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.

  8. 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.

8.4 Modifying Scripts

Once a script has been created/recorded, you can make modifications to customize the script for your specific testing needs.

8.4.1 Adding Forms Actions

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:

  1. Record a EBS/Forms Functional Test script.

  2. Select the script node where you want to add the action.

  3. Select the Script menu and then select Other from the Add sub menu.

  4. Expand the Forms Load Action node.

  5. Expand an action node and select the action.

  6. Click OK.

  7. Enter the object identification path for the object. You can use the Capture or Select menu options to capture or select an object path.

  8. Enter any required values to use for the object action.

  9. 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.

8.4.2 Converting Forms Actions to XML Messages

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:

  1. 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.

  2. Select the Send recorded Forms client messages option. If necessary, you can edit the raw XML messages.

  3. 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.

8.4.3 Using the Oracle EBS/Forms Load Test Module API

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.

8.5 Setting Oracle EBS/Forms Load Test Correlation Preferences

To set Setting Oracle EBS/Forms Load Test Correlation preferences:

  1. Start OpenScript.

  2. Select OpenScript Preferences from the View menu.

  3. Expand the OpenScript node and the Correlation category.

  4. Expand the Oracle EBS/Forms Load Test library.

  5. Select or clear the check boxes to enable or disable specific rules.

  6. Click the Add or Edit buttons to modify rules in the library.

  7. Click OK.

8.6 Oracle EBS/Forms Load Test Correlation Library

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.

  • 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='(.+?)' 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.

  • 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.

  • 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.

  • 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 all locations.

  • 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 all locations.

  • formsload.evtSrcRowId - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'evtSrcRowId':'(.+?)' and replaces it with the variable name formsload.evtSrcRowId in all locations.

  • 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 all locations.

  • Correlate Headers - Correlate Headers - this rule implements the default Correlate Headers correlation rules for Oracle EBS/Forms applications that use dynamic headers.

  • Correlate Referer Headers - Correlate Headers - this rule implements the default Correlate Headers correlation rules for Oracle EBS/Forms applications that use dynamic Referer Headers. This rule adds a http.solveRefererHeader method to store the requested url for referer headers in later navigations to use.

  • 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 all locations.

  • 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 all locations.

  • FormsLT Global Substitution - Oracle EBS/Forms Variable Substitution - this rule adds the appropriate Connect Statement for Forms implementations running in HTTP mode. Substitute Forms URL transform and ICX Ticket transform.

  • 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.ti - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern &_ti=(.+?)& and replaces it with the variable name formsload.ti in all locations.

  • formsload.resultsVOName - Variable Substitution - this rule locates text in the HTML matching the Regular Expression pattern 'ResultsVOName':'(.+?)','ItemKey' 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':'(.+?)','evtSrcRowId':'','evtSrcRowIdx' 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.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 all locations.

  • 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 all locations.

  • 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 all locations.

  • 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 all locations.

  • 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 all locations.

  • Web Default Correlation - DOM Correlation - this rule implements the default Web Document Object Model correlation rules for Oracle EBS/Forms applications.

8.7 Troubleshooting Oracle EBS/Forms Load Test Scripts

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.

8.7.1 Debugging Using the Message Log

This section explains how to use the Message Log for debugging Oracle EBS/Forms Load Test Scripts.

8.7.1.1 During Recording

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.

8.7.1.2 Format of the Recorded 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.

8.7.1.3 During Playback

If a script fails during playback, you can enable the message log for debug purposes.

To enable the message log:

  1. Open the Oracle EBS/Forms load test script.

  2. 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.

8.7.1.4 After Playback

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.

8.7.2 Analyzing Message Logs

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.

8.7.3 Resolving "Component does not exist" Errors

"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:

  1. 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.

  2. 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.

  3. 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.

8.7.4 Troubleshooting Forms ifError Messages

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.

IfError Messages

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'

ifError:3

The client does not handle cookies. Enable cookie handling for that virtual user.

ifError:4

The server was unable to create an Oracle EBS/Forms process. Problem exists on the server-side.

ifError:5

The server was unable to start the Oracle EBS/Forms process. Problem exists on the server-side.

ifError:6

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.

ifError:7

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.

ifError:11/<n>

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.