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.
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.
Release v14.21 (14-August-2014)
- Zoom To Actual Size menu item. Added a command to return the Viewer window to it’s standard size.
Bug Fixes / Tweaks:
- Fixed a problem with detecting Android USB devices on Windows.
- Fixed a problem where capturing to a new image collection that preventing saving an image.
- Made the window zoom-in towards the capture area instead of the corner.
- Improved UI of eggMan welcome screen for clarity.
- Fix a problem with toggling back to Live mode when the Capture mode Guide was present, also added the ability to close the Capture Guide.
- No longer present an Update Available panel when running eggPlant with the -RunOnLaunch option to start a script immediately.
- More consistent display of the product name when running eggMan vs eggPlant Functional.
- Fixed a problem hitting an Internal error when starting an image search while the Image Doctor was already searching.
- Fixed a problem trying to call Omega13 before a suite had been set, particularly when using eggDrive.
Release v14.20 (4-August-2014)
Zoom In/Out in the Viewer window
New script commands/functions for use with mobile devices
Introductory Help for new users
Numerous bug fixes
- Zoom In/ Zoom Out menu items. Added these zoom commands to the Control menu, enabling you to zoom in and out in the Viewer window.
Enhanced Mobile-Device Control:
- PressHomeButton and PressBackButton commands, which press the respective button on mobile devices. (Note: In older versions of Android, the PressBackButton command presses the menu key.)
- ADBCall function for Android.This function enables you to make Android Debugger (ADB) calls from eggPlant Functional, and returns the output of those calls.
- LaunchApp command for iOS Gateway. This command launches a given app on a device connected through iOS Gateway.
- Mixed fractions like "6 5/8" are now supported provided there is a single space character between the whole number and the fraction and no spaces around the '/' character.
- put 1 3/4 is 1.75 -- true
- Added the ability to include underscores ('_') in numeric literals to separate groups of digits for greater readability.
- put 1_000_000 is a million -- true
- Numbers can now be expressed in scientific notation without a '+' or '-' before the exponent. If no sign is given, a positive exponent is assumed (this also applies to the JSONValue() function for evaluating JSON expressions):
- put 1e6 is a million -- true
- put 1.23e6 equals 1.23e+6 -- true
Bug Fixes / Tweaks:
- Fixed a problem where eggPlant Functional could hang on the Update Image panel.
- Fixed a SenseTalk crash related to internal caching of named objects (most commonly script files on disk).
- Fixed a problem that could cause eggPlant Functional to crash when running a script with a large block quotation.
- Fixed a problem that could cause the OCR to fail when reading text at a point.
- Fixed a problem that caused aborted scripts to be recorded as failures when the Update Image panel was triggered.
- Fixed a problem that caused eggPlant Functional to incorrectly report that an image contained no searchable pixels.
- Fixed a problem that caused aborted scripts to be recorded as failures when the Update Image panel was triggered.
- Fixed a problem that caused breakpoints in the Run window to be ignored.
- Fixed a situation in which users could not use their maximum number of eggPlant Functional licenses.
- Enabled the JSONValue function to handle numbers in scientific notation without a sign on the exponent.
- Enabled mobile commands such as Tap to trigger Omega13 script recovery.
- Made several improvements to the way eggCloud SUTs are shown in the Connection List.
Release v14.12 (12-May-2014)
- Setting the ScriptLogging to Off now continues to show TestCase logs, it can be disabled by setting the logging to Silent or Minimal.
- Added support for using the Alt-GR key (Right Alt Key) for auxiliary keyboard functions. If you prefer having a right hand Alt modifier key please set the following preference
defaults write Eggplant USE_ALTGR_FIX 0
Bug Fixes / Tweaks:
- Fixed a problem where License Expiration warnings could not be dismissed.
- Fix a situation where eggPlant could hang when capturing an image.
- Fix a problem where Chinese licenses would not properly load the Chinese UI.
- Fixed a problem calling runscript on Linux where quoted values might not be properly passed resulting in argument confusion.
- Improved eggCloud automatic reservations to reserve for an extra block if the current block was just about to expire (less than 1 minute).
- Fixed a problem where very deeply nested scripts would display incorrectly in the Schedules Panel.
- Several fixes to icons and colors on Linux systems.
Release v14.11 (27-April-2014)
Toolbar buttons for the HomeButton and RotateMobile commands
Additional image preview in script results
Several bug fixes
- RotateMobile and HomeButton Toolbar Items. Added toolbar buttons that insert
TypeText HomeButtoncommands into your script.
- Image Previews for Images that Were Not Found. It has been the case that when you click on a line that references a found image in your script results, a preview of that image is shown. Now that same behavior also applies to lines that reference an image that was not found.
- Fixed an issue that could cause eggPlant on Mac to not properly report a Tolerant image search type.
- Fixed an issue where an expiring license warning could show up BEHIND the splash panel, which made it appear that the launch had hung.
- Fixed an issue on Windows and Linux where a Suite would store it’s default Results directory as a Results OVERRIDE (which would then persist if the suite was moved or copied).
- Fixed an issue that could cause eggPlant to crash when you were saving a new image.
- Fixed an issue that could cause eggPlant to hang when the Update Image panel opened.
- Fixed an issue that would cause eggPlant to falsely report that it had previously crashed.
- Changed the behavior of full-screen VNC refreshes. Previously, eggPlant could close and re-open your VNC connection on a full-screen refresh; this is no longer the case.
- Fixed an issue that was causing the Connection List filter to not work on Windows and Linux systems.
Release v14.10 (10-March-2014)
Update Image Tools for Retraining Scripts.
Automatic Detection of WaitFor times.
Deeper integration with eggCloud (v1.1.5).
Enhanced Remote Screen Window for Mobile Devices.
Update Image Menu. Added several new features to make it easier to update the images in your scripts. Use the Run > Update Image menu to control Image Doctor settings (now expanded) and new options for updating images:
What to do when multiple occurrences of an image are found
What to do when an imageFound function returns false
Whether or not to validate every image search, successful or not
Update Image Panel. Expanded the former Image Doctor panel with the following features:
An OCR search heuristic, which reads text in your image and attempts to find instances of that text on the screen
A Prior Location heuristic, which shows where your image was last found in a completed test.
The New Representation field, in which you can set a suffix with which to auto-name new images added to collections
The Properties feature, which shows the properties that are being used for your current image search, including the default properties of your image, and properties that are overridden at the script level.
Diagnostic Menu. This new menu allows you to choose the image-searching heuristics that are used in the Update Image Panel.
Mark Prior Result. From within a Scripts Results panel, you can mark which run you want to use as your “Prior Result” for use by the Prior Location Heuristic on the Update Image Panel.
Vertical Remote Toolbar. We have replace the obsolete “Mobile Drawer” with a vertically formatted toolbar that allows much better access on portrait-layout Mobile devices (iPhone and Android).Additionally we
Insert Repeat Loops. From the Script Insert tool you can highlight a block of your test script and create a repeat loop around the section.
insert test cases. Also from the Script Insert tool you can highlight a block of your test script and turn it into a TestCase.
Image Backgrounds. Added background colors for image previews in the suite editor and Save panel, click to cycle through backgrounds.
eggPlant 14.10 REQUIRES eggCloud 1.1.5 or higher for proper integration
Ad-Hoc Reservations. You can now double-click on any available (not reserved) SUT to create an ad-hoc reservation.
Automatically Extend Reservations. You will now automatically extend an connected SUT reservation if the device is still available when your reservation ends.
Scripted Connections. Connect to a SUT by defining a set of properties.If a device is available (or you have a matching reservation) that device will be used. EG:
WaitFor property. WaitFor can now be a property of any image-searching command. Like the WaitFor command, the WaitFor property is the maximum time eggPlant will wait for the given image to appear on the SUT. Example:
Click (image: “Done_button”, waitFor: 2 minutes).
Automatic WaitFor time calculation. When you capture an image and generate a script command, eggPlant now automatically inserts a WaitFor property in the command if there was a significant delay detected before the image appeared on the SUT.
Support for Additional Image Formats. We now support the following image formats on all platforms: .tiff, .tif, .png, .icns, .ico, .gif, .bmp, .jpg, .jpeg.
Default Data Format. Added the DefaultDataFormat global property, which determines the format of BLOB data in scripts. Valid settings are auto, text, hex, base64, and size. The auto setting uses hex for shorter values and size for longer values. The text setting maintains backward compatibility.
The predefined variables yes, no, on, and off are now treated as native boolean values. This allows the equal operator to compare them as equal to true or false (when Normal boolean comparison is in effect, see below).
Added the booleanComparison global property. When set to Normal (the default), this now allows the values Yes and On to compare as equal to True (or each other) and Off and No to compare as equal to False. Although Empty is treated as a valid boolean value (equivalent to False) it will not compare as equal to False. If the booleanComparison is set to "Strict", the values Yes, No, On, and Off will compare as strings, and thus will not be equal to True or False. If the booleanComparison is set to "Lenient", any value that evaluates to the strings "Yes", "No", "On", or "Off" will be treated as booleans for purposes of equality testing with other booleans.
put Yes is true -- true
set the booleanComparison to Lenient
put "off" = false -- true
Updated the StandardFormat function to properly support the new boolean values.
Enhanced the JSONFormat and XMLRPCFormat functions to work with the new boolean values, and also to correctly handle
<missing value>(null). In XML-RPC missing values are rendered as
<nil />which is not part of the XML-RPC spec but is a semi-common extension used by Python and some other systems. SenseTalk now recognizes
<ex:nil />when reading XML-RPC values and will convert them to
Changed the add properties command and adding properties operator to treat a property of the destination property list whose value is
<missing value>the same as though the property were not there, and replace it with the corresponding source property value.
Enhanced the charToNum and numToChar functions to be able to work with Unicode values greater than 0xFFFF.
Fixed the move file and copy file commands to work correctly when the source file is specified with a path beginning with "~".
Fixed a problem when a recordPrototype property for a database table included properties corresponding to columns in the table, those values would be automatically propagated to the database in some cases.
Added FAILURE tag support to JUNIT logging for better compatibility with JIRA and Jenkins.
Failure to license is no longer considered a crash.
Improved the ability to submit support requests through proxy servers.
Fixed a problem that caused an ADB delay when not connecting to an Android server.
Resolved a problem where eggPlant would not terminate when an Android connection was left open to an Android SUT.
Fixed a problem that could lead to a “Tried to add nil to array” when an Android device was plugged in via USB.
Cleaned up some inconsistencies with the preview text when using the Script Insert tool.
Fixed a variety of problems with running multiple simultaneous Searches using the Image Doctor.
Fixed a problem where eggPlant would pause when mousing over a network resource declaration beginning with a double-slash (//).
Cleaned up several cosmetic artifacts in the preference panes on Windows.
Solved a lock-up problem when closing the suite while generating a command using an existing image.
Cleaned up some display artifacts with the auto-completion tool on Windows.
Resolved a situation when schedule runs completed.
Improved handling of the ClipRectangle property for images.
Resolved a hang when using the Find feature in the Run Window.
Fixed a crash on Mac when trying to SSH to an unavailable port.
Improved behavior of Context Menu in the Connection List.
Release v14.01 (13-November-2013)
- Support for improved eggOn for Android.
- Ability to enter a license from the command-line.
- Numerous Bug Fixes.
eggPlant now supports the ability to enter a license key from the command line by passing the -LicenseKey and -LicenseUser.After applying the license eggPlant will immediately terminate with success condition (0) if the license was accepted.
Eggplant.app/runscript -LicenseKey "xxx-xxxx-xxx" -LicenseUser "zzzzz"
eggPlant/runscript.bat -LicenseKey "xxx-xxxx-xxx" -LicenseUser "zzzzz"
The Connection List now groups eggCloud and Standard connections separately.
Bug Fixes / Tweaks
Fixed a problem on Windows where the URLTimeout property was never honored.If URLs are timing out now, you might need to increase this value from it's default of 30 seconds.
Fixed a bug where negative image hot spots were off by a pixel.
Fixed a bug where Precise image search type was not honored when an image was reloaded.
Fixed a problem on Mac OS X 10.9 where Gatekeeper would not recognize eggPlant's signature.
Fixed a problem restarting Android VNC servers connected through USB.
Fixed a bug with autocomplete would sometimes insert a stray
<CR>character into the script.
Corrected an NSInternalInconsistencyException on Windows during socket communications (including Drive mode).
Fixed a bug where the screen capture buffer doesn't refresh properly after an exception is thrown.
Release v14.00 (24-October-2013)
- Added Database Integration via ODBC
- Automatic Image-Naming for images with Text.
- New Rotated Image Searching
- Introduced new Mobile Commands
- Connect List Filtering and Other Improvements
Mac OS X 10.7, 10.8, 10.9
This release is compatible with Mac OS X 10.7 and higher, Mac OS X 10.6 and below are no longer supported.
Windows XP, 7, 8
This release is compatible with Windows XP, 7 and 8.Please be aware that releases AFTER April 8th, 2014 will drop Windows XP compatibility.
Linux Debian, RedHat
This release is compatible with 32-bit versions of Debian and RedHat based on glibc 2.5 and higher.64-bit distributions must have supported versions of all dependent 32-bit libraries.
ODBC Database Integration
Added the capability to read to and write from available ODBC databases. See the eggPlant documentation for complete usage and instructions.
Auto Image-Naming. Now, when you capture an image, text that is detected in the image becomes the default image name.You can disable this behavior in the the eggPlant->Preferences->Viewer.
Image Capture. Has now been improved with capture handles, dynamic cursors to indicate resizing and the following modifier keys can be use:
- Arrow KeysMove The Capture Area
- +Ctrl/CommandMove The Hot Spot
- +Alt/Option Enlarge/Shrink the Capture Area
- +ShiftMove In Increments of 10
Image Scaling and Rotation. The Image interface now allows you to specify the default scale and rotation values to use when an image is searched for. This value can be overridden in a script.
- Auto completion in scripts has been added for Windows and Linux versions of eggPlant.You can trigger completion by hitting the Escape key or selecting "Edit->Complete" from the Menu.The editor will attempt to complete your statement with a valid eggPlant Command, constant image name, script name, or variable from your current script.
Image-Popover preferences. Added preferences to all users to turn enable and disable image popovers, both in the image list and in scripts.
eggCloud preferences. Added a preference panel to connect to an eggCloud installation.
The Connection List now has a filter field to narrow down the connections shown by display name. If you are using the eggCloud device-reservation system, you can also filter the Connection List by SUT operating system, version, and meta tags.
The Connection List now will now show devices available from an authenticated eggCloud system. You are able to create reservations and connect to reserved devices directly from the connection list.
The Add/Edit Connection panel now has a Connect button. When you click the Connect button, a connection is immediately established.
The Add/Edit Connection panel now has a Remember This Connection checkbox, which is selected by default. When this checkbox is selected, your current connection is permanently saved in the Connection List; otherwise, the connection is removed at the end of your eggPlant session. Temporary connections are shown in italicized text in the connection list.
Connections made from a script and reverse connections are no longer automatically saved in your Connection List.
You can now choose the columns that you want to view and hide in the Connection List. From the Connection menu, use the Customize Columns submenu to select the items you want to see.
The current RecordMovie command on Mac OS X is now deprecated.The command can still be called but it will not be supported on future versions of Mac OS X.A replacement movie technology will be available in a future release of eggPlant.
For scaled image searching we now provide TWO modes of scaling relative to the current SUT size.The mode previously named scale: "Auto" is now called scale: "Proportional" to clarify that it will scale proportional to the smaller change in SUT height or width.To scale an image to the SUT height and width independently use scale: "Stretch".
Added swipe commands (SwipeUp, SwipeDown, SwipeLeft, and SwipeRight) that mimic touch-screen swipe actions better than DragAndDrop. The global property theSwipeSpeed** corresponds to the conventional MouseDragSpeed.
Added other mobile commands that behave the same way as their conventional counterparts:
Tap = Click
DoubleTap = DoubleClick
Press = MouseDown
Release = MouseUp
•You can now add a Rotate property to an image search, to indicate a degree of rotation (or list or range of degrees) if you expect an image to appear at a different angle than was originally captured. Rotation is clockwise.
Click (name: "appIcon", rotate: 180) // Searches for appIcon at 180 degrees from its original angle
Click (name: "appIcon", scale: 45 to 90 by 5) // Searches for appIcon tilted 45 to 90 degrees, in 5 degree increments
We now have a function SuiteInfo() that returns the following formation about a Suite:
Name: the name of the suite
Path: the full path of the suite
ScriptsFolder: the path of the Scripts folder
ImagesFolder: the path of the Images folder
ResultsFolder: the path of the Results folder
Version: the eggPlant version number of the suite (usually the version of eggPlant that created the suite)
Description: the description of the suite as entered on the Settings tab of the suite
•Added a format, with format, or using format operator to allow specifying a particular format for an individual numeric, date, or data value.
put (13 / 2) with format "00.000" -- displays "06.500"
•Added the ability to access the format property of a variable containing a number or a data value (previously only date/time values could have a format).
put 13 into foo
set the format of foo to "hex"
put foo -- 0xD
set foo's format to "words"
put foo -- thirteen
put "000.000" into foo.format
put foo -- 013.000
put foo's format -- 000.000
•The numberFormat or the defaultNumberFormat property (or the format property of a numeric variable) can now be set to "Hexadecimal" or "Hex" to display numbers in hexadecimal format:
set the numberFormat to "hex"
•Added the defaultDataFormat global property to control the way binary data values are displayed. The defaultDataFormat can be set to any of "auto", "text", "hex", "base64", or "size". In addition, the auto and text formats can include a parameter: "auto: maxHexSize", "text: stringEncoding".
•Added trimAll() function (similar to trim, trimStart, and trimEnd) to remove all whitespace (or other characters) from a text value. This function takes one or two parameters. The first parameter is the source text value to be trimmed. The second (optional) parameter is a text string defining the set of characters that will be removed from the source text. If the second parameter is not given, whitespace and newline characters will be trimmed by default.
•Added keepCharacters() function which removes all characters from text except for alphanumeric characters (letters and digits) or another set of characters that you specify. This function takes one or two parameters. The first parameter is the source text value to be filtered. The second (optional) parameter is a text string defining the set of characters that will be kept in the source text. If the second parameter is not given, letters and digits will be kept by default.
•Fixed expressions of the form a.func(b) or a's func(b) to work when a is a variable. Previously, expressions of this form worked when a was a number or a literal, but not a variable. Either syntax is equivalent to calling func(a,b).
•Added a new syntax for comparing two values for equality: val1andval2are equal.
put 5 * 3 and 15 are equal
put "CAT" and "cat" aren't equal considering case
•Added the same as as a synonym for equal or equal to. The following all report 'true':
put 5 * 3 is the same as 15
put 4 + 6 isn't the same as 2 * 12
put "cat" and "dog" are not the same
•Changed the standardFormat() function to use square brackets rather than curly braces for lists.
HotSpotScaling. Added the HotSpotScaling global property, which determines whether image hot spots are scaled when you search for a scaled image. The values are as follows:
Inner. Inner works the way hot spot scaling has worked in the past: if a hot spot is within the searchable pixels of an image, it is scaled with the image. If the hot spot is offset from the image, it is not scaled. Inner is the default value of the HotSpotScaling.
All. Hot spots are always scaled proportionally when you search for a scaled image.
None. Hot spots are never scaled when you search for a scaled image.
Ask/Answer behavior. When Ask or Answer commands are called in a script run from the command line, they will now act as though they had been called with a timeout parameter that timed out immediately. When Ask File or Answer File commands are called, they will act as though their Cancel button had been clicked. The previous implementation was undefined (it would behave differently in different environments), but it can be restored by using:
default write Eggplant oldCommandLineAskAnswerBehavior YES
BooleanComparison. Added the booleanComparison global property, which offers choices of how boolean values are compared:
Normal. When set to Normal (the default), this now allows the values Yes and On to compare as equal to True (or each other) and Off and No to compare as equal to False. Although Empty is treated as a valid boolean value (equivalent to False) it will not compare as equal to False.
Strict. If the booleanComparison is set to Strict, the values Yes, No, On, and Off will compare as strings, and thus will not be equal to True or False.
Lenient. If the booleanComparison is set to Lenient, any value that evaluates to the strings "Yes", "No", "On", or "Off" will be treated as booleans for purposes of equality testing with other booleans.
Bug Fixes / Tweaks
Fixed an editor bug that could raise a glyphRangeForCharacterRange: exception.
Fixed a bug where sometimes the Run Selection did not properly correspond to the actual selection in the Script Editor.
Fixed a long-standing issue on Windows that limited how many times you could make a new connection.You should now be able to make thousands of calls to the Connect command.
Fixed several crashing bugs that could occur when the image was near the edge of the screen.
Fixed a problem where the Run Date column would display bad characters when Korean was the active language.
Fixed a bug that caused bug submission to fail sometimes.
Fixed a bug that sometimes caused times to be offset several hours in script logs.
Fixed an exception that could occur when viewing logs on Linux.
Fixed a bug that caused the Viewer window capture buttons to be disabled in capture mode.
Fixed a bug that caused the Run Window buttons to be disabled.
Fixed a bug that caused in-script text platform changes to be overlooked.
Fixed a problem where Text Commands created using the Generation Tools did not properly reference the Text Style from the Text Platform.
Fixed a problem where Scaling"Fixes" applied by the Image Doctor would not persist.Using the Image Doctor now sets the Image's default scale as shown in the Image Editor**.
Fixed a problem where Adding a Representation using the Original Location would throw an exception.
Fixed a problem where Adding a Representation would not properly switch to the new folder if "Remember Save Image Folder" was disabled.
Fixed a problem with some toolbar icons on Retina display Mac OS X machines.
Fixed a problem displaying the "Add…" button on the Connection List on CentOS.
Fixed a problem when trying to connect to a RealVNC device from the command-line. This could happen before the RealVNC initialization had been completed.