Skip to main content

A Dynamic test tool for Splunk Apps and Add-ons

Project description

PyPI version Python versions

A Dynamic test tool for Splunk Apps and Add-ons

Documentation

The detailed documentation for pytest-splunk-addon can be found here : https://pytest-splunk-addon.readthedocs.io/

Features

  • Generate tests for Splunk Knowledge objects in your Splunk Technology Add-ons

  • Validate your add-ons using Splunk + Docker and this test tool

Requirements

  • Docker or an external single instance Splunk deployment

Installation

You can install “pytest-splunk-addon” via pip from PyPI:

$ pip install pytest-splunk-addon

Developing

Note: Must install docker desktop, vscode or pycharm pro optional

Note2: Appinspect requires libmagic verify this has been installed correctly each time a new workstation/vm is used https://dev.splunk.com/enterprise/docs/releaseapps/appinspect/splunkappinspectclitool/installappinspect

$ git clone --recurse-submodules -j8 git@github.com:splunk/pytest-splunk-addon.git

$ #setup python venv must be 3.7
$ /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -m venv .venv

$ source .venv/bin/activate

$ pip3 install -r requirements_dev.txt

$ pip3 install https://download.splunk.com/misc/appinspect/splunk-appinspect-latest.tar.gz

$ python setup.py develop

Usage

Installation for external Splunk

pip install pytest-splunk-addon

Installation with built in docker orchestration

pip install pytest-splunk-addon[docker]

Basic project structure

The tool assumes the Splunk Add-on is located in a folder “package” in the project root

Triggering the tool:

Create a test file in the tests folder

from pytest_splunk_addon.standard_lib.addon_basic import Basic
    class Test_App(Basic):
        def empty_method():
            pass

Create a Dockerfile-splunk file

ARG SPLUNK_VERSION=latest
FROM splunk/splunk:$SPLUNK_VERSION
ARG SPLUNK_APP=TA_UNKNOWN
ARG SPLUNK_APP_PACKAGE=package
COPY deps/apps /opt/splunk/etc/apps/

COPY $SPLUNK_APP_PACKAGE /opt/splunk/etc/apps/$SPLUNK_APP

Create a docker-compose.yml update the value of SPLUNK_APP

version: "3.7"
services:
splunk:
    build:
    context: .
    dockerfile: Dockerfile-splunk
    args:
        - SPLUNK_APP=xxxxxxx
    ports:
    - "8000"
    - "8089"
    environment:
    - SPLUNK_PASSWORD=Changed@11
    - SPLUNK_START_ARGS=--accept-license

Run pytest with the add-on and SA-eventgen installed and enabled in an external Splunk deployment

Run pytest with the add-on and SA-eventgen installed and enabled in docker

For full usage instructions, please visit the pytest-splunk-addon documentation pages over at readthedocs.

Contributing

Contributions are very welcome. Tests can be run with pytest, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the Apache Software License 2.0 license, “pytest-splunk-addon” is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

pytest-splunk-addon-1.2.6a11.tar.gz (156.8 kB view details)

Uploaded Source

Built Distribution

pytest_splunk_addon-1.2.6a11-py2.py3-none-any.whl (212.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest-splunk-addon-1.2.6a11.tar.gz.

File metadata

  • Download URL: pytest-splunk-addon-1.2.6a11.tar.gz
  • Upload date:
  • Size: 156.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.7.9

File hashes

Hashes for pytest-splunk-addon-1.2.6a11.tar.gz
Algorithm Hash digest
SHA256 301d0c1d139c488af12bba56197a4baa2244d5ee7be0d56526ae8bd6c8d2c3e5
MD5 af7dff34b2c5fbf0af879828debe8e9f
BLAKE2b-256 215b86a144f27c2873b1ea93a2dde4e54686bfdaca78c33c9b9e35058aac2de6

See more details on using hashes here.

File details

Details for the file pytest_splunk_addon-1.2.6a11-py2.py3-none-any.whl.

File metadata

  • Download URL: pytest_splunk_addon-1.2.6a11-py2.py3-none-any.whl
  • Upload date:
  • Size: 212.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.7.9

File hashes

Hashes for pytest_splunk_addon-1.2.6a11-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0bef6ac73edd86f02e422a2ac2249c77769be6f94dcd7d2e12ddbc69e568b293
MD5 ca337abe957b3c3db579a0101e913d60
BLAKE2b-256 0a19d013bc8b19d8f37fc673d2e40ab2c4ad56ffa85a2c50e0a16c9a2aaa2b76

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