/robotframework-ConfluentKafkaLibrary

Robot Framework keyword library wrapper for python confluent kafka

Primary LanguagePythonApache License 2.0Apache-2.0

Robot Framework - ConfluentKafkaLibrary

ConfluentKafkaLibrary library is a wrapper for the confluent-kafka-python.

ConfluentKafkaLibrary is compatible with the latest version of confluent-kafka-python, where the library versions have a 1:1 correspondence (e.g., ConfluentKafkaLibrary 1.3.0 corresponds to confluent-kafka-python 1.3.0). Bug fixes and updates are denoted by a trailing hyphen, such as 1.3.0-1.

Documentation

The keyword documentation for ConfluentKafkaLibrary can be found here

To generate the documentation, use the following command:

python -m robot.libdoc -f html src/ConfluentKafkaLibrary docs/index.html

Installation

To install the library, run the following command:

pip install robotframework-confluentkafkalibrary

Extra packages:

  • [avro] = ['fastavro >= 1.3.2', 'avro >= 1.11.1']
  • [legacyavro] = ['fastavro >= 1.3.2', 'avro-python3 >= 1.10.1']
  • [json] = ['jsonschema >= 3.2.0']
  • [protobuf] = ['protobuf >= 4.22.0']

To install all dependencies use [all] extension like:

pip install robotframework-confluentkafkalibrary[all]

Usage

In most cases, you can refer to the confluent-kafka-python documentation for guidance. Every keyword in ConfluentKafkaLibrary is designed to match the corresponding Python functions. If you are unsure about the pre-configured keywords, please visit the robotframework-ConfluentKafkaLibrary documentation. The Kafka team maintains the up-to-date documentation for configuration properties and their values here.

  • You can find basic usage examples in the ./examples/test.robot
  • For more complex examples, such as handling byte data from a topic, using multiple consumers, or running threaded avro consumers, please refer to the documentation.

Testing

  • The library is tested using black-box tests written in Robot Framework.
  • For testing, a dockerized enterprise Kafka platform with schema registry support and REST proxy is used. The platform is deployed and tested for each pull request and merge to the master branch.
  • Tests are divided into the following files:
    • test.robot - Basic tests to verify functionality of the Consumer and Producer.
    • test_adminclient.robot - Verifications of admin client functionality.
    • test_avro.robot - Verifications of avro and serializers functionality.
  • Not executable example of oauth usage can be found here
    • Update of deployment #21 is required.
  • The core testing logic involves producing data to Kafka, connecting one consumer in a thread, and working with the results in specific test cases.

Known Limitations:

  • Unable to install robotframework-confluentkafkalibrary on Amazon EC2 graviton instance type