Installation
There are two options depending on whether you want to install Python or not:
- Option 1: Ready-to-use executable (No Python required. Download a zip, extract, run. Best for Windows service deployments.)
- Option 2: Install with Python (For users who have Python or are installing it. Managed via pip.)
Option 1: Ready-to-use executable
The executable is a self-contained zip archive. No Python, no pip, no virtual environment needed. Both clients (JSONL and Jira) are included.
1. Download the zip
Either use the zip you received directly, or download it from the GitHub releases page — expand Assets and pick the file for your platform (e.g. testbench-defect-service-x.y.z-win_amd64.zip).
2. Extract to a permanent location
Unzip to a folder you won't move later, for example C:\TestBenchDefectService\:
C:\TestBenchDefectService\
testbench-defect-service.exe
<support files>
3. Verify installation from the command line
C:\TestBenchDefectService\testbench-defect-service.exe --version
Point NSSM or FireDaemon directly to testbench-defect-service.exe in the extracted folder. See the Windows service guide.
Option 2: Install with Python
Use this option if you have Python installed or are about to install it.
Requirements
- Python 3.10–3.14 — 3.13 recommended (download)
- pip (included with Python)
Set up a virtual environment
If you are installing from source: create the virtual environment inside the cloned repository instead.
A virtual environment keeps the installation isolated and provides a stable, predictable path to the executable. Navigate to the directory where you want the service to live, then run:
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
With a venv, point NSSM or FireDaemon to .venv\Scripts\testbench-defect-service.exe (full absolute path). See the Windows service guide.
From PyPI (online, recommended)
pip install testbench-defect-service
The base install includes the JSONL client. Add extras for other clients:
| Client | Install command |
|---|---|
| JSONL (default) | pip install testbench-defect-service |
| Jira | pip install testbench-defect-service[jira] |
Verify installation:
testbench-defect-service --version
From a wheel file (offline)
Use this if you received a .whl file or downloaded one from the GitHub releases page (look for testbench_defect_service-x.y.z-py3-none-any.whl in the Assets).
pip install testbench_defect_service-x.y.z-py3-none-any.whl
With optional extras:
pip install "testbench_defect_service-x.y.z-py3-none-any.whl[jira]"
Verify installation:
testbench-defect-service --version
By default pip still fetches dependencies from PyPI. To install on a machine with no internet access:
On another machine which has internet access, download the wheel and all its dependencies into a local folder:
pip download "testbench_defect_service-x.y.z-py3-none-any.whl[jira]" -d ./wheels
This saves every required wheel into ./wheels/. Copy that folder together with the .whl file to the target machine.
On the target machine, install entirely from the local folder:
pip install --no-index --find-links ./wheels "testbench_defect_service-x.y.z-py3-none-any.whl[jira]"
From source (developers)
git clone https://github.com/imbus/testbench-defect-service.git
cd testbench-defect-service
Create and activate the virtual environment inside the cloned repository. See Set up a virtual environment.
Install with all clients and development dependencies:
pip install -e .[jira,dev]
Verify installation:
testbench-defect-service --version
Next steps
Head to the Quickstart to configure and start the service.