Skip to content

lakernote/EasyPostman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2,558 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

EasyPostman Logo

EasyPostman

An open-source Postman-style API client + JMeter-style load testing desktop app
Postman-like debugging ยท JMeter-style performance testing ยท Java desktop ยท Local-first

GitHub license GitHub release GitHub stars Java Platform

GitHub Gitee

็ฎ€ไฝ“ไธญๆ–‡ ยท English ยท ๐Ÿ“ฆ Download ยท ๐Ÿ“– Docs ยท ๐Ÿ’ฌ Discuss ยท WeChat: lakernote


๐Ÿ“– Table of Contents


๐Ÿ’ก About

EasyPostman combines a Postman-style API debugging workspace with JMeter-style performance testing in one local-first desktop app. It is built with Java 17, Swing, and FlatLaf, stores data locally by default, and uses Git workspaces when teams need sync, review, and version control without a hosted cloud service.

๐ŸŽฏ Postman-style Debugging โšก JMeter-style Load Testing ๐Ÿ”’ Local-first Desktop
Collections, environments, auth, scripts, imports, history, and response inspection Thread groups, timers, extractors, assertions, realtime metrics, reports, and distributed runs Your API and test data stay on disk unless you choose a Git workspace

๐Ÿ–ผ๏ธ Visual Tour

EasyPostman is a GUI-first tool, and the project value is easier to judge when both halves are visible: Postman-style API work and JMeter-style load testing. These screenshots are from the current desktop app.

Postman-style API Debugging JMeter-style Load Testing
API workspace with collections and response viewer Performance trend dashboard
Scripts & Assertions Git Workspace Collaboration
Script snippets and editor support Git workspace management

๐Ÿ“ธ View the full screenshot gallery โ†’


๐Ÿงญ Example Workflows

Workflow What it looks like in practice
Debug a REST API like Postman Create or import a collection, choose an environment, send a request, inspect formatted response bodies, headers, cookies, timing, and the network event log.
Chain requests with scripts Use pre-request scripts and test scripts to read variables, create signatures, extract response data, assert results, and pass values into the next request.
Share API work through Git Keep workspace data local, then use Git workspace operations to commit, pull, push, and review collection/environment changes with your team.
Run load tests like JMeter Build a performance plan visually, export plan.json, run it headlessly, or distribute it with master/worker mode while preserving global user and CSV sharding.

โœจ Features

๐Ÿข Workspace & Collaboration

  • Local workspaces - Keep personal API projects fully on disk
  • Git workspaces - Commit, pull, push, and share collections or environments through your own Git repository
  • Workspace isolation - Each workspace keeps its own collections, environments, settings, and history
  • Portable mode - Run with data beside the app when the portable marker or system property is enabled

๐Ÿ”Œ Postman-style API Testing

  • HTTP/HTTPS - REST requests with headers, params, cookies, auth, redirects, and body editors
  • SSE & WebSocket - Stream and realtime protocol workflows
  • Multiple body types - Form Data, x-www-form-urlencoded, JSON, XML, text, and binary payloads
  • Variables - Environment, global, request, and iteration data support for repeatable runs
  • Import/Export - Postman v2.1 and cURL support, with HAR and OpenAPI/Swagger paths under active development

โšก JMeter-style Performance Testing

  • Scenario design in the GUI - Thread groups, timers, extractors, assertions, and result views
  • Thread group modes - Fixed, ramp-up, stair-step, and spike load profiles
  • Realtime monitoring - TPS/QPS, response time, error rate, trend charts, and result trees
  • Headless & distributed runs - Export plan.json from the GUI, then run it with CLI or master/worker mode
  • Global user sharding - GUI virtual users represent total concurrency; workers split continuous ranges and CSV rows follow the same ranges to avoid duplicates

๐Ÿงฉ Scripts, Assertions & Plugins

  • Pre-request and test scripts - Postman-style pm APIs, assertions, variables, and request chaining
  • Bundled JS helpers - crypto-js, lodash, and moment
  • Script extension points - Plugins can register script APIs, completions, snippets, toolbox panels, and services
  • Official plugins - Plugin manager, client certificates, capture proxy, Redis, Kafka, and Java decompiler
  • Network event log - Detailed request/response and stream diagnostics

๐ŸŽจ User Experience

  • Light & Dark Mode - Comfortable viewing in any lighting
  • Multi-language - English, ็ฎ€ไฝ“ไธญๆ–‡
  • Syntax Highlighting - JSON, XML, JavaScript
  • Cross-platform - Windows, macOS, Linux

๐Ÿ“– View All Features โ†’


๐Ÿ“ฆ Download

Latest Release

๐Ÿ”— GitHub Releases | Gitee Mirror (China)

Platform Downloads

Platform Package Notes
๐ŸŽ macOS (Apple Silicon) EasyPostman-{version}-macos-arm64.dmg M1/M2/M3/M4
๐Ÿ macOS (Intel) EasyPostman-{version}-macos-x86_64.dmg Intel-based Mac
๐ŸชŸ Windows (Installer) EasyPostman-{version}-windows-x64.exe Auto-update support
๐ŸชŸ Windows (Portable) EasyPostman-{version}-windows-x64-portable.zip No install needed
๐Ÿง Linux AMD64 (Generic) EasyPostman-{version}-linux-amd64.deb For common x86_64 / amd64 Linux systems
๐Ÿง Linux ARM64 (Generic) EasyPostman-{version}-linux-arm64.deb For common aarch64 / arm64 Linux systems
๐Ÿง Linux ARM64 (Compatibility) EasyPostman-{version}-linux-arm64-compat.deb Same app as the generic ARM64 package, repacked for older Debian / Ubuntu dpkg environments
๐Ÿง RHEL / Rocky / CentOS / Fedora (x64) EasyPostman-{version}-1.x86_64.rpm Available on GitHub Releases only
๐Ÿง RHEL / Rocky / CentOS / Fedora (ARM64) EasyPostman-{version}-1.aarch64.rpm Available on GitHub Releases only
โ˜• Cross-platform JAR easy-postman-{version}.jar Requires Java 17+

๐Ÿง About the ARM64 Compatibility DEB

The compatibility package contains the same EasyPostman application and runtime as linux-arm64.deb. It only changes the DEB archive format to use xz-compressed members, which helps older dpkg versions that cannot install packages containing newer compression formats such as control.tar.zst or data.tar.zst. Prefer linux-arm64.deb first; use linux-arm64-compat.deb only when the generic package fails during installation because of DEB archive compression compatibility.

โš ๏ธ First Run Notice

  • Windows: SmartScreen warning โ†’ "More info" โ†’ "Run anyway"
  • macOS: "Cannot be opened" โ†’ Right-click โ†’ "Open" โ†’ "Open"

The app is 100% open-source. Warnings appear because we don't purchase code signing certificates.

๐ŸŒ Gitee Mirror only provides macOS (ARM) DMG and Windows packages. Linux DEB/RPM packages are published on GitHub Releases only.


๐Ÿš€ Quick Start

Option 1: Download Pre-built Release

  1. Grab the package for your platform from Releases
  2. Install and run:
Platform Command / Action
macOS Open DMG โ†’ drag to Applications
Windows Installer Run .exe, follow wizard
Windows Portable Extract ZIP โ†’ run EasyPostman.exe
Linux DEB (AMD64, Generic) sudo dpkg -i EasyPostman-{version}-linux-amd64.deb
Linux DEB (ARM64, Generic) sudo dpkg -i EasyPostman-{version}-linux-arm64.deb
Linux DEB (ARM64, Compatibility) sudo dpkg -i EasyPostman-{version}-linux-arm64-compat.deb
Linux RPM (x64) sudo rpm -ivh EasyPostman-{version}-1.x86_64.rpm
Linux RPM (ARM64) sudo rpm -ivh EasyPostman-{version}-1.aarch64.rpm
JAR java -jar easy-postman-{version}.jar

If you're not sure which Linux package to use, run uname -m first:

  • x86_64 -> use EasyPostman-{version}-linux-amd64.deb or x86_64.rpm
  • aarch64 -> use EasyPostman-{version}-linux-arm64.deb
  • if dpkg reports an unsupported archive compression format while installing the generic ARM64 DEB -> use EasyPostman-{version}-linux-arm64-compat.deb

Option 2: Build from Source

git clone https://github.com/lakernote/easy-postman.git
cd easy-postman
mvn -pl easy-postman-app -am -DskipTests clean package
java -jar easy-postman-app/target/easy-postman-*.jar

๐Ÿ“– Build Guide โ†’
๐Ÿ”Œ Plugin Architecture & Installation (Chinese) โ†’

First Steps

  1. Create a Workspace โ€” Local (personal) or Git (team)
  2. Create a Collection โ€” Organize your API requests
  3. Send Your First Request โ€” Enter URL, configure params, click Send
  4. Set Up Environments โ€” Switch between dev / test / prod easily

๐Ÿ› ๏ธ Development

Common Commands

Task Command
Full package, skip tests mvn clean package -DskipTests
Fast host app package mvn -pl easy-postman-app -am -DskipTests clean package
Quick compile check mvn -q -pl easy-postman-app -am -DskipTests compile
Build app plus one plugin mvn -pl easy-postman-app,easy-postman-plugins/plugin-redis -am clean package -DskipTests
Run one test class headlessly mvn -q -pl easy-postman-app -am -Dtest=<TestClass> -Dsurefire.failIfNoSpecifiedTests=false -Djava.awt.headless=true test

The host JAR is written to easy-postman-app/target/easy-postman-{version}.jar. Native packaging scripts live under build/ and produce platform installers with jpackage.


๐Ÿค Contributing

We welcome all forms of contribution โ€” bug reports, feature requests, code, or docs!

Type How
๐Ÿ› Bug Report Open an issue
โœจ Feature Request Share your idea
๐Ÿ’ป Code Fork โ†’ branch โ†’ PR
๐Ÿ“ Docs Fix typos, add examples, translate

Every PR triggers automated checks: build, tests, code quality, and format validation.

๐Ÿ“– Contributing Guide โ†’


๐Ÿ“š Documentation

Doc Description
๐Ÿ“– Features Comprehensive feature documentation
๐Ÿš€ Build Guide Build from source & generate installers
โšก Distributed Performance Testing GUI remote mode, CLI master/worker, CSV sharding, realtime refresh, and result details
๐Ÿ”Œ Plugin Architecture Plugin modules, development flow, and installation (Chinese)
๐Ÿ–ผ๏ธ Screenshots All application screenshots
๐Ÿ“ Script API Reference Pre-request & test script API
โ“ FAQ Frequently asked questions

โ“ FAQ

Q: Why local storage instead of cloud sync?

We value developer privacy. Local storage ensures your API data is never leaked to third parties. Use Git workspace for team collaboration while maintaining full control over your data.

Q: How to import Postman data?

In the Collections view, click Import and select a Postman v2.1 JSON file. Collections, requests, and environments are converted automatically.

Q: Why does Windows/macOS show security warnings?
  • Windows SmartScreen: No code signing cert (~$100โ€“400/year). โ†’ Click "More info" โ†’ "Run anyway". Warnings decrease as download count grows.
  • macOS Gatekeeper: No Apple Developer cert ($99/year). โ†’ Right-click โ†’ "Open", or run: sudo xattr -rd com.apple.quarantine /Applications/EasyPostman.app

This project is fully open-source and auditable on GitHub.


๐Ÿ’– Support the Project

If EasyPostman helps you, consider:

  • โญ Star this repo โ€” it means a lot!
  • ๐Ÿด Fork & contribute โ€” help make it better
  • ๐Ÿ“ข Share with friends โ€” spread the word
  • ๐Ÿ’ฌ WeChat group โ€” add lakernote for direct communication
  • ๐Ÿ’ฌ GitHub Discussions โ€” ask questions & share ideas
  • ๐Ÿ“ฎ Contact โ€” WeChat: lakernote

โญ Star History

Star History Chart


๐Ÿ™ Acknowledgements

Thanks to these awesome open-source projects:

Project Role
FlatLaf Modern Swing theme
RSyntaxTextArea Syntax highlighting editor
OkHttp HTTP client
Termora Terminal emulator inspiration

Postman-style API debugging. JMeter-style load testing. Local-first desktop workflow.

GitHub Gitee

Made with โค๏ธ by laker

About

An open-source API debugging and stress testing tool inspired by Postman and a simplified JMeter, optimized for developers with a clean UI and powerful features.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages