Skip to content

πŸš€ 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.

License

Notifications You must be signed in to change notification settings

lakernote/EasyPostman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

δΈ­ζ–‡ | English

EasyPostman

πŸš€ 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. Built-in Git integration for team collaboration and version control.

GitHub license Java Platform

πŸ’‘ Project Introduction

EasyPostman aims to provide developers with a local API debugging experience comparable to Postman, and integrates batch requests and stress testing capabilities similar to a simplified JMeter. Built with Java Swing, it runs cross-platform, works offline, and protects your API data privacy. With built-in Git workspace support, you can manage API data versions and collaborate with your team, enabling seamless multi-device sync and teamwork.

πŸ”₯ Philosophy

  • 🎯 Focus on Core Features - Simple yet powerful, rich features without bloat
  • πŸ”’ Privacy First - Local storage, no cloud sync, your data stays private
  • πŸš€ Performance Oriented - Native Java app, fast startup, smooth experience

πŸ”— Links

⚠️ Security Notice:

Windows Users: When running for the first time, Windows SmartScreen may show "Windows protected your PC" warning. This is because the app is not code-signed (code signing certificates cost $100-400/year). The app is completely open-source and safe. You can:

  • MSI Installer: Click "More info" β†’ "Run anyway", after installation it supports auto-update
  • Portable ZIP: Extract and run EasyPostman.exe directly, may still trigger SmartScreen, simply click "More info" β†’ "Run anyway"
  • πŸ’‘ Both methods are equally safe, SmartScreen warning will gradually disappear as download count increases

macOS Users: When opening for the first time, macOS may show "cannot be opened because the developer cannot be verified". This is also due to not purchasing an Apple Developer certificate ($99/year). The app is safe and open-source. Solutions:

  • Method 1: Right-click the app β†’ Select "Open" β†’ Click "Open" in the dialog
  • Method 2: System Settings β†’ Privacy & Security β†’ Find the blocked app at the bottom β†’ Click "Open Anyway"
  • Method 3: Run in Terminal: sudo xattr -rd com.apple.quarantine /Applications/EasyPostman.app
  • πŸ’¬ WeChat: lakernote

✨ Features

  • 🚦 Supports common HTTP methods (GET/POST/PUT/DELETE, etc.)
  • πŸ“‘ Supports SSE (Server-Sent Events) and WebSocket protocols
  • 🌏 Environment variable management for easy switching
  • πŸ•‘ Auto-saved request history for review and reuse
  • πŸ“¦ Batch requests & stress testing (simplified JMeter), supports report, result tree, and trend chart visualization
  • πŸ“ Syntax highlighting request editor
  • 🌐 Multi-language support (Simplified Chinese, English)
  • πŸ’Ύ Local data storage for privacy and security
  • πŸ“‚ Import/Export Postman v2.1, curl format
  • πŸ“Š Visualized response results, supports JSON/XML
  • πŸ” Configurable request parameters, headers, cookies, etc.
  • πŸ“‚ File upload and download support
  • πŸ“‘ Request scripts (Pre-request Script, Tests)
  • πŸ”— Request chaining support
  • πŸ§ͺ Detailed network request event monitoring and analysis
  • 🏒 Workspace management - supports local and Git workspaces for project-level data isolation and version control
  • πŸ”„ Git integration - supports commit, push, pull, and other version control operations
  • πŸ‘₯ Team collaboration - share API data via Git workspace

πŸ–ΌοΈ Screenshots

Preview Preview
icon welcome
home workspaces
collections collections-import
environments functional
functional_1 functional_2
history history-timeline
history-events networklog
performance performance-report
performance-resultTree performance-trend
performance-threadgroup-fixed performance-threadgroup-rampup
performance-threadgroup-spike performance-threadgroup-stairs
script-pre script-post
script-snippets workspaces-gitcommit

πŸ—οΈ Architecture

EasyPostman
β”œβ”€β”€ 🎨 UI Layer
β”‚   β”œβ”€β”€ Workspace management
β”‚   β”œβ”€β”€ Collections management
β”‚   β”œβ”€β”€ Environments configuration
β”‚   β”œβ”€β”€ History records
β”‚   β”œβ”€β”€ Performance testing module
β”‚   └── NetworkLog monitoring
β”œβ”€β”€ πŸ”§ Business Layer
β”‚   β”œβ”€β”€ HTTP request engine
β”‚   β”œβ”€β”€ Workspace switching and isolation
β”‚   β”œβ”€β”€ Git version control engine
β”‚   β”œβ”€β”€ Environment variable resolver
β”‚   β”œβ”€β”€ Script execution engine
β”‚   β”œβ”€β”€ Data import/export module
β”‚   └── Performance test executor
β”œβ”€β”€ πŸ’Ύ Data Layer
β”‚   β”œβ”€β”€ Workspace storage management
β”‚   β”œβ”€β”€ Local file storage
β”‚   β”œβ”€β”€ Git repository management
β”‚   β”œβ”€β”€ Configuration management
β”‚   └── History management
└── 🌐 Network Layer
    β”œβ”€β”€ HTTP/HTTPS client
    β”œβ”€β”€ WebSocket client
    β”œβ”€β”€ SSE client
    └── Git remote communication

πŸ› οΈ Technology Stack

Core

  • Java 17: Modern LTS version for latest Java features
  • JavaSwing: Native desktop GUI, cross-platform
  • jlink & jpackage: Official packaging tools for native installers

UI Libraries

  • FlatLaf: Modern UI theme, dark mode, HiDPI support
  • RSyntaxTextArea: Syntax highlighting editor for JSON/XML/JavaScript
  • jIconFont-Swing: Vector icon font support
  • SwingX: Extended Swing components
  • MigLayout: Powerful layout manager

Network & Utilities

  • OkHttp: High-performance HTTP client
  • Nashorn/GraalVM: JavaScript engine support
  • SLF4J + Logback: Logging framework

🎯 Key Features in Detail

🏒 Workspace Management - Major Update!

  • βœ… Local workspace: for personal projects, data stored locally, privacy guaranteed
  • βœ… Git workspace: version control and team collaboration
    • Clone from remote: directly clone from GitHub/Gitee, etc.
    • Local init: create a local Git repo, push to remote later
  • βœ… Project-level data isolation: each workspace manages its own collections and environments
  • βœ… Quick workspace switching: one-click switch, no interference
  • βœ… Git operations:
    • Commit: save local changes to version control
    • Push: push local commits to remote
    • Pull: fetch latest changes from remote
    • Conflict detection and smart handling
  • βœ… Team collaboration: share API data via Git workspace
  • βœ… Multiple authentication: username/password, Personal Access Token, SSH Key

πŸ”Œ API Debugging

  • βœ… Supports HTTP/1.1 and HTTP/2
  • βœ… Full REST API methods (GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS)
  • βœ… Multiple request body formats: Form Data, x-www-form-urlencoded, JSON, XML, Binary
  • βœ… File upload/download (drag & drop supported)
  • βœ… Cookie auto-management and manual editing
  • βœ… Visual editing for headers and query params
  • βœ… Formatted response display (JSON, XML, HTML)
  • βœ… Response time, status code, size statistics

🌍 Environment Management

  • βœ… Quick environment switching (dev/test/prod)
  • βœ… Global and environment variables
  • βœ… Nested variable reference: {{baseUrl}}/api/{{version}}
  • βœ… Dynamic variables: {{$timestamp}}, {{$randomInt}}
  • βœ… Import/export environments

πŸ“ Script Support

  • βœ… Pre-request Script: run before request
  • βœ… Tests Script: run after response
  • βœ… Built-in code snippets
  • βœ… JavaScript runtime
  • βœ… Assertion support

⚑ Performance Testing

  • βœ… Multiple thread group modes:
    • Fixed: stable load
    • Ramp-up: gradually increasing load
    • Stair-step: staged load
    • Spike: burst load
  • βœ… Real-time performance monitoring
  • βœ… Detailed test reports (response time, TPS, error rate)
  • βœ… Result tree analysis
  • βœ… Performance trend charts

πŸ“Š Data Analysis

  • βœ… Request history timeline
  • βœ… Detailed network event logs
  • βœ… Response data statistics
  • βœ… Auto-categorized error requests

πŸ”„ Data Migration

  • βœ… Import Postman Collection v2.1
  • βœ… Import cURL commands
  • βœ… Import HAR files (in development)
  • βœ… Import OpenAPI/Swagger (in development)

πŸš€ Quick Start

Requirements

  • Java 17 or above
  • Memory: at least 512MB available
  • Disk: at least 100MB available

Build from Source

# Clone the repo
git clone https://gitee.com/lakernote/easy-postman.git
cd easy-postman

# Or build and run
mvn clean package
java -jar target/easy-postman-*.jar

Generate Installer

# macOS
chmod +x build/mac.sh
./build/mac.sh

# Windows
build/win.bat

πŸ“– User Guide

0️⃣ Workspace Management (New!)

Create Workspace

  1. Click the Workspace tab on the left
  2. Click + New
  3. Choose workspace type:
    • Local workspace: for personal use, data stored locally
    • Git workspace: for version control and team collaboration
  4. Enter workspace name, description, and path
  5. If Git workspace, configure Git info:
    • Clone from remote: enter Git repo URL and credentials
    • Local init: create local Git repo, configure remote later

Team Collaboration Workflow

  1. Team Leader:
    • Create Git workspace (clone or local init)
    • Configure API collections and environments
    • Commit and push to remote
  2. Team Members:
    • Create Git workspace (clone from remote)
    • Get latest API data and environments
    • Commit and push updates after local changes
  3. Daily Collaboration:
    • Before work: Pull to get latest changes
    • After changes: Commit local changes
    • Share updates: Push to remote

1️⃣ Create Your First Request

  1. Click Collections tab
  2. Right-click to create new collection and request
  3. Enter URL and select HTTP method
  4. Configure request params and headers
  5. Click Send

2️⃣ Environment Configuration

  1. Click Environments tab
  2. Create new environment (e.g. dev, test, prod)
  3. Add variables: e.g. baseUrl = https://api.example.com
  4. Use in requests: {{baseUrl}}/users

3️⃣ Performance Testing

  1. Click Performance tab
  2. Configure thread group params
  3. Add APIs to test
  4. Start test and view real-time report

🀝 Contribution Guide

All contributions are welcome! We've set up comprehensive templates and automated checks to make contributing easier.

πŸ› Report a Bug

Found a bug? Please use our bug report template:

  1. Go to Issues
  2. Select "πŸ› Bug Report"
  3. Fill in the required information
  4. Submit and we'll respond as soon as possible

✨ Request a Feature

Have a great idea? We'd love to hear it:

  1. Go to Issues
  2. Select "✨ Feature Request"
  3. Describe your use case and expected solution
  4. Submit for community discussion

πŸ’» Submit Code

We welcome code contributions! When you submit a PR:

  • Automated Checks: Your PR will automatically go through:
    • βœ… Build and compilation check
    • βœ… Test execution
    • βœ… Code quality validation
    • βœ… PR format verification
  • Review Process: Maintainers will review your code and provide feedback
  • Guidelines: Please follow our Contributing Guide

πŸ“ Improve Documentation

Documentation is crucial! You can:

  • Fix typos or inaccurate descriptions
  • Add usage examples
  • Translate documentation
  • Improve FAQ

Development Guidelines

  • Follow Java coding standards
  • Run tests before commit: mvn test
  • Commit message format: feat: add new feature or fix: bug fix
  • Read the full Contributing Guide for detailed instructions

❓ FAQ

Q: Why local storage instead of cloud sync?

A: We value developer privacy. Local storage ensures your API data is never leaked to third parties.

Q: How to import Postman data?

A: In the Collections view, click Import and select a Postman v2.1 JSON file.

Q: Are performance test results accurate?

A: Based on Java multithreading, results are for reference. For critical scenarios, compare with professional tools.

Q: Does it support team collaboration?

A: βœ… Now supported! Use Git workspace to share API collections, environments, and more for real team collaboration.

Q: Is data isolated between workspaces?

A: Yes. Each workspace is fully independent with its own collections and environments.

Q: Which Git platforms are supported?

A: All standard Git platforms: GitHub, Gitee, GitLab, self-hosted, etc. Just provide a standard Git URL.

Q: How to resolve Git conflicts?

A: Built-in conflict detection. Before Git operations, the system checks for conflicts and provides solutions like auto-commit or stash.

Q: Can I sync workspaces across devices?

A: Yes! With Git workspace, you can clone the same repo on different devices for cross-device sync.


πŸ’– Support the Project

If you find this project helpful, please:

  • ⭐ Star the project
  • 🍴 Fork and contribute
  • πŸ“’ Recommend to friends
  • β˜• Buy the author a coffee

⭐ Star History

Star History Chart


πŸ™ Acknowledgements

Thanks to the following open-source projects:


Make API debugging easier, make performance testing more intuitive

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

No packages published

Languages