Skip to content

najamcodes/glockit-desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Glockit Desktop

Glockit Desktop is an Electron + React application for authoring, running, and analyzing HTTP benchmark suites powered by the glockit runtime.

Base Glockit Version

  • Runtime package used by this UI: glockit@^1.1.2
  • Current locked/resolved version in lockfiles: 1.1.2

The UI also includes compatibility normalization for glockit 1.1.2 output so results remain stable in charts, reports, and run history.

What This App Does

  • Build and edit benchmark configs in visual and JSON modes
  • Run benchmarks from desktop via Electron IPC (local machine)
  • Persist workspaces/configs to disk and reload them
  • Track run history and review previous benchmark outcomes
  • Export/import workspace backups
  • Check, download, and install desktop app updates in packaged builds

Tech Stack

  • Electron (desktop shell)
  • React + Vite + TypeScript (UI)
  • Zustand (workspace state)
  • Tailwind + shadcn/ui (UI components)
  • glockit CLI/runtime integration

Prerequisites

  • Node.js 20+ (recommended LTS)
  • npm 10+
  • Windows/macOS/Linux for development

Install

npm install

Development

1. Run UI only (browser mode)

npm run dev

Notes:

  • Useful for UI iteration.
  • Benchmark execution and filesystem features are limited in browser mode.

2. Run Electron against local dev server

In terminal A:

npm run dev

In terminal B:

npm run electron:serve

This is the primary workflow for testing full desktop features.

Build and Package

Build renderer

npm run build

Run built desktop locally

npm run electron:build

Package distributables

# Windows installer (NSIS)
npm run package:win

# Windows unpacked directory
npm run package:win:dir

# Linux AppImage
npm run package:linux

# Linux unpacked directory
npm run package:linux:dir

Artifacts are generated under dist_electron/.

Release Publishing

Configured publish target is GitHub releases via electron-builder.

npm run release:win
npm run release:linux

Ensure repository auth/release credentials are configured in your environment before publishing.

How to Use the App

1. Create a workspace

  • Open the app and create a new workspace from the sidebar.
  • Workspaces store one or more benchmark configs.

2. Add a benchmark config

  • Create a config file in the workspace.
  • Use Visual Editor for guided setup or JSON mode for raw editing.

3. Configure global settings

At minimum, define:

  • baseUrl
  • concurrency and/or arrival settings
  • timeout/retry preferences

Advanced globals support includes:

  • load shape and phases
  • data feeder settings
  • SLO/observability options
  • distributed/reporter-oriented config fields

4. Configure endpoints

For each endpoint, define:

  • name, method, URL/path
  • headers/query/body
  • assertions and response checks
  • dependencies/ordering where needed

5. Run benchmark

  • Start a run from the editor.
  • Observe status/progress in the UI.
  • Review summary, per-endpoint metrics, and history snapshots.

6. Save, export, and restore

  • Configs/workspaces are persisted locally in desktop mode.
  • Use Settings -> Backup & Restore to export/import all workspaces as JSON.

Update System

Auto-update controls are available in Settings for packaged builds:

  • Check for updates
  • Download update
  • Restart and install

During development (unpackaged), update actions are intentionally unavailable.

Testing and Linting

npm run lint
npm run test

Project Versioning

  • Desktop app package version: 1.0.0
  • Base glockit runtime used by UI: 1.1.2 (resolved)

Troubleshooting

  • If runtime shows "glockit unavailable": reinstall dependencies and rebuild.
  • If packaged app cannot load UI: ensure dist/ exists and packaging includes renderer files.
  • If updates do not appear: verify packaged build context and release feed configuration.

License

MIT

About

Glockit desktop app for benchmarking HTTP API with glockit library at its base.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors