eggPlant Functional v15 Release Notes
The notes below provide descriptions of the new features and changes introduced with each release of eggPlant. You are strongly encouraged to read about the relevant changes whenever you upgrade from an earlier version.
Potential compatibility issues are highlighted in RED
.
Compatibility
- Mac OS X 10.7, 10.8, 10.9, 10.10
- Windows 7, 8, Server 2008, Server 2012
- Linux 32-bit Debian and RedHat based on glib 2.11 and above
64-bit distributions must have supported versions of all dependent 32-bit libraries.
Notes For Cross Platform Users:
eggPlant for Linux and Windows contains almost all of the functionality available in eggPlant for Mac. Excluded features are listed at the bottom of the release notes.
List of Release Notes
Following is a list of the release notes provided below:
Release v15.20 (18-August-2015)
Release v15.13 (27–April-2015)
Release v15.11 (26-March-2015)
Release v15.10 (03-March-2015)
Release v15.02 (19-January-2015)
Release v15.01 (19-December-2014)
Release v15.00 (2-December-2014)
Release v15.20 (18-August-2015)
Highlights
- New SenseTalk Browser that includes descriptions, templates, and documentation links for common scripting terms.
- Auto-completion of punctuation, control structures, and SenseTalk language elements in the script editor.
- Capability to create custom code Snippets as part of the SenseTalk Browser.
- Variable Watcher allows you to view and edit variable values during script execution.
- Table tests now support Data Driven execution to iterate over values stored in a CSV table.
- Ability to refactor scripts by extracting sections of code into a new script.
Connection Improvements
- Windows RDP now uses significantly less CPU on Windows.
- Values specified in Connect commands or by using command-line arguments now take precedence over existing values in the Connection List.
- Built-in Android Server 2.6 is included in eggPlant Functional 15.20. iOS Gateway 2.6 is forthcoming.
- Added options for Mobile VNC connections to scale the remote screen size down. Optionally allows scaled screens to be blended (for compatibility with older VNC servers). Note: Requires iOS Gateway 2.6 or Android Server 2.6.
- Added Reboot command for mobile connections. Note: Requires iOS Gateway 2.6 or Android Server 2.6.
- Added KillApp command to terminate mobile apps. Note: Requires iOS Gateway 2.6 or Android Server 2.6.
- Added SUTinfo() function for Android devices. SUTinfo returns a property list of information about a connected Android device. Properties include: type, device_os_version, and device. Note: Requires Android Server 2.6.
User Interface Improvements
- The Run window now has a Variable Watcher in which you can watch variable values while a script is running. Options include the scope of variables shown and the frequency of variable updates (continuously or only when the script is paused).
- You can now click script and image names to edit them inline on Windows, rather than having to use the Rename menu item.
- The Ad Hoc Do Box (AHDB) in the Run window will now expand when multiple lines of text are entered into it.
- In the Scripts list, you can enable a color indicator to show which scripts are enabled for Table Actions.
Scripting Improvements
-
Tables can now specify an optional CSV Data File. When specified, the table actions will be repeated for each row in the file. The first row must contain column headers. Values for each column can be used in the Arguments or Expected Value field by using $HEADER_NAME.
-
Tables can now specify the return value from previous lines for use in Arguments or Expected Value fields. You can refer to the results of particular lines with #LINE_NUMBER, or use #prev for the immediately preceding line.
-
Auto-completion of punctuation, control structures, and SenseTalk language elements in the script editor. Options include parentheses, quotes, commas, curly braces, square brackets, if statements, repeat statements, handlers, script names, local variables, image names, and SenseTalk keywords.
-
The answer command has been extended with
from list
,multiple
, anddefault answer
options. Example:answer "What would you like to drink?" from list ("Coffee", "Tea", "Cocoa", "Water”) allow multiple default “Coffee”
-
Capability to refactor script by extracting sections of code into a new script. To extract code to a new script, select the code, right click, and select Extract New Script in the drow-down list.
-
Added an assert command. When an assert command is executed, eggPlant logs success, failure, warning, or an exception. To improve readability, you can insert the word “that” into an assert command. Example:
assert that x > 10
Several properties govern the behavior of the assert command:
- The assertionBehavior property currently defaults to Exception. It can also be set to Error, Warning, or Pause to establish the default behavior for any assert commands that don't specify a behavior. When the behavior is "Pause", a logWarning occurs and the script will pause in the debugger on the line following the assert command.
- The assertionPassCount, the assertionFailCount, the assertionErrorCount, the assertionWarningCount, and the assertionExceptionCount are global counters that are incremented as appropriate each time an assert command is executed. Each failure will increment both the assertionFailCount and also one of the error, warning, or exception counters.
- The assertionsEnabled property defaults to True. If set to False, assert commands are ignored and never executed.
-
For Linux: Image names are now treated as case-insensitive when used in standard eggPlant image commands. Local file operations will still defer to the case behavior of the local file system.
Bug Fixes/Tweaks
Connections
- Fixed some issues where a screen size change would not be properly detected at the script level.
- Fixed some problems where the connection list did not update with connections made from scripts.
- Fixed some problems getting a range exception when working in the connection list.
- Fixed a problem with the Bonjour discovery preference not being honored.
- Fixed a problem where RDP connections couldn’t be re-established after the connection was closed externally.
- Fixed a problem making some RDP connections from the command line.
- Added support for WindowsAltKey to RDP connections.
- Fix mapping of F11 for RDP connections.
- Corrected an issue where local Android device names and serial numbers could fail to display correctly.
- Properly display names of eggCloud devices.
- Fixed a problem with reservations from eggCloud reporting the wrong time.
- Resolved an issue with very slow start-ups when the configured eggCloud server couldn’t be reached.
- Fixed a problem where connecting to an eggCloud SUT using a rule would sometimes connect to the wrong SUT.
Scripting
- Fixed a crash that could occur when closing a suite while a Table Test was running.
- Fixed several formatting issues in the Tables with values overflowing their cells.
- Fixed a problem where Tables could become disassociated with the scripts they were calling.
- Fixed a problem with TypeText HomeButton.
- The RemoteWorkInterval will now be checked before Pinches take place.
- Attempting to copy files to/from a SUT will now throw an error if there is no connection.
- Dramatically improved memory usage with OCR commands.
- Fixed an occasional timing issue when specifying ValidWords for an OCR search.
- Better error messages when attempting to perform an invalid OCR operation.
- Fixed a problem where very long return values (e.g. from a URL read) would not be displayed properly on Windows.
User Interface
- Deleting all logs for a script will now remove the script in the Results list.
- Much better recording of Drag and Drop events in Turbo Capture mode on Windows and Linux.
- Fixed a problem opening results in other Suites from Schedules.
- Fixed a problem where aborted Schedules would show scripts with a success status.
- Fixed a problem where tolerant images would display as if they had the Pulsing search type selected.
- Fixed a problem where the hot spot would be re-set to the middle when an image was recaptured using the Update Image Panel.
- Images fixed using the Discrepancy Search in the Update Image Panel will now use absolute pixel values rather than a percentage.
- Fixed a problem saving recaptured images to a helper suite from the Update Image Panel.
- Fixed a problem where the last line of a script was ignored by the Trace feature.
- Cleaned up many formatting issues in the Preference Panes.
Miscellaneous
- Added a Copy To Clipboard button for the Host ID in the license panels.
- Fixed a problem on some Linux distributions where external files and URL resources wouldn’t open properly.
- Fixed an issue where special CLI licenses were sometimes prioritized ahead of GUI licenses.
Release v15.14 (9–June-2015)
Bug Fixes/Tweaks
- Fixed a problem with reconnecting to remotely terminated RDP sessions.
- Fixed a problem with random numbers in scripts on Windows.
- Added support for ZLIB compression to the built-in Android VNC server.
- Added scaling support to the built-in Android VNC server. Users can specify scaling in their Connect command by passing "--scale-screen RATIO" in the AdditionalArgs argument.
- Fixed a problem in the built-in Android VNC server that occurred when connecting and disconnecting repeatedly.
Release v15.13 (27–April-2015)
Bug Fixes/Tweaks
- Added a GUI control in preferences to select the version of ADB.
- Improvements to automatically deployed VNC server for Android.
- Fixed a condition in the Connection List that could result in connecting to the wrong SUT.
- Fixed a problem connecting to Android devices where the connection was prematurely closed by the host.
- Dramatically improved the Suite Search field on Windows when many images are present in the Suite.
- Fixed a problem with ad hoc eggCloud reservations not extending automatically.
- Changed Windows to not stop the ADB server to facilitate testing multiple simultaneous devices. (Not recommended with ADB 1.0.31.) ADBStopServerOnQuit
Release v15.12 (6–April-2015)
Bug Fixes/Tweaks
-
Added logic to work with a wider selection of Android devices across multiple versions of ADB. By default, ADB version 1.0.31 is used.
-
You can switch to the newer version of ADB (not compatible with some older devices) by issuing this command:
defaults write Eggplant ADBVersion "1.0.32"
(Mac/Linux)defaults.bat write Eggplant ADBVersion "1.0.32"
(Windows)
Release v15.11 (26-March-2015)
Highlights
- eggPlant Functional now includes a built in VNC server for Android devices. It will be installed when connecting to devices if a VNC server is not already present.
- Improved integration with eggCloud servers.
User Interface Improvements
- Improvements to the Table GUI and placeholder tokens.
- Dramatically improved performance of Find and Replace on Windows.
Connection Improvements
- Added the ability to use domain\username with RDP.
- Fixed a crash when RDP connections fail unexpectedly.
- Corrected a problem launching eggOn app for Android via USB.
- Addressed an issue connecting to multiple Android servers that were using the same port.
Scripting Improvements
- Made ranges evaluate correctly when different units were used for the endpoints.
- Fixed a problem where predefined variables would not act as empty when they were modified.
- Normalized the line ending when reading text at a point and at a rectangle.
- Fixed a problem archiving property keys with non-identifier characters.
Bug Fixes/Tweaks
- Corrected an issue where licenses were not released when eggPlant Functional was run from the command line or terminated abruptly.
- Fixed problems where the RunHistory.xml file could become corrupted.
- Fixed problems with eggPlant Functional responding sluggishly/not responding.
- Fixed a problem reading non-ASCII characters from databases.
- Provide feedback if Bonjour/Zeroconf is not enabled.
- Fixed a hang when a connection drops during a CaptureScreen.
- Cleared an exception that could occur with Show Image Usage.
- Fixed a condition that could occur when using the ValidWords property on a text image search.
- No longer update the SuiteInfo file if we haven’t modified script metadata.
Release v15.10 (03-March-2015)
Highlights
- New commands to copy files and upload applications to mobile servers.
- Support for Pinch gestures in iOS Gateway.
- New commands to set iOS Device Orientation.
- Added VNC Server Discovery for servers that advertise via Bonjour/ zeroconf. (Previously Mac only)
User Interface Improvements
- Added the ability to specify the resolution of an RDP session in the connect interface.
- Added a checkbox to "Save Password" when making a connection.
- Tables now allow you to define ACTIONS from scripts with spaces in their name.
- Prevent saving scripts and images with invalid characters in the name (like Colon or Quote).
- Added the ability to specify an eggCloud port number in the preferences.
- Vertical and horizontal Toolbar settings are now saved between sessions.
Scripting Improvements
- Added the commands for PinchOut/PinchIn to invoke zooming on a multitouch device. You can specify just a point, a point and a distance, or two points. Please see the documentation for a full description.
//Zoom in on an image with default duration (2 seconds):
PinchOut (At:"MyPhoto")
// Zoom out from a point for 300 pixels:
PinchIn (At:(500, 500), Distance:300)
// Zoom in using two image points
PinchOut (At:"LEFT_SIDE", To:"RIGHT_SIDE")
- Added commands to RotateLeft, RotateRight, SetDeviceOrientation and GetDeviceOrientation(). These commands give you full control over mobile device orientation. Please see the documentation for a full description.
SetDeviceOrientation "Landscape"
put GetDeviceOrientation()
- Added the ability to copy files to/from the iOS Gateway. Use the copy file … to … syntax with sut: before the filename to indicate a remote file.
copy file "/Users/jonathan/MyFile.txt" to "sut:/tmp/MyFile.txt"
- Added the ability to install and sign applications to iOS Gateway controlled SUTs. Use the InstallApp command, which takes the ApplicationPath key as a reference for the file to install. It can begin with sut: to specify a file on the iOS Gateway machine. Optionally you can also specify a mobile provision file with ProvisionPath to use to resign the application. Again you can use sut: to specify a file on the iOS Gateway machine. Finally, CertificateName must be a valid Certificate Name that has been stored in the keychain on the iOS Gateway machine.
installApp (applicationPath:"/Users/paul/Desktop/YetAnotherSampleApp.ipa", provisionPath:"sut:/Users/paul/Library/MobileDevice/Provisioning Profiles/0c7acd92-b4fc-4295-9938-58b759287d3f.mobileprovision", certificateName:"iPhone Developer: Paul Landers(7JZCTVR53Z)")
- Added new archive() and unarchive() functions which can be used to produce an archival text representation of any SenseTalk value and to efficiently restore the equivalent value from such an archive. The archive format spreads list values and property-list properties across multiple lines, making it more human-readable than the format produced by the standardFormat function (which is always on a single line), and the unarchive function is more efficient than the value function at reading it again (although value() can also be used to restore a value from the archive format).
put archive of complexData into file "/tmp/archive.txt"
put unarchive of file "/tmp/archive.txt" into restoredData
- Improved performance of the put … after command when used to append text or data to a file.
- The units property of a value may now be set to a complex unit. Previously, only a simple unit was supported:
put 8 into bar
set bar's units to "ft"-- this worked previously
set bar's units to "cubic ft / second"-- this works now
- Added a new ‘units(expr)’ syntax for units. This allows a variable or expression to supply the units for a value.
set measure to "ft"
set length to 5 units(measure) -- sets length to 5 ft
- Fixed a problem with setting and retrieving built-in properties (such as format or units) of a property in a property list.
set invoice to (number:1, date:the date)
put the format of invoice.date-- to show value, not format
set the format of invoice.date to "%Y %A %d"
- Improved the formattedTime() function to be able to interpret its second parameter correctly as a date/time if it is given in the format shown by the format string, even though it is not one of the usual formats included in the timeInputFormat global property.
set displayDate to formattedTime("%A %B %d", "Friday April 3")
Bug Fixes/Tweaks
- Fixed several memory problems related to the Update Image Panel that could lead to crashes and unexpected behavior.
- Fixed crashes on Windows when using RDP from CLI without the user having a proper %HOMEPATH% (i.e. Jenkins)
- Fixed several inconsistencies with the Team License Server reporting of which licenses are in use.
- Fixed a problem with how renamed scripts were handled by the Tables and Results system of the Suite.
- Fixed a problem with Clipboard sharing in Live mode using eggMan.
- Fixed errors caused when passing whitespace or empty values as ValidWords of an OCR search.
- Fixed a problem where negative values for the repositionPoint were not properly honored.
- Updated ADB to use the newest version.
- Fixed a problem with incorrect content-length specifications from eggDrive with non-ASCII characters.
- Fixed a problem where you could start a recording while a script was running.
- Fixed a crash when inserting text before and after a string at the same time.
- Added some improvements for Text-Image-Generation to handle the the Error: No Error exception.
- Fixed some problems Removing All Breakpints.
- Fixed a problem with any predefined variable whose value is a list or a property list not being correctly treated as a list or as a property list in some contexts.
- Fixed a problem calling ScriptResults when the script was called from a Table.
- Fixed the standardFormat for data, color, and date/time values.
- Fixed the join command and joined by operator to correctly treat a range as a list and join its values.
Release v15.02 (19-January-2015)
User Interface Improvements
- Added the ability to reorder actions in Tables for keyword-driven testing.
- Added the ability to drag-and-drop images into Tables.
- You can type the name of a script to select it within a suite.
Scripting Improvements
-
Fixed a problem where the last line of a script was not traced.
-
The in option of the
read
command can now also be specified as timeout, timeout in, or time out after. -
Fixed the
sin()
,cos()
, andtan()
functions to properly handle parameter values in rotational units other than radians. Updated theatan()
function to return a value with units of radians (which can easily be converted to degrees or other units of rotation).put sin(90 degrees) — 1
put atan(1) as deg — 45 degrees
-
Fixed the
diskSpace()
function, the size property of a file or folder, and the memorySize and physicalMemory properties returned by thesystemInfo()
function to return values with units of bytes (which can easily be converted to gigabytes or other units of dataSize). -
Fixed a bug with the
URLDecode()
function that would hang or throw an exception if called with a string containing a percent sign (%) not followed by two hexadecimal digits. -
Fixed a bug that would throw an exception for some forms of the
delete
command that resulted in an empty string. For example,put "a" into foodelete "a" in foo
— this worked fine.
put "a" into foodelete the first "a" in foo
— this would throw an exception.
-
Added
boxListFormat
,jsonListFormat
, andstandardListFormat
predefined variables, which can be used to conveniently set the listFormat.
Bug Fixes/Tweaks
- Fixed a problem with RedHat 6 package.
- Fixed a problem that would cause eggPlant Functional to run out of memory with large Turbo Capture sessions.
- Fixed a crashing issue that could occur when interacting with scripts or schedules in a suite.
- Fixed a number of problems where Undo could cause a crash.
- Fixed a problem where quitting cleanly after reading text using OCR.
- Fixed a persistent memory leak when eggPlant Functional was running in drive mode.
- Fixed a problem calling a script as the first action in a Table from the CLI.
- Fixed an occasional hang on Linux when running scripts.
- Fixed an exception editing script info.
- Cleaned up some fatal exceptions when the Global Results Directory did not exist.
- The UI no longer prompts for a password when a script fails to connect.
- Dragging a script into a Table will no longer open it in the GUI.
- Fixed a hang in specific circumstances using URLDecode.
- Fixed several cases of "NSCharacterConversion" exceptions.
- Fixed forms of the
delete
command that threw exceptions. - Fixed several issues with Chinese UI screens.
Release v15.01 (19-December-2014)
RDP Improvements
- Added Type property to
ConnectionInfo()
to be able to identify RDP connections in scripts. - Fixed hangs in some situations when making RDP connections on a Windows machine.
- Fixed crashes when reconnecting to the same RDP connection repeatedly.
- Improved Clipboard support for RDP sessions on Windows and Linux.
User Interface Improvements
- Improved argument handling when hitting Tab while working in Tables.
- Improved the formatting of the Actual Value when receiving multiline values.
- Fixed some focus issues with the Turbo Capture image rectangle.
- Fixed a problem picking Table Actions from helper suites on Windows.
- Automatic Image Naming preferences is now also honored in Turbo Capture mode.
- Fixed performance problem with Table image selector for suites with thousands of images.
- Improved behavior when updating the final image in a Turbo Capture session.
- Fixed some issues changing script and table names.
- Added the ability to delete a table from the UI.
Scripting Improvements
- Improved the OCR ValidPattern to automatically include other marks in the pattern (like percent symbol: %).
- Dramatically improved execution time on scripts that had thousands of posted results.
- Fixed a problem where minutes were treated as seconds.
- Fixed a problem where username and password in a property list were not always honored for RDP connections.