Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Plugin for influxdb and pytest integration.

Project description

Influxdb Pytest Plugin

Pytest plugin designed for reporting test results to the ‘InfluxDB’.

Table of Contents

  • About this documentation
  • Usage
  • Add custom fields as an additional data(test level and suite level)
  • Send attachment

About this documentation

Welcome to the Influxdb Pytest Plugin documentation!

This style guide provides set of editorial guidelines for anyone using Influxdb Pytest Plugin.



pip install influxdb-pytest-plugin


To run a test with influxdb-pytest-plugin, the ‘–influxdb-pytest’ flag should be provided.

pytest -sv –influxdb-pytest

Prepare the config file pytest.ini in root directory of tests and/or call next to the run command the mandatory config variables which are mentioned below:

The next mandatory fields should be mentioned in pytest.ini or run through command line without ‘–’ prefix:

  • --influxdb_host - host of the influxdb
  • --influxdb_name - name of influxdb table

And here are the optional fields:

  • --influxdb_port - port of the influxdb
  • --influxdb_user - username of influxdb user
  • --influxdb_password - password of influxdb user
  • --influxdb_project - project name
  • --influxdb_version - custom version of project
  • --influxdb_run_id - run id (Can be passed as CI variable)

Example of pytest.ini:

influxdb_host = <DB_HOST>
influxdb_port = <DB_PORT>
influxdb_name = <DB_NAME>
influxdb_user = <DB_USER>
influxdb_password = <DB_PASSWORD>
influxdb_project = <PROJECT_NAME>
influxdb_version = <PROJECT_NAME>
influxdb_run_id = <RUN_ID>

Add custom fields as an additional data

Add custom fields for test result For adding custom fields as an additional data for test result the code like below should be added in

Example 1:

@pytest.fixture(scope='function', autouse=True)
def test_suite(request):
    from influxdb_pytest_plugin import TestResultDTO
    test_result_dto = TestResultDTO()
    test_name = request.node.nodeid
    TestResultDTO.set_tag_values(test_result_dto, test_name, {'tag1': 'tag_value1', 'tag2': 'tag_value2'})
    TestResultDTO.set_field_values(test_result_dto, test_name, {'field1': 'field_value1', 'field2': 'field_value2'})

Add custom fields for suite result For adding custom fields as an additional data for suite result the pytest_terminal_summary pytest plugin like below in

def pytest_terminal_summary(config, terminalreporter):
    from influxdb_pytest_plugin import SuiteResultDTO
    suite_result_dto = SuiteResultDTO()
    SuiteResultDTO.set_tag_values(suite_result_dto, {'tag1': 'tag_value1'})
    SuiteResultDTO.set_field_values(suite_result_dto, {'field1': 'field_value1'})

Example 2: Add custom fields via --influxdb_values config, just fill the below template and set as --influxdb_values config:

  "fields": {
    "test_result": {
    "suite_result": {
  "tags": {
    "test_result": {
    "suite_result": {

Send screenshot as attachment

For sending the screenshot to the influxdb, the screenshot_url fixture should be used in function scope like below:

Example 1:

def chrome_driver_init(request, screenshot_url, pytestconfig):
chrome_driver = webdriver.Chrome()
request.cls.driver = chrome_driver
if request.node.rep_call.failed and pytestconfig.getoption('--influxdb-pytest'):
    screenshot_link = 'URL_EXAMPLE'

Example 2:

@pytest.hookimpl(tryfirst=True, hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    rep = outcome.get_result()
    if rep.when == 'call':
            screenshot_path = web_client.current.save_screenshot("Screenshot link")
            item.user_properties = ("screenshot_url", screenshot_path)
        # web_driver.save_screenshot and other magic to add screenshot to your report
        except Exception as e:
            print('Exception while screen-shot creation: {}'.format(e))

Project details

Download files

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

Files for influxdb-pytest-plugin, version 0.2.57
Filename, size File type Python version Upload date Hashes
Filename, size influxdb_pytest_plugin-0.2.57.tar.gz (9.1 kB) File type Source Python version None Upload date Hashes View

Supported by

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