May 17, 2009

WinTask versus WinTask Lite

P>If you are considering WinTask as a test automation tool, is it necessary to purchase the full WinTask, or can you get by with the lower-cost WinTask lite?


The simple answer - if you want to do any real test automation, then Yes - you should purchase WinTask.  WinTask Lite is missing several functions that are very, very handy for the tester.
The logging functions are useful for writing a results log
The response time functions are useful for checking the duration of tasks
Some of the system functions are necessary for creating extensions to WinTask (to call into system DLLs, for example)
The web functions are essential for testing web-based applications
In some cases, the OCR functions can get text that is otherwise not accessible
Here's what you will NOT get in WinTask Lite (based on version 3.5a):

Window management functions
  • CheckedW - Retrieves the state of a checkbox/radiobutton
  • ClickOnTextOCR - Clicks mouse button on a text recognized by the OCR engine inside a window
  • SelectedItem$ - Returns the selected item in a listbox/combobox
  • SendKeysEncrypted - Sends encrypted keyboard input to the last specified Window
  • UseWindowRegEx - Specifies, using Regular Expression, the window where the script will now send its keystrokes
  • WriteEditEncrypted - Writes an encrypted string into the specified edit field  
Capture functions
  • CaptureAreaOCR$ - Captures the text that appears in the specified area of a window using OCR
  • HardCopy - Saves a screenshot  
Synchronization functions
  • #ErrorFunction$ - Gives the name of the function which causes the error
  • #ErrorMsg$ - Gives the error message sent by the function which causes the error
  • #ErrorScript$ - Gives the name of the script where the error occurred.
  • Disable - Disables the management of a specified event
  • Enable - Reactivates the management of a specified event
  • OnAction ... EndAction - Manages events
  • OnAction Error ... EndAction - Manages error-handling
  • Sleep - Makes the current script sleep whereas the events are still managed  
User dialog
  • BeginDialog...EndDialog - Defines a dialog box with its controls
  • CallDialog - Displays a dialog box defined previously
  • InputboxSecret$ - Displays a simple dialog box where the user can type a hidden value
  • SelectDir - Returns the name of the directory selected by the user in the standard Browse for Folder dialog
  • SelectFile - Returns the name of the file selected by the user in the standard dialog box File Open
  • SelectMultipleFile - Returns the name of the files selected in the standard dialog box File Open 
File management functions
  • AppendXMLNode - Adds a node in the specified XML file
  • EnumXMLAttributes - Retrieves the attribute names and attribute values for the specified XML node
  • EnumXMLChildren - Enumerates the child node descriptors for the specified XML node
  • GetXMLAttribute - Retrieves the content of an attribute in the specified XML file
  • ReadIni$ - Reads a parameter in the specified INI file
  • SetXMLAttribute - Modifies or adds an attribute in the specified XML file
  • WriteIni - Writes to the specified INI file
Flow control functions
  • #ErrorCode - Gives the error code sent by the function which causes the error
  • #ExecTimeout - After this timeout, execution of the script is stopped
  • #LastErrorLine$ - Gives the script line number where the error occurred
  • #ScriptAfterTimeout$ - Specifies the script to run after timeout  
String Management functions
  • Encrypt - function encrypts the specified string
System functions
  • Allocate - Reserves a memory area for data used by external DLL
  • DeleteRegKey - Deletes the specified key in Registry
  • DeleteRegValue - Deletes a value in Registry
  • External - Calls an external DLL
  • External$ - Calls a Windows DLL
  • GetCpuLoad - Returns the CPU load percentage
  • GetMemUsage - Returns the memory used percentage
  • GetProcessCpuLoad - Returns the CPU percentage used by a process
  • GetProcessList - Gives the list of active process and their attributes
  • GetWindowsList - Gives the list of parent window names present on desktop
  • ImpersonateUser - Allows WinTask to acquire additional rights
  • KillApp - Terminates the specified application
  • KillAppChildren - Terminates the specified application and its child processes
  • KillProcess - Kills the specified process
  • PeekInteger - Reads one or several bytes in memory and returns an integer
  • PeekString$ - Reads a string in memory
  • PokeInteger - Writes in memory a value of type integer or Unsigned
  • PokeString - Writes in memory a string
  • ReadIni$ - Reads a parameter in the specified .INI file
  • ReadReg - Reads an integer or a string from Registry
  • RevertToSelf - Cancels an impersonation made previously by ImpersonateUser
  • SendEmail - Sends an email using the defined SMTP server
  • WriteIni - Writes in the specified .INI file
  • WriteReg - Creates or modifies a string or numeric value in Registry
Clipboard and log functions
  • Comment - Writes a comment in the log file
  • LogFile - Forces the script to log its actions in the specified logfile
  • StopLog - Stops recording in the logfile 
Com port management functions
  • CloseCom - Closes the specified com port
  • OpenCom - Opens the specified com port
  • ReadCom - Reads the data in com port buffer
  • WriteCom - Writes data in the com port buffer
Services management
  • IsServiceStarted - Tells if the specified service is started or not
  • StartService - Starts the specified service
  • StopService - Stops the specified service
Web functions
  • CopyLink - Copies the link associated with the specified HTML element into the specified string
  • ExistHTMLElement - Checks if the specified HTML element exists or not
  • ExtractLink - Returns all the links of the child elements of the specificed HTML element
  • GetFrameSource - Retrieves the source of the specified frame
  • GetPageSource$ - Returns the source of the current web page
  • SelectedHTMLItem$ - Returns the selected item in an HTML list/combo
  • WriteHTMLEncrypted - Writes encrypted text in a Web form 
Response time functions
  • ResetTimer - Resets the specified clock
  • StartTimer - Starts the specified clock
  • StopTimer - Stops the specified clock
  • Timer - Returns the value of the specified clock
ODBC functions
  • #DbDateFormat - Controls the date fields format
  • DbBof - Tells if recordset contains no records
  • DbClose - Closes the recordset
  • DbConnect - Establishes the data source connection through the odbc driver
  • DbDisconnect - Closes the data source connection
  • DbEof - Tells if pointer is at the end of the recordset
  • DbExecute - Executes an SQL command on the opened data source
  • DbGetFieldNumeric - Retrieves the value of a numeric field in a recordset
  • DbGetfieldString - Retrieves the value of a string field in a recordset
  • DbMove - Moves the current record pointer within the recordset at specified position
  • DbMoveFirst - Positions the current record on the first record in the recordset
  • DbMoveLast - Positions the current record on the last record in the recordset
  • DbMoveNext - Positions the current record on the next record in the recordset
  • DbMovePrev - Positions the current record on the previous record in the recordset
  • DbRecordCount - Returns the number or records in the recordset
  • DbSelect - Fills the recordset by retrieving in the table the records matching the sql query
OCR functions
  • CaptureOCR$ - captures what is seen in the specified window, OCRizes the content and returns the text as analysed by the OCR engine
  • CaptureAreaOCR$ - captures what is seen in the specified area of the specified window, OCRizes the content and returns the text as analysed by the OCR engine
  • UseOCREngine - specifies which OCR engine will be used by subsequent OCR function calls
Additionally, there are a few differences in internal limits between WinTask and WinTask Lite.

For WinTask:
  • Maximum number of procedures/functions: 500.
  • A script cannot contain more than 32 local variables.
  • A script cannot contain more than 1000 variables.
  • A script cannot contain more than 128 arrays.
  • Maximum size for an array is 65535 elements (so from 0 to 65534).
  • Maximum number of parameters that can be passed to a procedure/function is 16.
  • A script cannot contain more than 64 OnAction statements.
  • A maximum of 5 Include levels is allowed.

For WinTask Lite:
  • Maximum number of procedures/functions: 100.
  • A script cannot contain more than 32 local variables.
  • A script cannot contain more than 200 variables.
  • A script cannot contain more than 64 arrays.
  • Maximum size for an array is 65535 elements (so from 0 to 65534).
  • Maximum number of parameters that can be passed to a procedure/function is 16.
  • A maximum of 5 Include levels is allowed.