Robot Framework Changelog

What's new in Robot Framework 7.0 Source

Jan 12, 2024
  • Robot Framework 7.0 is a new major release with enhanced listener interface (#3296), native VAR syntax for creating variables (#3761), support for mixing embedded and normal arguments with library keywords (#4710), JSON result format (#4847) and various other enhancements and bug fixes.

New in Robot Framework 7.0 RC 3 (Jan 8, 2024)

  • Robot Framework 7.0 is a new major release with enhanced listener interface (#3296), native VAR syntax for creating variables (#3761), support for mixing embedded and normal arguments with library keywords (#4710), JSON result format (#4847) and various other enhancements and bug fixes. Robot Framework 7.0 requires Python 3.8 or newer (#4294).

New in Robot Framework 7.0 RC 2 (Jan 5, 2024)

  • Robot Framework 7.0 is a new major release with enhanced listener interface (#3296), native VAR syntax for creating variables (#3761), support for mixing embedded and normal arguments with library keywords (#4710), JSON result format (#4847) and various other enhancements and bug fixes. Robot Framework 7.0 requires Python 3.8 or newer (#4294).
  • Robot Framework 7.0 rc 2 was released on Thursday January 4, 2023, with all features and fixes planned to be included in the final release. It is targeted for anyone interested to see how they can use the interesting new features and how backwards incompatible changes and deprecations possibly affect their tests, tasks, tools and libraries. The target date for the final release is Wednesday January 10, 2024.

New in Robot Framework 7.0 Alpha 2 (Nov 22, 2023)

  • Enhancements:
  • Add typing to all modules under robot.api
  • Add return type to Libdoc specs and HTML output
  • Add public argument conversion API for libraries and other tools
  • Collections: Make ignore_order and ignore_keys recursive
  • Collections and String: Add ignore_case as alias for case_insensitive
  • Bug Fixes:
  • Async support to dynamic and hybrid library APIs
  • Async keywords are not stopped when execution is stopped gracefully
  • TypedDict with forward references do not work in argument conversion

New in Robot Framework 7.0 Alpha 1 (Nov 9, 2023)

  • Robot Framework 7.0 is a new major release with native VAR syntax for creating variables (#3761), support for mixing embedded and normal arguments with library keywords (#4710) and various other enhancements and bug fixes. Robot Framework 7.0 requires Python 3.8 or newer (#4294).
  • Robot Framework 7.0 alpha 1 was released on Thursday November 9, 2023. It is especially targeted for external tool developers for testing how backwards incompatible changes and deprecations possibly affect their tools. We can still make adjustments or even revert problematic changes before the final release.

New in Robot Framework 6.1.1 Source (Jul 29, 2023)

  • Bug:
  • Dialogs: Cannot type o or c to input dialog due to they being registered as shortcuts
  • Library using @classmethod and @property together crashes execution and fails with Libdoc
  • Parameterized types are not converted when used in union with str like str | list[str]
  • Libdoc does not show inits having only named-only arguments
  • Test cases with tag 'robot:skip' will fail when whole suite is skipped
  • Argument conversion fails if tuple has unrecognized parameter
  • Execution fails with PyPy if language configuration is invalid
  • User Guide: Forthcoming -tag syntax will be added in RF 7.0, not in RF 6.1
  • Enhancement:
  • Update Polish translations to use title case
  • Execution mode should be checked only after selecting which test/tasks are run

New in Robot Framework 6.1 Source (Jun 12, 2023)

  • Robot Framework 6.1 is a new feature release with support for converting Robot Framework data to JSON and back, a new external parser API, possibility to mix embedded and normal arguments, and various other interesting new features both for normal users and for external tool developers.

New in Robot Framework 6.1 Source Beta 1 (May 6, 2023)

  • Robot Framework 6.1 is a new feature release with support for converting Robot Framework data to JSON and back, a new external parser API, and various other interesting new features both for normal users and for external tool developers. This beta release is especially targeted for tool developers interested to test the new APIs. It also contains all planned backwards incompatible changes and deprecated features, and everyone interested to make sure their tests, tasks or tools are compatible, should test it in their environment.

New in Robot Framework 6.0.2 Source (Jan 9, 2023)

  • Using settings valid in Settings section with tests or keywords (e.g. [Metadata]) causes confusing error message
  • Polish translations for Boolean words
  • IF and WHILE execution time does not include time taken for evaluating condition
  • Bug in --reportbackgroundcolor documentation in the User Guide
  • Wrong version number in deprecation warning

New in Robot Framework 6.0.1 Source (Nov 3, 2022)

  • Fixed bugs:
  • Localized BDD prefixes consisting of more than one word don't work
  • Set Library Search Order doesn't work if there are two matches and one is from standard librariesLibdoc's DocumentationBuilder doesn't anymore work with resource files with .robot extension
  • Document Libdoc's public API better
  • Enhance robot.utils.timestr_to_secs so that it works with timedelta objects
  • Unit test test_parse_time_with_now_and_utc fails around DST change
  • Wrong version numbers used in the User Guide and in a deprecation warning

New in Robot Framework 5.1 Source Beta 1 (Sep 3, 2022)

  • Most important enhancements:
  • Localization
  • Enhancements for setting keyword and test tags
  • Enhancements to keyword namespaces
  • Possibility to disable continue-on-failure mode
  • start/end_keyword listener methods get more information about control structures
  • Performance enhancements for executing user keywords
  • Python 3.11 support
  • Backwards incompatible changes
  • Deprecations
  • Force Tags and Default Tags settings
  • Keywords in test case files having precedence over local keywords in resource files
  • WITH NAME in favor of AS when giving alias to imported library
  • Singular section headers like Test Case
  • Python 3.6 support

New in Robot Framework 5.0.1 Source (May 16, 2022)

  • Most important enhancements:
  • Fix crash when using partialmethod in library
  • Using partialmethod in a library crashed the whole execution (#4318). As part of the fix, support to create keyword using both partialmethod and partial was added.
  • Libdoc JSON schema has been updated:
  • There were some changes to Libdoc's spec files in Robot Framework 5.0. The schema for XML spec files was updated already then, but the JSON schema was updated only now as part of Robot Framework 5.0.1 development (#4281). All schema files, including the output.xml schema, can be found here.

New in Robot Framework 5.0.1 RC 1 Source (May 10, 2022)

  • Most important fixes and enhancements:
  • Fix crash when using partialmethod in library
  • Libdoc JSON schema has been updated

New in Robot Framework 4.1.1 Source (Sep 8, 2021)

  • Python 3.10 support:
  • Robot Framework 4.1.1 adds official support for the forthcoming Python 3.10 release. Also older Robot Framework releases work with Python 3.10, but there are warnings due to those versions using nowadays deprecated Python APIs.
  • In addition to supporting Python 3.10 in general, Robot Framework 4.1.1 adds support for writing unions in type hints like arg: X | Y. (#4075, PEP 604).
  • Fixes to rare crashes:
  • Robot Framework 4.1.1 fixes several problems resulting to fatal crashes during execution. Crashes are always severe, but luckily all these crashes occurred only in rather rare circumstances:
  • SKIP in combination with continuable failures containing HTML error messages (#4062)
  • Non-existing variable used as teardown (#4061)
  • Strange functions without __annotations__ (#4059)
  • --removekeywords WUKS when listener has logged messages and Wait Until Keyword Succeeds keyword itself is otherwise empty (#4063)

New in Robot Framework 4.1 Source (Jul 19, 2021)

  • Most important enhancements:
  • Continue-on-failure mode can be controlled using tags
  • Robot Framework has for long time had so called "continuable failures" that fail the test case but allow execution to continue after the failure. Earlier this functionality could only be enabled by library keywords using special exceptions and by using BuiltIn keyword Run Keyword And Continue On Failure.
  • Robot Framework 4.1 eases using the continue-on-failure mode considerably by allowing tests and keywords to use special tags to initiate it. The new robot:continue-on-failure tag enables the mode so that if any of the executed keywords fail, the next keyword is nevertheless executed. This mode does not propagate to lower level keywords, though, so in them execution stops immediately and is resumed only on the test or keyword with the special tag. If recursive mode is desired, it is possible to use another new tag robot:recursive-continue-on-failure to enable it. (#2285)
  • Argument conversion enhancements:
  • Automatic argument conversion has been improved in few different ways:
  • Derived enumerations IntEnum and IntFlag are not supported. With both of them the value that is used can be a member name, like with other enumerations, or the integer value of the member. (#3910)
  • Number conversions (int, float and Decimal) support spaces and underscores as number separators like 2 000 000. (#4026)
  • Integer conversion supports hexadecimal, octal and binary values using 0x, Oo and 0b prefixes, respectively. For example, 0xAA, 0o252, and 0b 1010 1010 are alternative ways to specify integer 170. (#3909)
  • Backwards incompatible changes
  • Robot Framework 4.1 is mostly backwards compatible with Robot Framework 4.0. There are, however, few changes that may affect some users:
  • If --doc or --metadata gets a value that points to an existing file, the actual value is read from that file, but with earlier versions the value is the path itself. It is rather unlikely that anyone has used this kind of documentation, but with metadata paths are possible. If a path to an existing file should be used as an actual value, the value should get some extra content to avoid the path to be recognized. Even a single space like --metadata "Example: file.txt" is enough. (#4008)
  • String library methods should_be_uppercase and should_be_lowercase have been renamed to should_be_upper_case and should_be_lower_case, respectively. Due to Robot Framework's keyword matching being underscore insensitive, this change does not affect normal usage of these keywords. If someone has used these methods programmatically, they need to update their code. (#3890)
  • In addition to the changes explained above, any change to the code may affect someones workflow. It is thus a good idea to test new versions before using them in production.
  • Deprecated features:
  • Python 2 support:
  • Robot Framework 4.1 is the last release supporting Python 2. Its possible bug fix releases like 4.1.1 will still support Python 2, but the forthcoming Robot Framework 5.0 will require Python 3.6 or newer. (#3457)
  • This unfortunately means that also Jython and IronPython support is deprecated. Support can be added again if these projects get Python 3.6+ compatible versions released.
  • Built-in Tidy:
  • The built-in Tidy tool has been deprecated in favor of the externally developed and much more powerful RoboTidy tool. The built-in Tidy will be removed altogether in Robot Framework 5.0. (#4004)
  • Acknowledgements:
  • Robot Framework 4.1 development has been sponsored by the Robot Framework Foundation and its close to 50 member organizations. In addition to that, we have got great contributions by the open source community:
  • Oliver Boehmer added support to control the continue-on-failure mode using test and keyword tags (#2285).
  • Oliver Schwaneberg enhanced Wait Until Keyword Succeeds to support strict retry interval (#3209).
  • Sergey Tupikov added support to collapse whitespace with Should Be Equal and other comparison keywords (#3884).
  • Mikhail Tuev fixed using --removekeywords when test contains IF structure (#4009) and renamed String library methods for consistency (#3890).
  • Vinay Vennela enhanced the dry-run mode to allow modifying tags using Set Tags and Remove Tags keywords (#3985).
  • @asonkeri fixed keyword documentation scrollbar issues in Libdoc HTML output (#4012).
  • Huge thanks to all sponsors, contributors and to everyone else who has reported problems, participated in discussions on various forums, or otherwise helped to make Robot Framework and its community and ecosystem better.

New in Robot Framework 4.1 Source (Jul 19, 2021)

  • Most important enhancements:
  • Continue-on-failure mode can be controlled using tags
  • Robot Framework has for long time had so called "continuable failures" that fail the test case but allow execution to continue after the failure. Earlier this functionality could only be enabled by library keywords using special exceptions and by using BuiltIn keyword Run Keyword And Continue On Failure.
  • Robot Framework 4.1 eases using the continue-on-failure mode considerably by allowing tests and keywords to use special tags to initiate it. The new robot:continue-on-failure tag enables the mode so that if any of the executed keywords fail, the next keyword is nevertheless executed. This mode does not propagate to lower level keywords, though, so in them execution stops immediately and is resumed only on the test or keyword with the special tag. If recursive mode is desired, it is possible to use another new tag robot:recursive-continue-on-failure to enable it. (#2285)
  • Argument conversion enhancements:
  • Automatic argument conversion has been improved in few different ways:
  • Derived enumerations IntEnum and IntFlag are not supported. With both of them the value that is used can be a member name, like with other enumerations, or the integer value of the member. (#3910)
  • Number conversions (int, float and Decimal) support spaces and underscores as number separators like 2 000 000. (#4026)
  • Integer conversion supports hexadecimal, octal and binary values using 0x, Oo and 0b prefixes, respectively. For example, 0xAA, 0o252, and 0b 1010 1010 are alternative ways to specify integer 170. (#3909)
  • Backwards incompatible changes
  • Robot Framework 4.1 is mostly backwards compatible with Robot Framework 4.0. There are, however, few changes that may affect some users:
  • If --doc or --metadata gets a value that points to an existing file, the actual value is read from that file, but with earlier versions the value is the path itself. It is rather unlikely that anyone has used this kind of documentation, but with metadata paths are possible. If a path to an existing file should be used as an actual value, the value should get some extra content to avoid the path to be recognized. Even a single space like --metadata "Example: file.txt" is enough. (#4008)
  • String library methods should_be_uppercase and should_be_lowercase have been renamed to should_be_upper_case and should_be_lower_case, respectively. Due to Robot Framework's keyword matching being underscore insensitive, this change does not affect normal usage of these keywords. If someone has used these methods programmatically, they need to update their code. (#3890)
  • In addition to the changes explained above, any change to the code may affect someones workflow. It is thus a good idea to test new versions before using them in production.
  • Deprecated features:
  • Python 2 support:
  • Robot Framework 4.1 is the last release supporting Python 2. Its possible bug fix releases like 4.1.1 will still support Python 2, but the forthcoming Robot Framework 5.0 will require Python 3.6 or newer. (#3457)
  • This unfortunately means that also Jython and IronPython support is deprecated. Support can be added again if these projects get Python 3.6+ compatible versions released.
  • Built-in Tidy:
  • The built-in Tidy tool has been deprecated in favor of the externally developed and much more powerful RoboTidy tool. The built-in Tidy will be removed altogether in Robot Framework 5.0. (#4004)
  • Acknowledgements:
  • Robot Framework 4.1 development has been sponsored by the Robot Framework Foundation and its close to 50 member organizations. In addition to that, we have got great contributions by the open source community:
  • Oliver Boehmer added support to control the continue-on-failure mode using test and keyword tags (#2285).
  • Oliver Schwaneberg enhanced Wait Until Keyword Succeeds to support strict retry interval (#3209).
  • Sergey Tupikov added support to collapse whitespace with Should Be Equal and other comparison keywords (#3884).
  • Mikhail Tuev fixed using --removekeywords when test contains IF structure (#4009) and renamed String library methods for consistency (#3890).
  • Vinay Vennela enhanced the dry-run mode to allow modifying tags using Set Tags and Remove Tags keywords (#3985).
  • @asonkeri fixed keyword documentation scrollbar issues in Libdoc HTML output (#4012).
  • Huge thanks to all sponsors, contributors and to everyone else who has reported problems, participated in discussions on various forums, or otherwise helped to make Robot Framework and its community and ecosystem better.

New in Robot Framework 4.0.3 Source (May 25, 2021)

  • Regression using TypedDict as type hint
  • Nested extended variable assignment doesn't work if parent uses item access
  • --flattenkeywords doesn't flatten IF/ELSE blocks

New in Robot Framework 4.0.2 Source (May 11, 2021)

  • Bugs Fixed:
  • Using Union containing generics as type hint causes an error
  • Libdoc does not anymore work with resource files in PYTHONPATH
  • Rebot removes sourcename attribute from <kw> in output.xml
  • Keyword If Test Failed does not work correctly if it is not first keyword in teardown and test is skipped
  • Argument conversion problems when type hint is ABC

New in Robot Framework 3.2.2 Source (Sep 1, 2020)

  • Robot Framework 3.2.2 is a new minor release with some bug fixes, Libdoc enhancements and official Python 3.9 support. This is the last planned Robot Framework 3.2.x release.
  • Most important enhancements:
  • Libdoc enhancements:
  • Keyword arguments are split to separate lines to make them easier to read especially when there are lot of arguments or arguments have type information or default values. (#3639)
  • If argument type is an enumeration, its members are shown automatically in arguments. This helps, for example, with the Browser library that uses enumerations extensively. (#3637)
  • Shortcuts to keywords can be shown in expanded list in addition to the old compact style. (#3635)
  • Libdoc once again works if the original source of the keyword cannot be found. (#3587)

New in Robot Framework 3.2.1 Source (Jul 30, 2020)

  • Robot Framework 3.2.1 is a new minor release fixing two high priority regressions in Robot Framework 3.2.
  • Regression with keywords methods using wrapping decorators:
  • If a keyword is implemented as a method in a class and the method is decorated with a "wrapping decorator", keyword argument detection does not work correctly with Robot Framework 3.2. A "wrapping decorator" is a decorator that sets the __wrapped__ attribute using functools.wraps or otherwise. For more details and a concrete example see issue #3561.
  • This issue affects at least FakerLibrary and AppiumLibrary
  • Execution can crash if stdin is closed:
  • Robot Framework 3.2 execution crashes if the standard input stream is closed and additionally standard output and error streams are redirected. An exception is Windows with Python 3.6 or newer. For details see #3565.

New in Robot Framework 3.2 RC1 (Apr 3, 2020)

  • Robot Framework 3.2 is a new major release with an enhanced test data parser, handy @library and @not_keyword decorators, enhanced Libdoc spec files for external tools, inline Python evaluation support, and many other interesting new features and lot of bug fixes. Robot Framework 3.2 rc 1 contains all changes planned to the final release. Users are highly recommended to test it in their environments and report possible problems.
  • Most important enhancements:
  • New test data parser
  • New @library decorator
  • New @not_keyword decorator
  • Enhanced Libdoc spec files
  • Inline Python evaluation
  • Native &{dict} iteration with FOR loops
  • Listeners can add and remove tests
  • Signatures of "wrapped" keywords are read correctly
  • Continuous integrating
  • Backwards incompatible changes
  • Backwards incompatible changes
  • HTML and TSV formats are not supported anymore
  • Only *.robot files are parsed by default
  • Changes to recognizing and evaluating variables
  • Variables in test case names are resolved
  • Changes to handling non-ASCII spaces
  • Old for loop style not supported with pipe-separated format
  • Stricter section and setting name syntax
  • Stricter for loop separator syntax
  • Libdoc spec files have changed
  • Pre-run modifiers are run before selecting tests cases to be executed
  • Other backwards incompatible changes
  • Deprecated features
  • Old FOR loop syntax
  • FOR loops when all values are in key=value syntax
  • Accessing list and dictionary items using @{var}[item] and &{var}[item]
  • Ignoring space after literal newline is deprecated
  • Acknowledgements
  • Full list of fixes and enhancements

New in Robot Framework 3.2 Beta 2 (Feb 14, 2020)

  • Robot Framework 3.2 is a new major release with new, enhanced test data parser, handy @library and @not_keyword decorators, inline Python evaluation support, and many other interesting new features and bug fixes. RF 3.2 beta 2 is its third preview release and the last planned release before release candidates.

New in Robot Framework 3.2 Beta 1 (Jan 13, 2020)

  • Robot Framework 3.2 is a new major release with new, enhanced test data parser, handy @library decorator, inline Python evaluation support, and many other interesting new features and bug fixes. RF 3.2 beta 1 is its second preview release and it already contains majority of the planned new features and fixes, including the new parser.

New in Robot Framework 3.1.2 (Jan 13, 2020)

  • RF 3.1.2 contains few important bug fixes and some nice enhancements. It also contains several minor deprecations related to the test data syntax that pave the way towards Robot Framework 3.2 which will contain a new test data parser

New in Robot Framework 3.1.2 RC1 (May 17, 2019)

  • Robot Framework 3.1.2 is a new minor release with few important bug fixes and some nice enhancements. It also contains several minor deprecations related to the test data syntax that pave the way towards Robot Framework 3.2 which will contain a new test data parser.
  • Most important bug fixes:
  • Creating scalar variables in resource files with custom separator (SEPARATOR=<sep>) has been fixed. (#3102)
  • Using keywords accepting embedded arguments when library is imported multiple times with different names using the WITH NAME syntax has been fixed. (#3181)
  • The Tidy tool both handles new style for loops (FOR ... END) correctly and converts old style loops (:FOR ... ...) to new style loops automatically. (#3064)

New in Robot Framework 3.1 Beta 1 (Oct 29, 2018)

  • Most important enhancements:
  • Terminology configuration to support Robotic Process Automation (RPA)
  • Automatic argument conversion
  • Named-only arguments support
  • Fix intermittent corrupted outputs when using timeouts
  • Installation enhancements
  • Accessing nested list and dictionary variable items
  • New *.resource extension for resource files
  • Better error reporting when test data is invalid
  • Better compatibility with third party tools consuming xUnit outputs
  • No need to install external ElementTree module with IronPython 2.7.9+
  • Backwards incompatible changes:
  • Python 2.6 and 3.3 are not supported anymore
  • Old start-up scripts like pybot are removed
  • Changes to pattern matching syntax
  • Underscores are not converted to spaces in values given from the command line
  • Changes to xUnit output file format
  • Logs and reports do not support IE 8 and other old browsers anymore
  • Some deprecated syntax removed
  • Other issues possibly causing backwards incompatibility problems
  • Deprecated features:
  • HTML and TSV data formats have been deprecated
  • Parsing other than *.robot files by default is deprecated
  • Using section and setting names space-insensitively is deprecated
  • Escaping problematic characters with --escape is deprecated
  • --warnonskippedfiles has been deprecated
  • Stricter for loop syntax
  • Forthcoming deprecations:
  • For loop marker to be changed from :FOR to FOR
  • List item access to be changed to use syntax ${var}[item]

New in Robot Framework 3.1 Alpha 1 (Jun 7, 2018)

  • Robot Framework 3.1 is a new release with terminology configuration to support Robotic Process Automation (RPA) and several other nice planned features. RF 3.1 alpha 1 is the first preview release which only contains initial RPA support as well as enhancements to installation.

New in Robot Framework 3.0.4 (Apr 25, 2018)

  • Robot Framework 3.0.4 is a new minor release fixing regressions in Robot Framework 3.0.3 related to using dictionary variables.

New in Robot Framework 3.0.4 RC1 (Apr 23, 2018)

  • Fixed issues:
  • Iterable objects (incl. ElementTree objects) converted to lists when added to dictionary variables in RF 3.0.3
  • Modifying lists and dictionaries used as dictionary variable values stopped working in RF 3.0.3

New in Robot Framework 3.0.3 (Apr 10, 2018)

  • Robot Framework 3.0.3 is a new release containing mainly bug fixes but also few nice enhancements. Questions and comments related to the release can be sent to the robotframework-users mailing list or to Robot Framework Slack, and possible bugs submitted to the issue tracker.
  • Most important fixes and enhancements:
  • Backwards incompatible changes
  • Supported version of pyte module used by Telnet library changed
  • Keywords finding errors are not syntax errors
  • Acknowledgements
  • Full list of fixes and enhancements
  • Using typing hints or keyword-only-arguments prevented using function as keyword (#2627)
  • RuntimeWarning printed on console when using robot command with Python 3.6 on Windows (#2552)
  • Content Security Policy (CSP) causes problems with report (#2606)
  • Terminal emulation in Telnet library is not compatible with latest pyte versions (#2693)
  • Use new logo as favicon in output files (#2793)
  • Backwards incompatible changes:
  • Supported version of pyte module used by Telnet library changed
  • The Telnet library has optional support for terminal emulation that utilizes the pyte module. Due to changes in pyte 0.6, earlier Telnet library versions were not compatible with it and pyte 0.5.2 was needed instead. This has now been fixed, but nowadays the Telnet library only supports pyte 0.6 or newer. For more details see issue #2693.
  • Keywords finding errors are not syntax errors:
  • Errors related to finding keywords are not be considered syntax errors anymore (#2792). In practice this means that keywords executing other keywords, like Wait Until Keyword Succeeds, can catch these errors and the test is not failed immediately. Although the change is backwards-incompatible, it is not expected to cause problems in real usage.
  • The main reason this change was done in a minor release was to allow teardowns to continue execution if keywords are not found. This was changed in RF 3.0.1 and that change did cause real problems (#2648).
  • Acknowledgements:
  • Robot Framework 3.0.3 development has been sponsored by Robot Framework Foundation. Thanks also everyone submitting issues, testing preview releases, helping others on support forums, and so on.
  • Full list of fixes and enhancements:
  • Using typing hints or keyword-only-arguments prevents using function as keyword
  • RuntimeWarning printed on console when using robot command with Python 3.6 on Windows
  • Content Security Policy (CSP) causes problems with report
  • Terminal emulation in Telnet library is not compatible with latest pyte versions
  • Use new logo as favicon in output files
  • Importing String and DateTime fails on Windows and OSX if PYTHONCASEOK is set or installation directory shared between VM and host
  • rebot --merge doesn't work correctly if test messages contain HTML
  • Dry Run fails if library keywords use embedded arguments
  • Regression: Execution stops in teardown if keyword is not found
  • [ ERROR ] Unexpected error: IOError: [Errno 0] Error
  • Appending to test message using HTML doesn't work if old message is not HTML
  • #2739 bug medium Custom string subclasses not always handled correctly (e.g. Convert To Integer)
  • Zero length test library causes infinite recursion
  • Timeouts do not stop execution if they occur during execution of log_message listener method
  • robot.libdoc doesn't support specifying doc format although its docs say it does
  • Syntax errors (non-fatal) when installing with easy_install using Python 3
  • Process library keywords leave file descriptors open on Python 2
  • Dictionary variables should support attribute access with nested dictionaries
  • Errors related to finding keywords should not be considered syntax errors
  • Take Screenshot keyword causes warning when using wxPython 4
  • String 'NONE' should be considered False when used as Boolean argument
  • Change Selenium2Library to SeleniumLibrary in user guide documentation.

New in Robot Framework 3.0.2 (Jan 8, 2018)

  • Robot Framework 3.0.2 is the second minor release in the Robot Framework 3.0.x series. The main motivation for this releases is fixing a performance regression with evaluating expressions using some BuiltIn keywords occurring since RF 2.9 (#2523), but there are also few other fixes and several nice enhancements. For more details about the features and fixes see the full release notes.
  • Source distribution is available at PyPI and pip users can simply run pip install --upgrade robotframework to install the latest release or pip install robotframework==3.0.2 to install exactly this version.
  • This release has been sponsored by the Robot Framework Foundation. Additionally Nokia Networks has been sponsoring the work related to performance enhancements.
  • Robot Framework 3.0.2 was released on Monday February 13, 2017.

New in Robot Framework 2.8.1 (Nov 6, 2013)

  • Removed utility functions broke SSHLibrary and SeleniumLibrary and need to be added back
  • ConnectionCache.current_index should be assignable for compatibility reasons
  • Process.Terminate All Processes does not terminate last started process if it is not active
  • Process.Terminate All Processes does not clear resources
  • Collections: Create Dictionary and Set To Dictionary should accept **items

New in Robot Framework 2.7.1 (Mar 26, 2012)

  • Adding keyword to a dynamic library fails if get_keyword_arguments() returns None (affects at least SwingLibrary)
  • Crash with Jython on Windows with Chinese locale
  • Crash when resource or variable file is not found directly and PYTHONPATH contains non-ASCII paths
  • Get Environment Variable keyword fails on Jython on non-Western Windows
  • Reporting library import error fails with UnicodeDecodeError if PYTHONPATH contains non-ASCII paths
  • No warning when multiple data sources is given and parsing some of them fails
  • Rowsplitter infinent loop when enough empty cells
  • Number of spaces should be configurable when writing space separated text files
  • All East Asian characters are not aligned correctly on console

New in Robot Framework 2.7 Beta 2 (Mar 2, 2012)

  • Faster and more memory efficient log and report generation:
  • In Robot Framework 2.6 logs and reports were heavily enhanced, and nowadays they can contain huge amount of data and still open to browsers fast and be responsive. The next bottleneck with huge amounts of data was that generating logs and reports took a lot of time and computer resources
  • In Robot Framework 2.7 log/report generation performance with the included rebot tool after test execution has been greatly enhanced. Exact improvements depend on the actual data, but based on several data points both rebot execution time and memory consumption have dropped about 50% compared to RF 2.6. Creating logs and reports as part of the test execution is also about 10% faster
  • With larger data sets these enhancements can mean that you get results several minutes faster and generating them takes gigabytes less memory
  • New installation and start-up system -- pip and IronPython are supported:
  • Robot Framework installation and start-up have been changed heavily internally. The biggest enhancements and other changes compared to earlier version are listed below. For more information see new installation instructions and issue 480
  • Installation using pip is finally supported ( issue 885 )
  • Installation using IronPython is officially supported. As a result you get new ipybot and ipyrebot start-up scripts
  • Installation using Jython creates new jyrebot start-up script in addition to jybot
  • Installing from source using Python does not create jybot script anymore. You need to install the framework using Jython to create it
  • All start-up scripts (pybot, rebot, jybot, ...) require the appropriate interpreter to be in PATH
  • Outside Windows, start-up scripts are implemented in Python to ease using them with virtualenv ( issue 1057 )
  • Source distribution only contains actual source code and tools ( issue 1037 )
  • Library documentation tool libdoc is bundled with core framework:
  • libdoc is a tool for creating documentation for Robot Framework test libraries and resource files. Previously it has been available as a separate script, but nowadays it is a build-in tool. It is included in the normal installation and can be executed like python -m robot.libdoc ( issue 1028 ). It also has its own entry point in the stand-alone JAR distribution and that allows executing java -jar robotframework.jar libdoc ( issue 800 )
  • The command line usage of the tool has changed a little, but updating existing scripts that use the tool ought to be easy. Most importantly the documentation syntax itself has not been changed, except that it now supports also pre-formatted text ( issue 447 )
  • libdoc has also got totally new functionality and it can nowadays also show library and resource documentation on the console. It has special commands to list available keywords, show documentation of a specific keyword or whole library/resource, and to display the library version
  • For more information and examples run python -m robot.libdoc --help and see libdoc section in the User Guide
  • Test data documentation tool testdoc fixed and bundled with core framework:
  • testdoc generates a high level test documentation based on Robot Framework test data. It has earlier been available as a separate tool but it has not been compatible with Robot Framework 2.6 ( issue 908 ). Now it is fixed and also bundled with the core framework similarly as libdoc. It can be executed after normal installation like python -m robot.testdoc and it also has an entry point in the JAR distribution
  • For more information and examples run python -m robot.testdoc --help and see testdoc section in the User Guide
  • New built-in tool tidy for cleaning up data and changing data format
  • tidy is a new tool for cleaning up test data and changing test data format between plain text, HTML and TSV ( issue 801 ). Similarly as libdoc and testdoc it is a built-in tool included in the normal installation. It can be executed like python -m robot.tidy and it also has an entry point in the JAR distribution
  • For more information and examples run python -m robot.tidy --help and see tidy section in the User Guide
  • Several --RemoveKeywords enhancements
  • RemoveKeywords command line option allows removing unnecessary keywords from outputs to make their size smaller. It has been enhanced multiple ways in RF 2.7 and nowadays it
  • works also when executing tests and not only with rebot ( issue 1027 )
  • can remove keywords inside for loops ( issue 990 )
  • can remove keywords inside Wait Until Keyword Succeeds keyword ( issue 1007 ), and
  • adds a message when it has removed keywords ( issue 1008 )
  • Backwards incompatible changes
  • All potentially backwards incompatible issues are labeled with `bwic` label in the issue tracker. Why these changes may cause problems will be explained thoroughly later when these release notes are improved
  • Deprecated features
  • There are not too many deprecated features in this release, but the ones that have been deprecated are labeled with `depr` label in the issue tracker. Why these features were deprecated will be explained thoroughly later when these release notes are improved

New in Robot Framework 2.6.3 (Mar 2, 2012)

  • New logging APIs and other logging enhancements
  • Robot Framework 2.6 has its own Python API for logging (robot.api.logger module) ( issue 339 ) and it also supports Python's standard logging module ( issue 455 ). These APIs make both make logging cleaner than using the standard output and also provide nice functionality such as accurate timestamps. They are explained more thoroughly, and with examples, in the User Guide
  • Another logging related enhancement is that libraries can embed accurate timestamp into the messages logged through stdout/stderr ( issue 456 ). Python based libraries are probably better of using the new logging APIs, but this enhancement adds timestamp support also for Java based libraries as well as for libraries that utilize the remote interface
  • Finally, messages logged during library initialization are nowadays written into the syslog ( issue 892 )
  • Support for custom regexps with embedded argument syntax
  • The embedded argument syntax nowadays supports using a custom regular expression to match the used arguments ( issue 854 ). This is especially useful to prevent name collisions with keywords having similar names
  • Backwards incompatible changes
  • Viewing logs and reports requires a modern browser
  • Logs and reports nowadays use Javascript and CSS styles that only work well in modern browsers. Firefox 3.5, IE 8, or equivalent is required, but newer browsers are recommended. Most notable IE 6 and IE 7 are not supported at all
  • Newer browsers, such as Firefox 4 and Google Chrome 12, have blazingly fast Javascript engines and they can easily view even very large log files. Upgrading your browser may thus be a good idea even if you can open logs and reports with your old browser
  • Viewing in Excel is not supported anymore. You can still copy statistics and other results from logs and reports to Excel, though
  • If your company policy prevents you from upgrading IE or using alternative browsers, you can always keep on using older Robot Framework versions
  • IronPython is currently not supported
  • Unfortunately Robot Framework 2.6 does not work with IronPython. You can use Robot Framework 2.5.7 with IronPython until we manage work around the incompatibilities listed in issue 917
  • Splitting outputs is not supported anymore
  • The earlier explained big log file performance enhancements unfortunately completely broke the old output splitting functionality ( issue 861 ). Fixing splitting so that it would work like it worked earlier would have been a really big task
  • Outputs have been split mainly to make log files smaller by splitting them into pieces that should not grow too big. Because the old approach never worked too well (see e.g. issue 386 and issue 862 ), a decision was made to rather implement new log splitting approach
  • In RF 2.6 using --splitoutputs option gives you a warning and in RF 2.7 the option will be removed altogether. New --splitlog option should be used instead
  • Summary reports were removed
  • As explained above, reports in Robot Framework 2.6 do not have tests open when you open them and in practice they look a lot like the old summary reports. Because reports are generated dynamically, their size is also very small
  • Because summary reports did not provide any value anymore they were removed ( issue 864 )
  • testdoc.py tool does not work currently
  • Unfortunately testdoc.py tool is not compatible with RF 2.6 ( issue 908 ). Hopefully this useful tool can be fixed already in 2.6.1
  • Many internal APIs have changed
  • There are lot of internal changes in a big release like this and some of the changes may affect libraries or tools that are dependent on the internal APIs. The most important changes are listed in issue 907
  • Deprecated keywords and arguments were removed
  • Following earlier deprecated keywords or arguments have been removed
  • deprecated_absolute argument from List Directory keywords ( issue 506 )
  • Create File With Encoding keyword ( issue 507 )
  • Set Screenshot Directory and log_file_directory argument from ScreenshotLibrary ( issue 733 )
  • Other possible backwards incompatible changes
  • It is not possible to fully remove tag statistics and suite statistics tables from reports ( issue 877 )
  • test> tag in XML output does not contain critical attribute anymore ( issue 821 )
  • If a listener method fails, it is not called anymore ( issue 832 )
  • Integer variables like ${42} nowadays have int type and not long
  • Some errors that used to be uncatchable are now normal errors ( issue 736 )
  • The syntax for custom regexps with embedded arguments ( issue 854 ) causes problems if your embedded arguments have : in their name

New in Robot Framework 2.1.3 (Mar 8, 2010)

  • smallish bug fixes and enhancements

New in Robot Framework 2.1.2 (Mar 8, 2010)

  • smallish bug fixes and enhancements

New in Robot Framework 2.1.1 (Mar 8, 2010)

  • bug fixes and various enhancements