Lib_Kafka is a python library for Robotframework to test Kafka. It's based on open source project pykafka.
The goal of LibKafka contains:
- Producer: Produce the specific events to Kafka.
- Consumer: Wait the specific event assertion from Kafka.
1. pip install pykafka
2. Including the Lib_Kafka.py in Robotframework script. And start to call the following keyword function from Robotframework.
Waiting to get event from Kafka for a period of time from specific topic.
String event_consumer(host_kafka, host_zookeeper, topic, assertion_event_content, match_partially=False, timeout_sec=20)
Required | Parameters | Description | Default Value | Example |
---|---|---|---|---|
O | host_kafka | Kafka broker host:IP | N/A | 10.1.1.1:9092 |
O | host_zookeeper | Zookeeper host:IP | N/A | 10.1.1.1:2181 |
O | topic | Topic name for receiving events | N/A | test_topic |
O | assertion_event_content | Specific event content assertion | N/A | Stop_event |
X | match_partially | Match partially/all event content assertion | False | True |
X | timeout_sec | Timeout seconds | 20 | 30 |
Values | Description |
---|---|
GotEvent | Got the specific event content from specific topic before timeout |
Timeout | Didn't received specific event content from specific topic timeout |
KafkaConnectFailed | Can't connect to specific Kafka host |
Waiting to get multiple event assertion of single event from Kafka for a period of time from specific topic.
String event_consumer_multiple_match_partially(host_kafka, host_zookeeper, topic, assertion_event_content_arr, timeout_sec=20)
Required | Parameters | Description | Default Value | Example |
---|---|---|---|---|
O | host_kafka | Kafka broker host:IP | N/A | 10.1.1.1:9092 |
O | host_zookeeper | Zookeeper host:IP | N/A | 10.1.1.1:2181 |
O | topic | Topic name for receiving events | N/A | test_topic |
O | assertion_event_content_arr | Specific event content assertion | N/A | [Stop_event, A, B] |
X | timeout_sec | Timeout seconds | 20 | 30 |
Values | Description |
---|---|
GotEvent | Got all assertion of specific event content from specific topic before timeout |
Timeout | Didn't received specific event content or part of the assertion didn't match from specific topic and reached timeout_sec |
KafkaConnectFailed | Can't connect to specific Kafka host |
Waiting to get single event from Kafka for a period of time from specific topic.
String event_single_consumer(host_kafka, host_zookeeper, topic, timeout_sec=20)
Required | Parameters | Description | Default Value | Example |
---|---|---|---|---|
O | host_kafka | Kafka broker host:IP | N/A | 10.1.1.1:9092 |
O | host_zookeeper | Zookeeper host:IP | N/A | 10.1.1.1:2181 |
O | topic | Topic name for receiving events | N/A | test_topic |
X | timeout_sec | Timeout seconds | 20 | 30 |
Values | Description |
---|---|
GotEvent | Got the specific event content from specific topic before timeout |
Timeout | Didn't received specific event content from specific topic timeout |
KafkaConnectFailed | Can't connect to specific Kafka host |
Consume the event from specific topic to latest offset
String event_consume_to_latest(host_kafka, host_zookeeper, topic)
Required | Parameters | Description | Default Value | Example |
---|---|---|---|---|
O | host_kafka | Kafka broker host:IP | N/A | 10.1.1.1:9092 |
O | host_zookeeper | Zookeeper host:IP | N/A | 10.1.1.1:2181 |
O | topic | Topic name for receiving events | N/A | test_topic |
Values | Description |
---|---|
ConsumeDone | Consume the event to the latest offset |
Error | Error when consuming event |
KafkaConnectFailed | Can't connect to specific Kafka host |
Produce the events to Kafka.
String event_producer(host_kafka, topic, event_content_arr, wait_ack=False)
Required | Parameters | Description | Default Value | Example |
---|---|---|---|---|
O | host_kafka | Kafka broker host:IP | N/A | 10.1.1.1:9092 |
O | topic | Topic name for sending events | N/A | test_topic |
O | event_content_arr | Event content array | N/A | A B C Stop_event |
X | wait_ack | While sending the events, should wait for the ack or not. | False | True |
Values | Description |
---|---|
SendSuccess | All the events is send successfully |
SendFailed | Part of/All of the events send failed |
KafkaConnectFailed | Can't connect to specific Kafka host |