Skip to content

Releases: test-fullautomation/RobotFramework_AIO

RobotFramework AIO version 0.13.2.6

27 Feb 09:51
4c475a2
Compare
Choose a tag to compare
Pre-release

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Naming convention:

    • Key names can only consist of letters, digits and the following special characters: _ + - * / \ (backslashes are allowed but must be masked).
    • Key names must start with a letter, a digit or an underscore.
    • Key names must not be empty strings. But leading and trailing blanks will be removed (and therefore do not cause errors).

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

  • Reworked handling of parameter scope

    To change the value of an existing parameter, an absolute path must be used always.

    Example:

           {
              "params" : {"001" : {"002" : {
                                              "param" : 1,
                                              ${params.001.002.param} : 2
                                           }
                                  }
                         }
           }
  • Enabled dynamic paths for imported JSON files (based on dollar operator expressions)

    Example:

           {
              "root_folder" : "imports",
              "json_file"   : "configuration.jsonp",
              "[import]"    : "./${root_folder}/${json_file}"
           }

PrometheusInterface

Added keywords for Prometheus metric types: Summary and Histogram:

  • add_summary
  • observe_summary
  • add_histogram
  • observe_histogram

References:

RobotFramework_TestsuitesManagement

  • Improved error messages in case of issues while loading the test configuration.

  • Updated JSON schema validation.

  • Resolved redundant code.

  • Modified the naming convention check to be aligned with Robot Framework core standards.

  • Extended import of variant configuration files

    After the RobotFramework_TestsuitesManagement library is imported

    Library      RobotFramework_TestsuitesManagement    WITH NAME    testsuites

    a variant configuration file is usually loaded in a way like this:

    Suite Setup    testsuites.testsuite_setup    ./config/variants_config.jsonp

    With the three-dots syntax extension for relative paths, the positional dependency between the file containing the suite setup and the file with the variant configuration, is made dynamic.

    Suite Setup    testsuites.testsuite_setup    .../config/variants_config.jsonp

    The Robot Framework now also recursively considers parent directories while searching for variant configuration files starting with the actual relative path.

    Important: This feature previously was located inside the variant configuration files, e.g.:

    "default": {
    "name": "testconfig.json",
    "path": ".../"
    }

    This is not supported any more! Only relative paths to the actual directory ("path": "./") and to the parent directory ("path": "../") are possible.

    Why this change?

    Reason 1: It would be confusing to have the three-dots syntax available at two different positions in parallel in the code.

    Reason 2: It is possible now to move the folder containing the variant configuration files and the parameter configuration files up and down in the hierarchy of directories in the file sytem without the need to adapt any import path afterwards!

RobotLog2DB

Add support f...

Read more

RobotFramework AIO version 0.13.2.5

19 Feb 11:27
002245d
Compare
Choose a tag to compare
Pre-release

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Naming convention:

    • Key names can only consist of letters, digits and the following special characters: _ + - * / \ (backslashes are allowed but must be masked).
    • Key names must start with a letter, a digit or an underscore.
    • Key names must not be empty strings. But leading and trailing blanks will be removed (and therefore do not cause errors).

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

  • Reworked handling of parameter scope

    To change the value of an existing parameter, an absolute path must be used always.

    Example:

           {
              "params" : {"001" : {"002" : {
                                              "param" : 1,
                                              ${params.001.002.param} : 2
                                           }
                                  }
                         }
           }
  • Enabled dynamic paths for imported JSON files (based on dollar operator expressions)

    Example:

           {
              "root_folder" : "imports",
              "json_file"   : "configuration.jsonp",
              "[import]"    : "./${root_folder}/${json_file}"
           }

PrometheusInterface

Added keywords for Prometheus metric types: Summary and Histogram:

  • add_summary
  • observe_summary
  • add_histogram
  • observe_histogram

References:

RobotFramework_TestsuitesManagement

  • Improved error messages in case of issues while loading the test configuration.

  • Updated JSON schema validation.

  • Resolved redundant code.

  • Modified the naming convention check to be aligned with Robot Framework core standards.

  • Extended import of variant configuration files

    After the RobotFramework_TestsuitesManagement library is imported

    Library      RobotFramework_TestsuitesManagement    WITH NAME    testsuites

    a variant configuration file is usually loaded in a way like this:

    Suite Setup    testsuites.testsuite_setup    ./config/variants_config.jsonp

    With the three-dots syntax extension for relative paths, the positional dependency between the file containing the suite setup and the file with the variant configuration, is made dynamic.

    Suite Setup    testsuites.testsuite_setup    .../config/variants_config.jsonp

    The Robot Framework now also recursively considers parent directories while searching for variant configuration files starting with the actual relative path.

    Important: This feature previously was located inside the variant configuration files, e.g.:

    "default": {
    "name": "testconfig.json",
    "path": ".../"
    }

    This is not supported any more! Only relative paths to the actual directory ("path": "./") and to the parent directory ("path": "../") are possible.

    Why this change?

    Reason 1: It would be confusing to have the three-dots syntax available at two different positions in parallel in the code.

    Reason 2: It is possible now to move the folder containing the variant configuration files and the parameter configuration files up and down in the hierarchy of directories in the file sytem without the need to adapt any import path afterwards!

RobotLog2DB

Add support f...

Read more

RobotFramework AIO version 0.13.2.3

12 Feb 14:28
548ade6
Compare
Choose a tag to compare
Pre-release

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Naming convention:

    • Key names can only consist of letters, digits and the following special characters: _ + - * / \ (backslashes are allowed but must be masked).
    • Key names must start with a letter, a digit or an underscore.
    • Key names must not be empty strings. But leading and trailing blanks will be removed (and therefore do not cause errors).

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

  • Reworked handling of parameter scope

    To change the value of an existing parameter, an absolute path must be used always.

    Example:

           {
              "params" : {"001" : {"002" : {
                                              "param" : 1,
                                              ${params.001.002.param} : 2
                                           }
                                  }
                         }
           }
  • Enabled dynamic paths for imported JSON files (based on dollar operator expressions)

    Example:

           {
              "root_folder" : "imports",
              "json_file"   : "configuration.jsonp",
              "[import]"    : "./${root_folder}/${json_file}"
           }

PrometheusInterface

Added keywords for Prometheus metric types: Summary and Histogram:

  • add_summary
  • observe_summary
  • add_histogram
  • observe_histogram

References:

RobotFramework_TestsuitesManagement

  • Improved error messages in case of issues while loading the test configuration.

  • Updated JSON schema validation.

  • Resolved redundant code.

  • Modified the naming convention check to be aligned with Robot Framework core standards.

  • Extended import of variant configuration files

    After the RobotFramework_TestsuitesManagement library is imported

    Library      RobotFramework_TestsuitesManagement    WITH NAME    testsuites

    a variant configuration file is usually loaded in a way like this:

    Suite Setup    testsuites.testsuite_setup    ./config/variants_config.jsonp

    With the three-dots syntax extension for relative paths, the positional dependency between the file containing the suite setup and the file with the variant configuration, is made dynamic.

    Suite Setup    testsuites.testsuite_setup    .../config/variants_config.jsonp

    The Robot Framework now also recursively considers parent directories while searching for variant configuration files starting with the actual relative path.

    Important: This feature previously was located inside the variant configuration files, e.g.:

    "default": {
    "name": "testconfig.json",
    "path": ".../"
    }

    This is not supported any more! Only relative paths to the actual directory ("path": "./") and to the parent directory ("path": "../") are possible.

    Why this change?

    Reason 1: It would be confusing to have the three-dots syntax available at two different positions in parallel in the code.

    Reason 2: It is possible now to move the folder containing the variant configuration files and the parameter configuration files up and down in the hierarchy of directories in the file sytem without the need to adapt any import path afterwards!

RobotLog2DB

Add support f...

Read more

RobotFramework AIO version 0.13.2.2

11 Feb 14:39
4af47b7
Compare
Choose a tag to compare
Pre-release

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Naming convention:

    • Key names can only consist of letters, digits and the following special characters: _ + - * / \ (backslashes are allowed but must be masked).
    • Key names must start with a letter, a digit or an underscore.
    • Key names must not be empty strings. But leading and trailing blanks will be removed (and therefore do not cause errors).

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

  • Reworked handling of parameter scope

    To change the value of an existing parameter, an absolute path must be used always.

    Example:

           {
              "params" : {"001" : {"002" : {
                                              "param" : 1,
                                              ${params.001.002.param} : 2
                                           }
                                  }
                         }
           }
  • Enabled dynamic paths for imported JSON files (based on dollar operator expressions)

    Example:

           {
              "root_folder" : "imports",
              "json_file"   : "configuration.jsonp",
              "[import]"    : "./${root_folder}/${json_file}"
           }

PrometheusInterface

Added keywords for Prometheus metric types: Summary and Histogram:

  • add_summary
  • observe_summary
  • add_histogram
  • observe_histogram

References:

RobotFramework_TestsuitesManagement

  • Improved error messages in case of issues while loading the test configuration.

  • Updated JSON schema validation.

  • Resolved redundant code.

  • Modified the naming convention check to be aligned with Robot Framework core standards.

  • Extended import of variant configuration files

    After the RobotFramework_TestsuitesManagement library is imported

    Library      RobotFramework_TestsuitesManagement    WITH NAME    testsuites

    a variant configuration file is usually loaded in a way like this:

    Suite Setup    testsuites.testsuite_setup    ./config/variants_config.jsonp

    With the three-dots syntax extension for relative paths, the positional dependency between the file containing the suite setup and the file with the variant configuration, is made dynamic.

    Suite Setup    testsuites.testsuite_setup    .../config/variants_config.jsonp

    The Robot Framework now also recursively considers parent directories while searching for variant configuration files starting with the actual relative path.

    Important: This feature previously was located inside the variant configuration files, e.g.:

    "default": {
    "name": "testconfig.json",
    "path": ".../"
    }

    This is not supported any more! Only relative paths to the actual directory ("path": "./") and to the parent directory ("path": "../") are possible.

    Why this change?

    Reason 1: It would be confusing to have the three-dots syntax available at two different positions in parallel in the code.

    Reason 2: It is possible now to move the folder containing the variant configuration files and the parameter configuration files up and down in the hierarchy of directories in the file sytem without the need to adapt any import path afterwards!

RobotLog2DB

Add support f...

Read more

RobotFramework AIO version 0.13.2.1

06 Feb 12:01
1463da0
Compare
Choose a tag to compare
Pre-release

Changelog

PrometheusInterface

Added keywords for Prometheus metric types: Summary and Histogram:

  • add_summary
  • observe_summary
  • add_histogram
  • observe_histogram

References:

RobotFramework_TestsuitesManagement

  • Improved error messages in case of issues while loading the test configuration.

  • Updated JSON schema validation.

  • Resolved redundant code.

  • Modified the naming convention check to be aligned with Robot Framework core standards.

  • Extended import of variant configuration files

    After the RobotFramework_TestsuitesManagement library is imported

    Library      RobotFramework_TestsuitesManagement    WITH NAME    testsuites

    a variant configuration file is usually loaded in a way like this:

    Suite Setup    testsuites.testsuite_setup    ./config/variants_config.jsonp

    With the three-dots syntax extension for relative paths, the positional dependency between the file containing the suite setup and the file with the variant configuration, is made dynamic.

    Suite Setup    testsuites.testsuite_setup    .../config/variants_config.jsonp

    The Robot Framework now also recursively considers parent directories while searching for variant configuration files starting with the actual relative path.

    Important: This feature previously was located inside the variant configuration files, e.g.:

    "default": {
    "name": "testconfig.json",
    "path": ".../"
    }

    This is not supported any more! Only relative paths to the actual directory ("path": "./") and to the parent directory ("path": "../") are possible.

    Why this change?

    Reason 1: It would be confusing to have the three-dots syntax available at two different positions in parallel in the code.

    Reason 2: It is possible now to move the folder containing the variant configuration files and the parameter configuration files up and down in the hierarchy of directories in the file sytem without the need to adapt any import path afterwards!

RobotLog2DB

Add support for robotframework (extended version) result file with thread feature

RobotFramework AIO version 0.13.1.20

13 Jan 15:18
f004bd1
Compare
Choose a tag to compare

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Naming convention:

    • Key names can only consist of letters, digits and the following special characters: _ + - * / \ (backslashes are allowed but must be masked).
    • Key names must start with a letter, a digit or an underscore.
    • Key names must not be empty strings. But leading and trailing blanks will be removed (and therefore do not cause errors).

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

  • Reworked handling of parameter scope

    To change the value of an existing parameter, an absolute path must be used always.

    Example:

           {
              "params" : {"001" : {"002" : {
                                              "param" : 1,
                                              ${params.001.002.param} : 2
                                           }
                                  }
                         }
           }
  • Enabled dynamic paths for imported JSON files (based on dollar operator expressions)

    Example:

           {
              "root_folder" : "imports",
              "json_file"   : "configuration.jsonp",
              "[import]"    : "./${root_folder}/${json_file}"
           }

Robot Framework

Introduction of New Thread Locking Keywords:

In this release, we have introduced two powerful new keywords to enhance thread management and synchronization in your test automation: Thread RLock Acquire and Thread RLock Release. These keywords are essential for managing re-entrant locks (RLocks), providing greater control and safety in multi-threaded environments.

Thread RLock Acquire:

The Thread RLock Acquire keyword allows a thread to acquire a re-entrant lock (RLock). This is crucial for ensuring that critical sections of your code are executed by only one thread at a time, preventing race conditions and ensuring data consistency.

  • In robot code:

    Thread RLock Acquire     rlock_name     blocking=True     timeout=-1

Thread RLock Release:

The Thread RLock Release keyword allows a thread to release a previously acquired re-entrant lock (RLock). Properly releasing locks is vital for avoiding deadlocks and ensuring the smooth execution of concurrent operations.

  • In robot code:

    Thread RLock Release     rlock_name

More details can be found in RobotFrameworkAIO_Reference.pdf chapter "Threading".

Optimized Wait Thread Notification Mechanism:

Replaced the wait thread notification mechanism to avoid continuous GIL acquisition, resulting in improved performance.

RobotFramework AIO Documentation

Separated documentation in an internal and an extended version (regarding the code of Robot Framework core)

RobotFramework AIO Package (extended core)

Robot Framework pipeline

  • Added test coverage to ensure functionality and improve overall code reliability

VSCodium Package

  • robotframework-lsp extension is now deprecated, and the RobotCode extension is used as its replacement. Please refer to this issue for more detail.

  • GitHub Copilot

    Due to licensing restrictions, the GitHub Copilot and GitHub Copilot Chat extensions are not included in the pre-installed packages and must be installed manually.

    To assist you, the RobotFramework AIO installer provides a ready-to-use command at the end of the installation process. This command is tailored to download and install the correct versions of both extensions, ensuring compatibility with your environment.

    Steps to Install GitHub Copilot Extensions:

    1. Complete the RobotFramework AIO Installation:
      • Once the installation finishes, note the command provided by the installer.
    2. Run the Command:
      • Open a terminal (Linux) or PowerShell (Windows).
      • Copy and paste the provided command, then execute it to download and install...
Read more

RobotFramework AIO version 0.13.1.18

18 Dec 12:55
e187f4f
Compare
Choose a tag to compare
Pre-release

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Naming convention:

    • Key names can only consist of letters, digits and the following special characters: _ + - * / \ (backslashes are allowed but must be masked).
    • Key names must start with a letter, a digit or an underscore.
    • Key names must not be empty strings. But leading and trailing blanks will be removed (and therefore do not cause errors).

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

  • Reworked handling of parameter scope

    To change the value of an existing parameter, an absolute path must be used always.

    Example:

           {
              "params" : {"001" : {"002" : {
                                              "param" : 1,
                                              ${params.001.002.param} : 2
                                           }
                                  }
                         }
           }
  • Enabled dynamic paths for imported JSON files (based on dollar operator expressions)

    Example:

           {
              "root_folder" : "imports",
              "json_file"   : "configuration.jsonp",
              "[import]"    : "./${root_folder}/${json_file}"
           }

Robot Framework

Introduction of New Thread Locking Keywords:

In this release, we have introduced two powerful new keywords to enhance thread management and synchronization in your test automation: Thread RLock Acquire and Thread RLock Release. These keywords are essential for managing re-entrant locks (RLocks), providing greater control and safety in multi-threaded environments.

Thread RLock Acquire:

The Thread RLock Acquire keyword allows a thread to acquire a re-entrant lock (RLock). This is crucial for ensuring that critical sections of your code are executed by only one thread at a time, preventing race conditions and ensuring data consistency.

  • In robot code:

    Thread RLock Acquire     rlock_name     blocking=True     timeout=-1

Thread RLock Release:

The Thread RLock Release keyword allows a thread to release a previously acquired re-entrant lock (RLock). Properly releasing locks is vital for avoiding deadlocks and ensuring the smooth execution of concurrent operations.

  • In robot code:

    Thread RLock Release     rlock_name

More details can be found in RobotFrameworkAIO_Reference.pdf chapter "Threading".

Optimized Wait Thread Notification Mechanism:

Replaced the wait thread notification mechanism to avoid continuous GIL acquisition, resulting in improved performance.

RobotFramework AIO Documentation

Separated documentation in an internal and an extended version (regarding the code of Robot Framework core)

RobotFramework AIO Package (extended core)

Robot Framework pipeline

  • Added test coverage to ensure functionality and improve overall code reliability

VSCodium Package

  • robotframework-lsp extension is now deprecated, and the RobotCode extension is used as its replacement. Please refer to this issue for more detail.

  • GitHub Copilot

    Due to licensing restrictions, the GitHub Copilot and GitHub Copilot Chat extensions are not included in the pre-installed packages and must be installed manually.

    To assist you, the RobotFramework AIO installer provides a ready-to-use command at the end of the installation process. This command is tailored to download and install the correct versions of both extensions, ensuring compatibility with your environment.

    Steps to Install GitHub Copilot Extensions:

    1. Complete the RobotFramework AIO Installation:
      • Once the installation finishes, note the command provided by the installer.
    2. Run the Command:
      • Open a terminal (Linux) or PowerShell (Windows).
      • Copy and paste the provided command, then execute it to download and install...
Read more

RobotFramework AIO version 0.13.0.23

04 Oct 12:03
3dd6118
Compare
Choose a tag to compare

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Key names have to start with a character, digit, or underscore and must not contain these special characters !#$%^&()=[]{}|;',?`~

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

PrometheusInterface

Initial introduction of keyword library PrometheusInterface.

The interface library PrometheusInterface provides Robot Framework keywords to communicate with the monitoring system Prometheus. With the help of this interface it is possible to use Prometheus to monitor data provided by Robot Framework tests.

The monitoring system Prometheus has to be installed separately. Please visit the homepage for that. This homepage also contains a getting started section containing useful hints about how to configure the application. Further informations can also be found here.

The entire test setup is described in the main documentation of this keyword library.

Example

The goal is to count the number of passed and failed tests at two test benches: testbench_1 and testbench_2.

Step 1: Import the interface library

Library %{ROBOTPYTHONSITEPACKAGESPATH}/PrometheusInterface/prometheus_interface.py WITH NAME rf.prometheus_interface

Step 2: Create a counter for passed and a counter for failed tests (with "testbench" is the name of a label, and not the value of a label with this name; the name of the testbench is also not part of the counter name!).

rf.prometheus_interface.add_counter name=num_passed description=: number of passed tests labels=testbench
rf.prometheus_interface.add_counter name=num_failed description=: number of failed tests labels=testbench

This is usually done in the suite setup.

Step 3: Whenever a test is passed or failed on a certain testbench, increment the corresponding counter, passing the testbench name also (here the testbench name is the value of the label with name "testbench").

rf.prometheus_interface.inc_counter name=num_passed labels=testbench_1
rf.prometheus_interface.inc_counter name=num_failed labels=testbench_2

And so on.

PyTestLog2DB

  • Introduce new feature to switch the access interface to TestResult's database
    • Add supported new interface to database REST API Access.

      This interface helps to import test result data to the secured server which is not allowed to interact directly with the database.

    • Add new optional argument --interface which allow to switch between available interfaces (currently only direct access). Its value can be:

      • db (default value): use direct access to TestResult's database.
      • rest: use REST API Access to TestResult's database (new access)
    • This change is transparent to end user.

  • Add new optional argument --testrunurl to specify a link to test execution job, such as Jenkins or Gitlab CI/CD
  • Fix issue with parsing timestamps from pytest version 8.3.1 result files

Robot Framework

Introduction of New Thread Locking Keywords:

In this release, we have introduced two powerful new keywords to enhance thread management and synchronization in your test automation: Thread RLock Acquire and Thread RLock Release. These keywords are essential for managing re-entrant locks (RLocks), providing greater control and safety in multi-threaded environments.

Thread RLock Acquire:

The Thread RLock Acquire keyword allows a thread to acquire a re-entrant lock (RLock). This is crucial for ensuring that critical sections of your code are executed by only one thread at a time, preventing race conditions and ensuring data consistency.

  • In robot code:

    Thread RLock Acquire     rlock_name     blocking=True     timeout=-1

Thread RLock Release:

The Thread RLock Release keyword allows a thread to release a previously acquired re-entrant lock (RLock). Properly releasing locks is vital for avoiding deadlocks and ensuring the smooth execution of concurrent operations.

  • In robot code:

    Thread RLock Release     rlock_name

More details can be found in

Read more

RobotFramework AIO version 0.13.0.22

17 Sep 08:10
0a4b28b
Compare
Choose a tag to compare
Pre-release

Changelog

JsonPreprocessor

  • Changed data type of return value

    JsonPreprocessor now returns a dotdict (instead of a standard Python dictionary). With the dotdict notation, dictionary keys can be accessed as attributes. The resulting code is shorter and therefore easier to read.

  • Blocked dynamic key names

    In opposite to previous versions of the JsonPreprocessor, the creation of new keys based on parameter (dynamic key names), is not supported an more!

    Example:

    {
       "param1" : "ABC",
       "param2" : "XYZ",
       "${param2}" : 1
    }

    This code previously created a new parameter "XYZ" with value 1. Now an error message will be raised.

  • Improved error handling and error messages

  • Added jsonLoads method that allows users to directly parse JSONP content from strings

    Example:

    jsonpStr = "{\"A\" : 1, \"B\" : 2}"
    json_preprocessor = CJsonPreprocessor()
    retValues = json_preprocessor.jsonLoads(jsonpStr)
  • Added a naming convention check for key names within JSONP content processed by the JsonPreprocessor

    Key names have to start with a character, digit, or underscore and must not contain these special characters !#$%^&()=[]{}|;',?`~

    Example:

    Valid key names are: "abcParam", "01_Param", "__param+1", "param-1", "[email protected]", ...

    Invalid key names are: "+param01", "param$01", "abc#Param", ...

PrometheusInterface

Initial introduction of keyword library PrometheusInterface.

The interface library PrometheusInterface provides Robot Framework keywords to communicate with the monitoring system Prometheus. With the help of this interface it is possible to use Prometheus to monitor data provided by Robot Framework tests.

The monitoring system Prometheus has to be installed separately. Please visit the homepage for that. This homepage also contains a getting started section containing useful hints about how to configure the application. Further informations can also be found here.

The entire test setup is described in the main documentation of this keyword library.

Example

The goal is to count the number of passed and failed tests at two test benches: testbench_1 and testbench_2.

Step 1: Import the interface library

Library %{ROBOTPYTHONSITEPACKAGESPATH}/PrometheusInterface/prometheus_interface.py WITH NAME rf.prometheus_interface

Step 2: Create a counter for passed and a counter for failed tests (with "testbench" is the name of a label, and not the value of a label with this name; the name of the testbench is also not part of the counter name!).

rf.prometheus_interface.add_counter name=num_passed description=: number of passed tests labels=testbench
rf.prometheus_interface.add_counter name=num_failed description=: number of failed tests labels=testbench

This is usually done in the suite setup.

Step 3: Whenever a test is passed or failed on a certain testbench, increment the corresponding counter, passing the testbench name also (here the testbench name is the value of the label with name "testbench").

rf.prometheus_interface.inc_counter name=num_passed labels=testbench_1
rf.prometheus_interface.inc_counter name=num_failed labels=testbench_2

And so on.

PyTestLog2DB

  • Introduce new feature to switch the access interface to TestResult's database
    • Add supported new interface to database REST API Access.

      This interface helps to import test result data to the secured server which is not allowed to interact directly with the database.

    • Add new optional argument --interface which allow to switch between available interfaces (currently only direct access). Its value can be:

      • db (default value): use direct access to TestResult's database.
      • rest: use REST API Access to TestResult's database (new access)
    • This change is transparent to end user.

  • Add new optional argument --testrunurl to specify a link to test execution job, such as Jenkins or Gitlab CI/CD
  • Fix issue with parsing timestamps from pytest version 8.3.1 result files

Robot Framework

Introduction of New Thread Locking Keywords:

In this release, we have introduced two powerful new keywords to enhance thread management and synchronization in your test automation: Thread RLock Acquire and Thread RLock Release. These keywords are essential for managing re-entrant locks (RLocks), providing greater control and safety in multi-threaded environments.

Thread RLock Acquire:

The Thread RLock Acquire keyword allows a thread to acquire a re-entrant lock (RLock). This is crucial for ensuring that critical sections of your code are executed by only one thread at a time, preventing race conditions and ensuring data consistency.

  • In robot code:

    Thread RLock Acquire     rlock_name     blocking=True     timeout=-1

Thread RLock Release:

The Thread RLock Release keyword allows a thread to release a previously acquired re-entrant lock (RLock). Properly releasing locks is vital for avoiding deadlocks and ensuring the smooth execution of concurrent operations.

  • In robot code:

    Thread RLock Release     rlock_name

More details can be found in

Read more

RobotFramework AIO version 0.12.1.5

24 Jun 14:45
5b4abb0
Compare
Choose a tag to compare
rel/aio/0.12.1.5

released version aio/0.12.1.5