<?xml version="1.0"?>
<?xml:stylesheet href="file:///C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/tools/cshlpcmp/xsl/ptml.xsl" title="PTML" type="text/xsl"?>
<!DOCTYPE ptml SYSTEM "file:///C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/tools/cshlpcmp/dtd/ptml.dtd">
<ptml>
<p style="comment">Author: Reshma Sandeep Das</p>
<p style="comment">Date: 2009-29-07</p>
<p style="comment">Version: 3.7</p>
<p style="heading 1">Category</p>
<p style="category uid">0x2001C3AF</p>
<p style="heading 2">Topic title</p>
<p style="synonyms">Synonyms for the topic</p>
<p style="context">Context1 <cs style="context comment">with a comment</cs></p>
<p style="index">User Emulator</p>
<p><manual formattype="font-size"><b>Purpose and Scope</b></manual></p>
<p><manual formattype="font-size">This document provides an outline on the User Emulator tool, instructions on how to use the tool and guidelines on reading and analysing the results after running the tool.</manual></p>
<p><manual formattype="font-size"><b>Overview</b></manual></p>
<p><manual formattype="font-size"><b>User Emulator:</b></manual></p>
<p><manual formattype="font-size">User Emulator is a tool for automated test creation, execution and management. The tool is very useful to automate functional and non-functional testing of applications. Eg, stress testing application usage over 24 hours. Regression testing, etc. </manual></p>
<p><manual formattype="font-size">The user emulator tool programmatically simulates application UI usage as described in an XML script on the S60 device. This tool helps in writing, reusing and executing tests on the code under development.</manual></p>
<p><manual formattype="font-size">Following are the features supported by the User Emulator tool:</manual></p>
<p><manual formattype="font-size">&ndash; Up/down/left/right arrow key events</manual></p>
<p><manual formattype="font-size">&ndash; Selection, LSK, RSK key events</manual></p>
<p><manual formattype="font-size">&ndash; Menu key events</manual></p>
<p><manual formattype="font-size">&ndash; Alpha-Numeric key events</manual></p>
<p><manual formattype="font-size">&ndash; Launch application using UID/Name</manual></p>
<p><manual formattype="font-size">&ndash; Loops in XML script</manual></p>
<p><manual formattype="font-size">&ndash; Pointer/Touch events</manual></p>
<p><manual formattype="font-size">&ndash; Take Screen shots</manual></p>
<p><manual formattype="font-size">&ndash; Capture Panics </manual></p>
<p><manual formattype="font-size">&ndash; Log to file</manual></p>
<p><manual formattype="font-size">&ndash; Record and playback of Key/Pointer events</manual></p>
<p><manual formattype="font-size">&ndash; Random Test </manual></p>
<p><manual formattype="font-size">&ndash; Random Test to stress all applications under S60 menu system</manual></p>
<p><manual formattype="font-size">&ndash; Random Test targeted to specific applications</manual></p>
<p><manual formattype="font-size"><b>Menu Options: </b></manual></p>
<p><manual formattype="font-size">After the application launch, any scripts available in the default settings path are displayed to the user. This view is refreshed if there is any change in the settings path or addition/deletion of scripts.</manual></p>
<p><manual formattype="font-size"><b>1</b><b>. Run Scripts</b></manual></p>
<p><manual formattype="font-size">Script execution can start by selecting the Run Scripts menu option. Script selection can be made by clicking on a script name. Single selection or multiple script selection option is available to the user. After the selection, file(s) are parsed using an XML parser and appropriate actions are performed. Visual indications of scripts execution pass/fail/cancellation are displayed using icons on the screen.</manual></p>
<p><manual formattype="font-size">Green Icon: pass</manual></p>
<p><manual formattype="font-size">Red Icon: Fail</manual></p>
<p><manual formattype="font-size">Yellow Icon: Cancellation of script execution</manual></p>
<p><manual formattype="font-size">Script run starts on idle screen after the Menu application and idle screen reset</manual></p>
<p><manual formattype="font-size"><b>2</b><b>. Select</b></manual></p>
<p><manual formattype="font-size">This option can be used for file selection and de-selection respectively. There is an option to select/de-select a single file or multiple files at the same time.</manual></p>
<p><manual formattype="font-size"><b>3</b><b>. Record input</b></manual></p>
<p><manual formattype="font-size">This menu option allows users to start recording any key presses or screen taps. User has to enter a name for the recorded script. The file name cannot contain any special characters. An error message is displayed to the user and a dialog is prompted to enter correct filename. The file is stored in 'Scripts Path ' folder. Screenshot tag can be added dynamically in the script by pushing the camera button once during script recording. Recording can be cancelled any time by pressing the power button once.</manual></p>
<p><manual formattype="font-size">Script recording starts on idle screen after the Menu application and idle screen reset</manual></p>
<p><manual formattype="font-size"><b>4</b><b>. Random test run</b></manual></p>
<p><manual formattype="font-size">Starts the random test on the device and sends random key presses and screen taps to the device. Random test can be stopped by pressing the power button once.</manual></p>
<p><manual formattype="font-size"><b>5</b><b>. Settings</b></manual></p>
<p><manual formattype="font-size">This menu option launches a settings dialog that has configuration information for the User Emulator tool.</manual></p>
<p><manual formattype="font-size">Scripts Path: User can modify the storage path of the test scripts.</manual></p>
<p><manual formattype="font-size">Log Status: Logging option can be turned ON/OFF using this settings option.      </manual></p>
<p><manual formattype="font-size">Log File Path: Path for the log file that logs the script execution actions. This file also captures any system wide panics.  </manual></p>
<p><manual formattype="font-size">Note: User has to exit the tool in order to check the log files. Log files are overwritten every time the tool starts.</manual></p>
<p><manual formattype="font-size">Target for Random Test? Can be ON/OFF. 'ON' enables random tests on ID specified application(s). If it is in 'OFF' state then random test will perform without starting an application at start time.</manual></p>
<p><manual formattype="font-size">App Ids of Random Test: If the previous option is 'ON' then 'Random test run' will start application(s) at the beginning of the test using these IDs.</manual></p>
<p><manual formattype="font-size"><b>6</b><b>. System Info</b></manual></p>
<p><manual formattype="font-size">Option that gives the complete system information </manual></p>
<p><manual formattype="font-size"><b>7</b><b>. Help</b></manual></p>
<p><manual formattype="font-size">Help file describing the User Emulator tool usage</manual></p>
<p><manual formattype="font-size"><b>8</b><b>. About</b></manual></p>
<p><manual formattype="font-size">A brief about the tool</manual></p>
<p><manual formattype="font-size"><b>Middle soft K</b><b>ey Options:</b></manual></p>
<p><manual formattype="font-size"><b>Run Scripts</b></manual></p>
<p><manual formattype="font-size">User can call Run Scripts to run a script on focus. </manual></p>
<p><manual formattype="font-size"><b>XML Script Format</b></manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">This section describes the data format of the XML script that is generated during script recording operation from an S60 device.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">The XML script has user actions (key inputs/ screen taps) recorded and can be used to simulate the same during script execution.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Each user action is written as an action element enclosed within the main tag having the following syntax:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Syntax:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;UserEmulator&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;. &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;. &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt;. &lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;keys&gt;. &lt;/keys&gt; </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;screenshot&gt; . &lt;/screenshot&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;print&gt; . &lt;/print&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;/action&gt; </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/UserEmulator&gt;</manual></p>
<p style="style1">Description of tags and elements</p>
<p style="style1">&lt;name&gt;... &lt;/name&gt;: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">This is an optional tag which can be used to define the action. A meaningful name can be given to this tag to identify the action. </manual></p>
<p style="style1">Syntax:</p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;name&gt; &lt;Application name&gt; &lt;/name&gt;</manual></p>
<p style="style1">Example: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt; Calculator &lt;/name&gt;</manual></p>
<p style="style1">&lt;type&gt;... &lt;/type&gt;: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">This is a mandatory tag which should be defined to identify the type of action. User has to choose any one of the below mentioned values to identify the type of action.</manual></p>
<p style="style1">Currently supported types of action: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - app      (To launch an application)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - view     (To switch the views)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - closeapp   (To close any application)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - keypress   (To simulate key press)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - wait           (To pause for the specified duration in milliseconds)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - javaapp     (To launch a java midlet)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - pointerevent (To simulate pointer events)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - orientation    (Change device's screen orientation (portrait or landscape mode))</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   - screenreset  (Resets menu screen and older version of Home Screen's idle screen )</manual></p>
<p style="style1">Note: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">The above types of action are case sensitive </manual></p>
<p style="style1">Syntax:</p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;type&gt; &lt;action-type&gt; &lt;/type&gt;</manual></p>
<p style="style1">Example: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt; app &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt; view &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt; closeapp &lt;/type&gt;</manual></p>
<p style="style1">&lt;params&gt;... &lt;/params&gt;: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">This tag should be used to pass parameters for carrying out specified action. This tag is mandatory if the &lt;type&gt; tag is set to any one of the following types:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">"app, view, closeapp, wait, javaapp"</manual></p>
<p style="style1">Syntax:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; &lt;application specific params&gt; &lt;/type&gt;</manual></p>
<p style="style1">Example:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">In order to launch an application, currently the UID of the application has to be passed as the first parameter and the application name as the second parameter. Comma (',') is used as a delimiter between the parameters. The second parameter (application name) is a label which is required for logging purposes</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;params&gt; 0x10005902, Calculator &lt;/params&gt; //Launches the calculator application</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">For closing an application, the UID of the application along with the application name (comma separated) to be closed should be passed.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;params&gt; 0x10005902, Calculator &lt;/params&gt; // Closes the calculator application</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">In order to switch views, application UID and view ID (comma separated) should be passed to the params tag</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;params&gt; 0x101f4cd5, 0x05 &lt;/params&gt; // Activates Missed calls view</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">For wait operation, the time interval in milliseconds should be specified as follows:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;params&gt; 100 &lt;/params&gt; //Pause for 100 milliseconds</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">For launching a java midlet, midlet name should be specified in the params tag. Midlet name is case sensitive.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;params&gt; Music Store &lt;/params&gt; //Launches Music Store application</manual></p>
<p style="style1">&lt;keys&gt;&#8230; &lt;/keys&gt;: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">This tag should be used to pass any key events to the application. More than one key code can be specified in the &lt;keys&gt; tag. Space (" ") is used as a delimiter between the key codes. Following key codes can be passed as the key events in &lt;keys&gt; tag.</manual></p>
<p style="style1"> Key Codes Reference:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">  LSK     = left soft key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  RSK    = right soft key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  DAK    = down arrow key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  RAK    = right arrow key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  LAK     = left arrow key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  UAK    = up arrow key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  MSK    = Middle soft key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  SP       = Space</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  BS       = Backspace/clear</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  lt          = Less Than</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  gt         = Greater Than</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  amp     = Ampersand</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  MENU  = Menu</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  KYES  = Green Key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  KNO    = Red Key</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  1 = Number 1</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  2 = Number 2</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  3 = Number 3  </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  4 = Number 4</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  5 = Number 5</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  6 = Number 6</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  7 = Number 7  </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  8 = Number 8</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  9 = Number 9</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Alphabets: </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">a-z and A-Z  </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Special characters:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">. ? @  , ' ! " - ( ) / : _ ; + % = [ ] { } \ ~ ^ | ` $</manual></p>
<p style="style1">Syntax:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;keys&gt; &lt;key value &gt; &lt;/type&gt; </manual></p>
<p style="style1">Example: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">   &lt;keys&gt; DAK &lt;keys&gt; // Press down arrow key </manual></p>
<p style="style1">Loop:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">This tag should be used to specify any repetitive actions and should be defined using the tag  </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   &lt;loop count='2'&gt; // begin loop </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   .</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   .</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   &lt;/loop&gt; // end loop</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">In the above tag, 'count' indicates the number of times the set of actions has to be executed in a loop. </manual></p>
<p style="style1">Syntax:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">    &lt;loop count=&lt;enter the count value for looping action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">     .</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">     .</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">     &lt;/loop&gt;</manual></p>
<p style="style1">Example:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;loop count='5'&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;names&gt; enter 1 &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;    keypress   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;keys&gt;   1 &lt;/keys&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;/loop&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">In the above example, key press 1 is sent to the application. This operation is carried out five times in a loop. </manual></p>
<p style="style1">Note: </p>
<p style="style1"><manual formattype="Bold-Style-Removed">By specifying the count value as 'infinite', one can execute the operations in a loop infinitely.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Stopping Script Executions</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Script execution can be interrupted by pressing the Power button on the device.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">   </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for launching a calculator application</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   Calculator &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   app   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; 0x10005902, Calculator&lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for switching views </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Activates the Missed calls view</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   Missed Calls &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   view   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; 0x101f4cd5, 0x05 &lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;keys&gt;   MSK MSK &lt;/keys&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for closing a calculator application</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   Calculator &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   closeapp   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; 0x10005902, calculator&lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for keypress action </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   keypress   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;keys&gt;   1 2 &lt;/keys&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for wait/pause</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   pause &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   wait   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; 4000 &lt;/params&gt; //Time interval in milliseconds</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for Loop action</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;loop count='5'&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   enter 1 and 2 &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   keypress   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;keys&gt;   1 2 &lt;/keys&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;/loop&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example for launching a java application</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Launches the Music Store application</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   Music Store &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   javaapp  &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; Music Store &lt;/params&gt; //Midlet name </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;print&gt;&#8230;&lt;/print&gt;:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">This is an optional tag that can be added in the scripts to print any debug logs. </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Example:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;   Calculator &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   app   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; 0x10005902, calculator&lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;print&gt;Open calculator&lt;/print&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed"> &lt;/action&gt;</manual></p>
<p style="style1">&lt;screenshot&gt; &#8230; &lt;/screenshot&gt;</p>
<p style="style1"><manual formattype="Bold-Style-Removed">User Emulator can take a screenshot of the action that has the &lt;screenshot&gt; tag. The image file is stored with the name specified in the &lt;screenshot tag&gt; under the &lt;\Logs\script file name&gt; directory specified in the settings dialog. </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">During script recording, this tag can be automatically added at any stage of recording, by just clicking on the camera button once. The name of the screenshot is added automatically and has the following format:</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">"app name in foreground"-"time stamp"</manual></p>
<p style="style1">Example:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;screenshot&gt; Menu-4563678 &lt;/screenshot&gt;</manual></p>
<p style="style1">Pointer Events</p>
<p style="style1"><manual formattype="Bold-Style-Removed">User Emulator can simulate pointer events on the touch enabled devices. Following are the pointer events currently supported. The pointer events are added within the &lt;params&gt; tag.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">pointerdownAt ,x, y: Simulates pointer down event. &break;x and y values are the co-ordinates of the pointer. (Start of a flick or tap, etc.)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">pointerupAt, x,y: Simulates pointer up event. &break;x and y values are the co-ordinates of the pointer. (End of a flick or tap, etc.)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">moveto x, y: Simulates pointer move event. &break;x and y values are the co-ordinates of the end of movement.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">pointerdownAt, x, y, z:  Simulates finger down event. &break;x and y values are the co-ordinates of the finger. Z is a threshold value. (Added to every co-ordinates)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">pointerupAt, x,y,z: Simulates finger up event. &break;x and y values are the co-ordinates of the finger. Z is a threshold value. (Added to every co-ordinates)</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">moveto x, y,z: Simulates finger move event. &break;x and y values are the co-ordinates of the end of movement. Z is a threshold value. (Added to every co-ordinates)</manual></p>
<p style="style1">Example:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;  xxx &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   pointerevent   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; pointerdownAt,560,320,5 &lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;  xxx &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   pointerevent   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; moveTo, 520,310,5 &lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;action&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;name&gt;  xxx &lt;/name&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;type&gt;   pointerevent   &lt;/type&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">  &lt;params&gt; pointerupAt, 520,300,5 &lt;/params&gt;</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">&lt;/action&gt;</manual></p>
<p style="style1">Note:</p>
<p style="style1"><manual formattype="Bold-Style-Removed">Since on software level there is no difference between stylus, finger tap, thumb tap, etc. all types of pointer events have general pointer event names with a threshold value.</manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">In order to get the same results during script execution, all the screens on the device should be reset to its initial state before script recording and playback. </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">Currently the tool supports basic reset functionality of resetting the Menu application's scroll bar, closing any open applications on the device and resetting the idle screen. </manual></p>
<p style="style1"><manual formattype="Bold-Style-Removed">If there are any changes to the application position in the Menu application or any changes on the Home Screen, the script when played back may not produce the same results. This is a known limitation of the tool</manual></p>
</ptml>
