Skip to main content

Generation of synthetic test data that is consistent.

Reason this release was yanked:

Robot Framework does not find any keywords

Project description

SynData for Robot Framework

The purpose of this library is to generate synthetic test data that is as consistent as possible. The library achieves this by providing specialized generators for different countries, which are used to generate the test data.

In addition, there are two functions that characterize this library:

  • The context defines a "data space" in which previously generated data is stored, so that repeating a keyword returns the value of the first call.
  • The library logs the generated data in a separate file, and a corresponding switch allows the library to use a log file as a data source. This allows, for example, a test case to be re-executed with the data from a previous execution. To do this, only the import statement of the library needs to be changed, and the test case can remain unchanged.

See keyword documentation for more details.

Installation instructions

At this time, there is no way to install the library automatically. It is planned that it will be possible to install it as usual via pip.

Examples

... to follow at a later date

Notes on the structure of the library

The library should support the concept of localization from the outset so that test data can be generated specifically for a country. Since only a specialized generator is initially provided for Germany, there is a general generator that uses Faker to generate test data.

The generated data should be consistent. When using a context, a stored date may need to be returned, and in some cases, only data from a defined data source should be returned and no data should be generated at all. This short list makes it clear that there are a number of factors that determine whether a date is generated or taken from a data source. In order to largely eliminate sources of error, the dependencies are modeled in decision tables and the Python code is generated from the decision tables.

This project uses the LF-ET decision table editor from LOHRFINK software engineering GmbH & Co. KG to create and maintain the decision tables. In LF-ET, the rules can be filtered in almost any way, so that "excerpts" from a large set of rules can also be analyzed. LF-ET provides automated verification of completeness, absence of redundancies and contradictions. From such a decision table, LF-ET can generate the corresponding source code for different programming languages, which is also used in this project.

The classes generated from a decision table are always introduced with the same comment lines:

# *** WARNING: DO NOT MODIFY *** This is a generated Python source code!
#
# Generated by LF-ET 2.4.1 (260127a), https://www.lohrfink.de/lfet

This project is supported by LOHRFINK software engineering GmbH & Co. KG, and a current version of the decision table editor LF-ET is available at the following link: https://www.lohrfink.de/lfet/lfet.latest.inst

The specialized generators and the required data are stored in separate packages that can be assigned using the name of the region. For Germany, the code and data can be found in the folder src/SynData/de_DE.

Special thanks

I would like to thank LOHRFINK software engineering GmbH & Co. KG for providing a project license for this project. Thanks to the project license for the LF-ET decision table editor, the process logic for generation can be modeled in decision tables and the corresponding Python code can be generated.

This library is also the result of constructive discussions with the Robot Framework community. Special thanks go to René, who gave me the idea that the library should log the generated data and that the log should be used as a source for repeating test cases.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework_syndata-0.0.7.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotframework_syndata-0.0.7-py3-none-any.whl (7.8 MB view details)

Uploaded Python 3

File details

Details for the file robotframework_syndata-0.0.7.tar.gz.

File metadata

  • Download URL: robotframework_syndata-0.0.7.tar.gz
  • Upload date:
  • Size: 7.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.0 Windows/11

File hashes

Hashes for robotframework_syndata-0.0.7.tar.gz
Algorithm Hash digest
SHA256 ee8d7b9d75881a282b52684dde0471313ad42cd642a9b7c768435886c7ff9eb0
MD5 6e5d6f37bfdc262c6f56699d397e8c1a
BLAKE2b-256 469f696642cbbf96acc7581167d13ae7c84377aa09d9028b37e055e91a2dc450

See more details on using hashes here.

File details

Details for the file robotframework_syndata-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_syndata-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5468ee14934adef2d4a86df322092caaaaaa68d95c5d0a34c03e298034f12a98
MD5 833ad47fd0f34ff828c7c2088374aa4f
BLAKE2b-256 8fa544cd7b2dbe6664af1ee42f0eec1bdce1b89e0adec6b0814dd57732cfb980

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page