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 details)

Uploaded Source

Built Distribution

pytest_kafkavents-0.2.2.1-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file pytest-kafkavents-0.2.2.1.tar.gz.

File metadata

  • Download URL: pytest-kafkavents-0.2.2.1.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for pytest-kafkavents-0.2.2.1.tar.gz
Algorithm Hash digest
SHA256 087103a49fc3a971d37782154be6b34857d8387fc8aea33e7763db0801120870
MD5 1b9f6d550ef2723ef5ec1acda18421ac
BLAKE2b-256 942ac11de6c568d1313f3b5b2dc34f44954ccda17122ac8d96d3f03bae445830

See more details on using hashes here.

File details

Details for the file pytest_kafkavents-0.2.2.1-py3-none-any.whl.

File metadata

  • Download URL: pytest_kafkavents-0.2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for pytest_kafkavents-0.2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 16010b20e30271a6995519fadeb7488f5687a27ac1e2c0977e7e1e87c1cf3219
MD5 6e24199817df7494ff3c5b13d621c8e3
BLAKE2b-256 448b43586faecc0bf71dc8592d7b466e4b55f6530ad195a440370e9bfc4550a1

See more details on using hashes here.

Supported by

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