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 } } } } { "root_folder" : "imports", "json_file" : "configuration.jsonp", "[import]" : "./${root_folder}/${json_file}" } |
Robot FrameworkIntroduction 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 DocumentationSeparated 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: - Complete the RobotFramework AIO Installation:
- Once the installation finishes, note the command provided by the installer.
- Run the Command:
- Open a terminal (Linux) or PowerShell (Windows).
- Copy and paste the provided command, then execute it to download and install the extensions.
- After execution, note the link displayed in the command output for instructions on setting up GitHub Copilot.
- Verify Installation:
- Open VsCodium and navigate to the Extensions panel.
- Ensure that both GitHub Copilot and GitHub Copilot Chat are listed as installed.
- Set Up Your Account:
- Use the link provided in the command output to register for a GitHub Copilot subscription if you haven't already.
- Log in to GitHub Copilot via VsCodium using your GitHub credentials.
- Start Using GitHub Copilot:
- Once logged in, you can utilize the extensions for AI-powered coding assistance and interactive chat features.
|
RobotFramework_DoIPNew feature: Support of multiple connections Code example: # first connection to device_1 Connect To ECU 192.168.1.1 13400 device_name=device_1 Send Diagnostic Message 1040 device_name=device_1 ${res}= Receive Diagnostic Message device_name=device_1 Disconnect device_name=device_1 # second connection to device_2 Connect To ECU 192.168.1.3 13400 device_name=device_2 Send Diagnostic Message 1040 device_name=device_2 ${res}= Receive Diagnostic Message device_name=device_2 Disconnect device_name=device_2 |
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! |
RobotFramework_UDSUpdated the UDS keywords to support working with multiple connections. Updated the docstring for improved clarity and accuracy. Added new keywords Write Data By Name Routine Control By Name Input Output Control By Name Write Data By Name Get Encoded Request Message Get Decoded Response Message Send UDS Request By Name The Send UDS Request By Name keyword enables users to send requests without requiring knowledge of the specific UDS command type associated with a service, as it automatically detects and handles it. Please refer to RobotFramework_UDS documentation for more details. |
RobotLog2DBAdd support for latest version of robotframework result file - v7.x.x |
RobotLog2RQMNaming convention for resources The names of resources can be customized by a new configuration file in JSON format. New optional argument: --naming_config <NAMING_CONFIG> The new --naming_config argument allows you to customize the naming of resources generated during the import of test results to RQM. The value <NAMING_CONFIG> is the path to a JSON file that defines the naming conventions for resources (testcase , tcer , testresult , ...) generated during the import. The following predefined placeholders are supported and will be replaced with corresponding values in the resource names when executing the import tool: - {testplan}
- {build}
- {environment}
- {testsuite}
- {testcase}
Example usage: Definition of naming convention as JSON file naming_convention.json Meaning: The values of the left hand side of the colon will be replaced by the values of the right hand side of the colon: { "testcase" : "{testcase} (imported by RobotLog2RQM tool)", "tcer" : "{testcase}_{environment}", "testresult" : "{testcase}_{build}", "testsuite" : "{testplan}_{testsuite}", "tser" : "{testsuite}_{environment}", "suiteresult" : "{testsuite}_{environment}_{build}" }
Import Robot Framework results to RQM with above JSON file python -m RobotLog2RQM robot_result.xml https://rqm-host.com My_RQM_Project testuser testpass 123 --naming_config path/to/naming_convention.json
|