Skip to main content

A plugin to send pytest events to Kafka

Project description

pytest-kafkavents

PyTest Kafkavents is a plugin for real time streaming of test result events to a Kafka instance. Events can also be logged for batch replay of events via another utility (in the works).

Steps to use pytest-kafkavents

  1. Clone me (soon to be pip install me)
    git clone https://github.com/grandcentralstation/pytest-kafkavents.git

To install for dev

    pip install -e .
  1. Create a Kafka instance on Red Hat OpenShift Streams for Apache Kafka

  2. Download and install the client from the Apache Kafka client website.

SIDENOTE: Pytest-Kafkavent uses the Confluent Python Kafka library

On Fedora...

dnf info python3-confluent-kafka
pip show confluent-kafka
  1. Copy and configure app-services.properties template to your local kafka client bin directory and fill-in info for your instance.

  2. Setup env variables

export KV_BOOTSTRAP_SERVER=my-kafka-example.rhcloud.com:443
  1. Create topics (with the client command)
./kafka-topics.sh --create --topic kafkavent --bootstrap-server my-kafka-n--u-bvmxxe-dvgycp-axfjmaftyk.bf2.kafka.rhcloud.com:443 --command-config ../config/app-services.properties
./kafka-topics.sh --create --topic kafkavent-failed --bootstrap-server my-kafka-n--u-bvmxxe-dvgycp-axfjmaftyk.bf2.kafka.rhcloud.com:443 --command-config ../config/app-services.properties
./kafka-topics.sh --create --topic kafkavent-infra --bootstrap-server my-kafka-n--u-bvmxxe-dvgycp-axfjmaftyk.bf2.kafka.rhcloud.com:443 --command-config ../config/app-services.properties
  1. Start one consumer in one window to see pytest-kafkavent messages for all tests
    ./kafka-console-consumer.sh --bootstrap-server $KV_BOOTSTRAP_SERVER \
    --consumer.config ../config/app-services.properties --from-beginning --topic kafkavents
  1. Start another consumer in another window to see pytest-kafkavent messages for failed tests only
    ./kafka-console-consumer.sh --bootstrap-server $KV_BOOTSTRAP_SERVER \
    --consumer.config ../config/app-services.properties --from-beginning --topic kafkavents-failed
  1. Run the example pytest test scripts
    pytest example_tests/ --junitxml=/tmp/kafkavent.xml --kv-topics my-other-topic
    pytest example_tests/ -q --kv-conf examples/kafka_conf.json \
    --kv-topics kafkavent --kv-topics-failed kafkavent-failed 
  1. Or just pull the container from Quay.io :-)

TODO: create a container with all of this goodness in it, upload to Quay.io, and link here

Use the test generator...

pytest example_tests/ --kv-conf examples/kafka_conf.json \
--kv-topics kafkavent --kv-topics-failed kafkavent-failed \
--kv-eventlog=/tmp/kafkavent.log -k test_kafkavents --kv-test 4,1,1,1

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

pytest-kafkavents-0.2.2.1.tar.gz (20.3 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page