Skip to main content

Eggplant Functional 23 Release Notes

The notes below provide descriptions of the new features and changes introduced with each release of Eggplant Functional (EPF). You are strongly encouraged to read about the relevant changes whenever you upgrade from an earlier version.


Mac: macOS 13, macOS 12, macOS 11, macOS 10.15, macOS 10.14.

Windows: 64-bit distributions only. Windows 11, Windows 10, Windows Server 2022, Windows Server 2019, Windows Server 2016.

Linux: 64-bit distributions only. Ubuntu 16. Red Hat 7. CentOS 7.x (tested on latest version).

Ports: TCP 5052-5054. For SUTs: RDP: 3389. VNC: 5900. WebDriver: 4444.

Citrix Connection: Citrix Workspace LTSR (22.03) installed on Eggplant Functional Machine, Windows only

iOS: iOS 17 is not yet supported for mobile connections.


  • As of August 2023, version 15.1BL2 of the Reprise License Management (RLM) Server is available with the Eggplant Functional downloads. Note that the RLM Server is, and has always been, a separate product from EPF with a separate installer.

    Starting with RLM v15.1, you must set passwords for the RLM administration web server. If you have not set passwords for this web server before, upon startup, RLM will create a new admin account for you and set a default password for it. In that case, you must log into the web server console and change the default admin password. If you have already established accounts for the administration web server prior to the upgrade, you must clear the passwords for the existing accounts and provide new values after the upgrade. If you fail to change the default admin password or you fail to establish new passwords for legacy users, the RLM Server will shut down automatically after 10 minutes. Please refer to page 51 of the RLM License Administration Guide for details.

  • Documentation for the Mobile Gateways has been restructured. The Classic iOS and Android Gateways documentation have separate landing pages while the new Mobile Device Connection documentation is embedded in the Eggplant Functional documentation. Due to this reorganization, bookmarks to the iOS and Android topics will be broken.

  • Tables functionality will be removed in a future release of EPF.

  • A bug exists in the MySQL Connector for ODBC 8.0 on Windows 10 systems that causes Eggplant Functional to crash when connecting to an ODBC database. The crash typically occurs when connecting for the second time. See the MySQL forums here for any updates on the status of this issue from MySQL. The only known workaround is to use the older version 5.3 connector instead.

23.1.1 (Nov 2023)


No new features were added in this release.


Release 23.1.1 contains the following change:

  • Reverts the version of OCR (to 12.2) from the versions shipped in 23.1.0 and 23.0.1 on Mac and Windows based on customer feedback. You can verify what version of OCR your EPF instance is running with using the following SenseTalk function: ocrversion() --> 12.2

23.1.0 (Oct 2023)


Release 23.1.0 of EPF contains the following enhancements:

  • Provides support for webdriver and API connections using IPV6 addresses.

  • Provides support for the RLM Server version 15.1.BL2.

  • Enhances the way EPF handles relative paths for helper suites by using a <Suite_Root> token to indicate the folder where the main suite resides. For more information about helper suites, see The Helper Suites Pane.

  • Upgrades Eggplant Gateway (EPGW) to version 3.18.4. For more information about EPGW releases, please see the topic Release Notes with the EPGW documentation. Note: You can determine the version of EPGW your EPF is using with the put version().epgw function. This can be helpful if you are side-loading (or previously side-loaded) a version of EPGW.

  • Introduces a New RDP Connection Type (beta) for you to try. This option is still in testing and does not yet provide all of the features of the existing RDP connection. It includes: US keyboard layout support and the IgnoreCertificate option enabled. It excludes: smart card capability, multi-monitor support, and the Disconnect on User Log Off option.

    You can enable the new RDP connection by checking the Use New RDP Connection (Beta) checkbox on the Connection tab in the EPF Preferences. If you are on Mac or linux, you may need to install the freerdp client package to be able to use this connection type. Determine if you need to install the freerdp client package using the following commands:

    Mac: (See Install Homebrew Mac if you need information about installing brew.)
    To determine if the freerdp client package is installed: brew list freerdp
    To install: brew install freerdp

    To determine if freerdp client package is installed: apt -qq list libfreerdp-client2-2
    To install: sudo apt-get install -y libfreerdp-client2-2

    To determine if freerdp client package is installed: sudo yum list | grep libfreerdp-client2-2
    To install: sudo yum --install libfreerdp-client2-2

Defect Fixes

EPF 23.1.0 contains the following fixes:

  • API test-related topics from the SenseTalk Language Browser display as they should in the API Test Editor again.

  • By default, EPF no longer searches for devices to connect to via Bonjour on launch. If you are upgrading and you previously had the Enable Bonjour discovery of VNC servers preference set, your setting will still be in effect.

  • By default, EPF no longer polls for Eggplant Automation Cloud (EAC) connections on launch in certain situations. In turn, this default setting shortens the DAI launch sequence. The setting that manages this polling does not have a control in the EPF UI. Contact Support or your technical consultant for more information.

  • The Free Trial button on the Eggplant License Registry panel now takes you to the correct web page.

  • Removes getpids.exe and Eggman from the EPF installer.

  • Enhances support for Microsoft Excel files by handling a maximum number of rows to 1,048,576 and columns to 16,384.

  • Updates the recommended RAM to use with large Excel files to 32 GB or more to improve performance.

  • Fixes an issue with setting an Excel cell value to a number, which was incorrectly setting the cell type to String rather than Number.

  • Provides support for .xlsm file-types. This file-type is similar to the Excel .xlsx file-type but includes support for macros.

SenseTalk Enhancements

EPF 23.1.0 includes an upgraded version of SenseTalk (version 2.13). Note that you can verify the version of SenseTalk in your EPF instance using the command: put SenseTalkVersion. This version contains the following improvements:

  • Adds support for returning the distance between two points with the distance function. For example: put the distance from pointA to pointB put the distance between [3,6] and [8,18] < returns 13

  • Adds support for returning the payment amount on a loan with the payment function. This function takes loan properties as inputs in the form of the total loan amount (or principal), interest rate, term, and frequency of payments. For example: put payment on a $500 loan at 6% interest for 12 months < returns $43.033215

  • Adds support for the halfEvenRounding global property. When set to TRUE, this propery causes the round() and roundToNearest() functions to use half-even rounding (sometimes called "round to even" or "banker's rounding"). When the value being rounded is exactly halfway between the two nearest values, half-even rounding will cause it to be rounded to the value that is an even number (or an even multiple of the value being round to.)

  • Adds support for returning the integer less than or equal to a given value with the floor function. For example: put the floor of 12.8 < returns 12 put floor(-3.6) < returns -4

  • Adds support for returning the integer greater than or equal to a given value with the ceiling function. For example: put the ceiling of 12.8 < returns 13 put ceiling(-3.6) < returns -3

  • Adds support for accessing chunks counting back from the end with the ordinal-to-last syntax for ordinal numbers. Also adds antepenultimate, preantepenultimate, and propreantepenultimate as special ordinals equivalent to the third-to-last, fourth-to-last, and fifth-to-last. Adds ultimate and final as special ordinal synonyms for "last." For example: put the seventh-to-last char of "ABCDEFGHIJKLMNOPQRSTUVWXYZ" < returns T put the antepenultimate char of "ABCDEFGHIJKLMNOPQRSTUVWXYZ" < returns X

  • Adds a new variation of the put command to easily display a line of dashes or other symbols. This works with any of these symbols: - + = * / < > ~ . : ? ^ & |. (EPF-22849) put - displays a line of “-” repeated 33 times put > displays a line of “>” repeated 33 times put 50 ? displays a line of “?” repeated 50 times

  • Adds leftTop, leftBottom, rightTop, and rightBottom as synonyms for topLeft, bottomLeft, topRight, and bottomRight.

  • Adds π as a predefined variable with the value pi. For example: put π < returns 3.141593

  • Enhances runtime error messages to report the line number within the script in addition to the line number within the handler when the numbers are different, for example:

    <Log Runtime Error at line 3 (line 6 of script): Invalid JSON - Can't get value of JSON expression.>

  • Fixes an issue with the contains and is in operators when testing whether a text value contains a list of values. Previously, only the first value in the list was evaluated. SenseTalk will now test whether the text contains every value in the list and only return True if all of them are present in the text.

  • Fixes an issue where the begins with and ends with operators were ignoring all but the first value of a list when testing whether a text value begins or ends with a list. These operators will now use all of the values in the list, in this case by concatenating them together into a single string, and then testing whether the text value begins (or ends) with that string.

  • Adds syntax to allow specifying a percent for a period of time, such as 5% annually.

  • Fixes an issue with the folder() function where it would return empty when called directly as a function on a fileDescription object.

  • Fixes an issue that occurred when adding to (or subtracting, multiplying, or dividing with) a non-existent property in a property list where the name of that property was the name of a function.

  • Corrects a problem with the round() function, which was rounding some numbers differently on Windows than it was on other platforms. Note that due to the inability to exactly represent some decimal fractions using the floating-point values used internally by the system, there are some fractional numbers that will still not appear to round "correctly." For example, when rounding the number 133.355 to 2 decimal places, it will be rounded to 133.35 rather than 133.36 as might be expected. This is because 133.355 can't be represented precisely in floating point binary, so the actual value that is around 133.354999999999 rounds down.

23.0.1 (10 Aug 2023)

  • Available for Windows and Macintosh only. Linux available at a later date.


  • Enhances character recognition of East Asian languages by updating the OCR library.

Defect Fixes

  • Resolves occurrences of "OCR Error: Internal Error" when searching for screenshots.

23.0.0 (18 Jul 2023)


  • Provides OCR support for Vietnamese and Thai languages

    • Additional license required
  • Enables Mobile Connection Types from DAI

  • Enables Git integration from DAI

  • Improves performance when authoring and editing large suites

  • Provides support for TLS configuration for SenseTalk SendMail commands

  • Enhances the SenseTalk version() function to include the Eggplant Gateway (EPGW) version. The version().epgw and version().archive extensions return the version of EPGW currently in use in your EPF instance. Knowing which version of EPGW is in use can be especially helpful if you are side-loading (or previously side-loaded) a version of EPGW that was not installed with EPF. The following example shows the format of the EPGW version that the functions return: version().epgw --> 3.13.7

  • Enhances the OCR version information you can obtain from EPF with a function that returns the OCR build version (ocrbuild()). This is in addition to the existing ocrversion() function. Knowing which build of OCR your EPF includes can be helpful because new functionality may be introduced in different OCR builds and the build versions can vary with platform. The following examples show the difference between the output of the two OCR functions: ocrversion() --> 12.4 ocrbuild() -->

Defect Fixes

  • Addresses issue attempting to make native Citrix Connections in some situations

  • Resolves an issue on the Image Capture panel to populate the dropdown with the correct suite when saving an image

  • Resolves an issue when running ExecuteJavaScript from a user defined object that caused an NSInvalidArgumentException

  • Improves auto-complete performance of a collection that contains a large number of images

  • Boosts performance when using the “set the string to “/”” in a large suite

  • Speeds up the search function of Eggplant Functional when there is a large set of images in the suite

  • Resolves an issue in some configurations where the Sendmail command errored out with “Failed to read beginning of SSL/TLS record”

  • Removes the following SenseTalk commands and functions from the auto-complete suggestions: CaptureTextImage, OpenSuites, OpenSuite, and CloseSuite

  • Corrects the URL on the EPF Download button to point to the proper URL

  • Removes references to the Vine Server in the VNC Encodings on the Preferences Connection panel

  • Refines SenseTalk ToolTip and Language Browser wording for the Connect Command of Android and iOS Mobile Device Connection types

SenseTalk Enhancements

  • The is a number operator (or is an integer etc.) now recognizes valid numbers with numeric strings that begin with +.

  • In some cases, the dayOfCommonEra function was affected by time zone, but it has been fixed. Now, dayOfCommonEra always calculates a day number based on the date alone, regardless of the time of day.

  • All characters should now be handled properly by the regexEscapedSet() function and therefore within character sets in patterns (specifically: "[", carriage return, line feed, tab, formfeed, and backspace). Previously, some characters were being mishandled.

  • Adds backspace as a predefined variable, with value numToChar(8).

  • Property declarations now accept that last value supplied for a key. This corrects a problem with property declarations with duplicate keys being omitted completely.

Mobile Device Connection Enhancements

  • Improves Android image quality and removes Beta status for Android Mobile Connections.

  • Improves Unicode support on Android.

  • Fixes reporting of the Android version in SUTInfo.

  • Supports use of large Android device farms.

  • Allows custom installation paths for Eggplant Functional on Macintosh.

  • Provides iOS Restart Springboard option.

  • Adds ADB Pull Large files.

  • Adds support for Sauce Labs Safari browser connections. Note that webdriver commands are not currently supported.

  • Adds support for Sauce Labs iOS simulators.

  • Includes Sauce Labs Browser improvements for: Resolution, URL, and Timeout.

  • Allows standard locations for Provisioning Profiles and Certificates as follows:

    • on MacOS (default profile location)

    • on Linux and Windows: local AppData/ eggplant/ProvisioningProfiles

    • Introduces standard locations for Developer Disks:

      • on MacOS (default XCode location)

      • on Linux and Windows: local AppData/ Eggplant/devimg

  • Allows Provisioning Profiles and Certificates to be referenced by name in addition to a fixed path.

  • Resolves the following keyCodes:

    • AltKey:57

    • CapsLockKey:115

    • ControlKey:113

    • EditButton:0

    • Keypad0:144

    • Keypad5:149

    • Keypad9:153

    • KeypadDecimal:158

    • KeypadDivide:154

    • KeypadTimes:155

    • Numlock:143

    • PauseBreak:127

    • ScrollLock:116

    • ShiftKey:59

    • Backspace:67

  • Adds ApplicationKey which opens the app switcher on Android devices.

  • Enables the following libimobiledevice features:

    • list connected devices

    • install app

    • uninstall app

    • get device info

    • list applications