# EasyPostman **Repository Path**: lakernote/easy-postman ## Basic Information - **Project Name**: EasyPostman - **Description**: ๐ ไธๆฌพ้ซไปฟ Postman + ็ฎๆ็ JMeter ็ๅผๆบๆฅๅฃ่ฐ่ฏไธๅๆตๅทฅๅ ท๏ผไธไธบๅผๅ่ ไผๅ๏ผ็้ข็ฎๆดใๅ่ฝๅผบๅคงใ - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://blog.csdn.net/abu935009066/category_12996528.html - **GVP Project**: No ## Statistics - **Stars**: 149 - **Forks**: 44 - **Created**: 2025-06-18 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: testing **Tags**: Java, POSTMAN, jmeter, Swing, apifox ## README [ไธญๆ](README_zh.md) | 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.    ## ๐ก 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 - ๐ GitHub: [https://github.com/lakernote/easy-postman](https://github.com/lakernote/easy-postman) - ๐ Gitee: [https://gitee.com/lakernote/easy-postman](https://gitee.com/lakernote/easy-postman) - ๐ฌ Discussions: [https://github.com/lakernote/easy-postman/discussions](https://github.com/lakernote/easy-postman/discussions) - Community Q&A and discussions - ๐ฅ **WeChat Group**: Add WeChat **lakernote** to join the community and chat with developers and users - ๐ฆ **Download**: [https://github.com/lakernote/easy-postman/releases](https://github.com/lakernote/easy-postman/releases) - ๐ **China Mirror**: [https://gitee.com/lakernote/easy-postman/releases](https://gitee.com/lakernote/easy-postman/releases) - โ ๏ธ Due to storage limitations, China mirror only provides: - `EasyPostman-{version}-macos-arm64.dmg` - `EasyPostman-{version}-windows-x64.exe` - `EasyPostman-{version}-windows-x64-portable.zip` (Portable version) - ๐ก For other platforms (macOS Intel, Ubuntu DEB, Cross-platform JAR), please visit GitHub Releases - ๐ Mac (Apple Silicon - M1/M2/M3/M4): `EasyPostman-{version}-macos-arm64.dmg` - ๐ Mac (Intel Chip): `EasyPostman-{version}-macos-x86_64.dmg` - ๐ช Windows: - **EXE Installer**: `EasyPostman-{version}-windows-x64.exe` - Install to system with desktop shortcut, supports auto-update - **Portable ZIP**: `EasyPostman-{version}-windows-x64-portable.zip` - Extract and run, no installation required, fully portable, can be placed in any directory - ๐ง Ubuntu/Debian: `easypostman_{version}_amd64.deb` - โ Cross-platform JAR: `easy-postman-{version}.jar` - Requires Java 17+ runtime > โ ๏ธ **First Run Notice**: > > **Windows Users**: If you see a SmartScreen warning, click "More info" โ "Run anyway". The app is completely open-source and safe. > > **macOS Users**: If prompted "cannot be opened", right-click the app โ Select "Open" โ Click "Open" in the dialog. --- ## โจ 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 | |:------------------------------------------------------------------------:|:--------------------------------------------------------------------------:| |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | --- ## ๐๏ธ 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 > ๐ก **Development and Packaging Recommendation**: We recommend using **[JetBrains Runtime (JBR)](https://github.com/JetBrains/JetBrainsRuntime)**, a JDK distribution optimized by JetBrains for Swing applications, providing: > - โจ Better Swing/AWT rendering performance > - ๐จ Improved font rendering and HiDPI support > - ๐ Fixes for Swing-related bugs in standard JDK > - ๐ Optimized GC and performance tuning for IDEs and desktop applications > > **Download**: [JetBrains Runtime Releases](https://github.com/JetBrains/JetBrainsRuntime/releases) > > Build and run with JBR: > ```bash > # Set JAVA_HOME to JBR path > export JAVA_HOME=/path/to/jbr > # Or on Windows > set JAVA_HOME=C:\path\to\jbr > ``` ### Build from Source ```bash # 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 ```bash # 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](https://github.com/lakernote/easy-postman/issues/new/choose) 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](https://github.com/lakernote/easy-postman/issues/new/choose) 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](.github/CONTRIBUTING.md) ### ๐ 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](.github/CONTRIBUTING.md) 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: Why does Windows/macOS show "unsafe" or "cannot be verified" warnings? A: This is because the app is not code-signed. This is common for open-source software: - **Windows SmartScreen**: Not purchasing a code signing certificate (~$100-400/year) triggers warnings - Solution: Click "More info" โ "Run anyway" - As download count increases (200-500 times), warnings will gradually decrease - **macOS Gatekeeper**: Not purchasing an Apple Developer certificate ($99/year) + notarization triggers warnings - Solution: Right-click the app โ Select "Open" - Or run in Terminal: `sudo xattr -rd com.apple.quarantine /Applications/EasyPostman.app` **Note**: This project is completely open-source, and the code can be reviewed on GitHub. Most individual open-source software is distributed this way. ### 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 - ๐ฌ WeChat: **lakernote** --- ## โญ Star History [](https://www.star-history.com/#lakernote/easy-postman&type=date&legend=top-left) --- ## ๐ Acknowledgements Thanks to the following open-source projects: - [FlatLaf](https://github.com/JFormDesigner/FlatLaf) - Modern Swing theme - [RSyntaxTextArea](https://github.com/bobbylight/RSyntaxTextArea) - Syntax highlighting editor - [OkHttp](https://github.com/square/okhttp) - HTTP client - [Termora](https://github.com/TermoraDev/termora) - Excellent terminal emulator ---