当前位置: 首页 > news >正文

Hoppscotch:开源免费的Postman替代品,轻量级API测试神器

Hoppscotch:开源免费的Postman替代品,轻量级API测试神器

背景

作为开发者,API 测试是日常工作的重要环节。提到 API 测试工具,大多数人首先想到的是 Postman。

但 Postman 存在一些问题:

  • 高级功能收费:团队协作、云同步等功能需要付费订阅
  • 资源占用大:Electron 应用,内存占用较高
  • 数据隐私:API 数据存储在第三方服务器
  • 臃肿:功能越来越多,启动越来越慢

如果有一款工具,既免费开源、又轻量快速、还能自托管保护数据隐私,会不会更香?

Hoppscotch就是这样的工具——在 GitHub 上已获得70K+ Star,被誉为"Postman 的开源替代品"。

什么是 Hoppscotch?

Hoppscotch 是一个开源的 API 开发生态系统,提供从 API 测试到文档生成的完整解决方案。

核心特性:

特性说明
完全开源MIT 许可证,完全免费
轻量级基于 Web,可安装为 PWA 离线使用
多协议支持HTTP、WebSocket、GraphQL、Socket.IO、MQTT、SSE
自托管可部署在自己的服务器,数据完全可控
团队协作支持团队空间、共享集合、权限管理
多平台Web、Windows、macOS、Linux 桌面应用

GitHub 地址:https://github.com/hoppscotch/hoppscotch

在线体验:https://hoppscotch.io

Hoppscotch vs Postman:核心对比

对比项HoppscotchPostman
开源✅ MIT 许可❌ 闭源
价格完全免费免费版功能受限,团队版 $12/用户/月
部署方式Web / 自托管 / 桌面应用桌面应用 / 云服务
数据隐私可自托管,数据在本地数据存储在 Postman 服务器
资源占用轻量(PWA 仅几MB)较重(Electron 应用)
多协议HTTP、WS、GraphQL、MQTT、SSEHTTP、WS、GraphQL
团队协作✅ 免费❌ 付费功能
环境变量✅ 无限免费版有限制
代码生成10+ 语言20+ 语言

一句话总结:如果你追求免费、开源、轻量、数据可控,Hoppscotch 是更好的选择。

快速上手

方式一:在线使用

直接访问 https://hoppscotch.io,无需注册即可开始使用。

方式二:安装桌面应用

# macOS (Homebrew)brewinstall--caskhoppscotch# Windows (Winget)wingetinstallhoppscotch# Linux (Snap)snapinstallhoppscotch# Linux (AUR)yay-Shoppscotch-bin

方式三:安装为 PWA

在 Chrome/Edge 中访问 hoppscotch.io,点击地址栏右侧的"安装"按钮,即可将其安装为桌面应用,支持离线使用。

发送第一个请求

  1. 选择请求方法(GET/POST/PUT/DELETE 等)
  2. 输入 API 地址
  3. 点击 “Send” 发送请求
  4. 查看响应结果

就这么简单!

核心功能详解

1. 多协议支持

Hoppscotch 不仅仅是一个 HTTP 客户端,还支持多种协议:

协议用途
HTTP/HTTPSREST API 测试
WebSocket实时双向通信测试
GraphQLGraphQL 查询测试
Socket.IOSocket.IO 实时通信
MQTTIoT 消息订阅/发布
SSE服务器推送事件

WebSocket 测试示例:

ws://echo.websocket.org // 发送消息 {"type": "ping", "data": "hello"} // 接收响应 {"type": "pong", "data": "hello"}

GraphQL 测试示例:

query GetUser($id: ID!) { user(id: $id) { name email posts { title } } } // Variables { "id": "123" }

2. 环境变量管理

环境变量是 API 测试的必备功能,Hoppscotch 支持无限环境变量。

创建环境:

  1. 点击左侧 “Environments”
  2. 创建新环境(如:开发、测试、生产)
  3. 添加变量键值对

使用变量:

# 定义变量BASE_URL=https://api.example.com API_KEY=your-api-key# 在请求中使用URL:{{BASE_URL}}/users Header: Authorization: Bearer{{API_KEY}}

动态变量:

{{$timestamp}}# 当前时间戳{{$randomInt}}# 随机整数{{$guid}}# UUID{{$randomEmail}}# 随机邮箱

3. 集合管理

将 API 请求组织成集合,便于管理和复用。

创建集合:

  1. 点击 “Collections” → “New Collection”
  2. 创建文件夹分组
  3. 保存请求到集合

导入导出:

# 导出为 JSON 文件Collections → Export → Download# 从 Postman 导入Collections → Import → 选择 Postman 导出的 JSON# 从 cURL 导入粘贴 cURL 命令,自动解析为请求

4. 前置脚本(Pre-request Scripts)

在请求发送前执行 JavaScript 代码:

// 设置时间戳hoppscotch.setEnvVar("timestamp",Date.now());// 生成签名constsecret=hoppscotch.getEnvVar("SECRET");constpayload=JSON.stringify(hoppscotch.request.body);constsignature=CryptoJS.HmacSHA256(payload,secret).toString();hoppscotch.setEnvVar("signature",signature);// 添加请求头hoppscotch.request.headers["X-Signature"]=signature;

5. 后置测试(Post-request Tests)

请求完成后执行测试断言:

// 测试状态码hoppscotch.test("Status code is 200",()=>{hoppscotch.expect(hoppscotch.response.status).toBe(200);});// 测试响应时间hoppscotch.test("Response time < 500ms",()=>{hoppscotch.expect(hoppscotch.response.time).toBeLessThan(500);});// 测试响应数据hoppscotch.test("Response has data field",()=>{constdata=JSON.parse(hoppscotch.response.body);hoppscotch.expect(data).toHaveProperty("data");});// 提取 token 并保存constresponse=JSON.parse(hoppscotch.response.body);if(response.token){hoppscotch.setEnvVar("AUTH_TOKEN",response.token);}

6. 代码生成

一键生成多种语言的请求代码:

支持的语言:

语言/框架语言/框架
JavaScript (Fetch)Python (Requests)
JavaScript (Axios)Python (http.client)
Node.js (HTTP)Go
cURLJava (OkHttp)
PHP (cURL)Ruby
C# (HttpClient)Rust (reqwest)

生成的代码示例:

// JavaScript - Fetchfetch('https://api.example.com/users',{method:'GET',headers:{'Authorization':'Bearer your-token','Content-Type':'application/json'}}).then(response=>response.json()).then(data=>console.log(data));
# Python - Requestsimportrequests headers={'Authorization':'Bearer your-token','Content-Type':'application/json'}response=requests.get('https://api.example.com/users',headers=headers)print(response.json())

7. 团队协作

Hoppscotch 支持团队协作功能(自托管版本):

  • 创建团队空间
  • 共享集合和环境变量
  • 角色权限管理
  • 实时同步

8. 代理模式

解决 CORS 问题:

  1. 设置 → Proxy → 启用代理模式
  2. 输入代理服务器地址
  3. 请求通过代理发送,绕过浏览器 CORS 限制

自托管部署

Hoppscotch 支持完全自托管,数据存储在自己的服务器上。

Docker Compose 部署

version:'3.8'services:hoppscotch:image:hoppscotch/hoppscotch:latestcontainer_name:hoppscotchrestart:unless-stoppedports:-"3000:3000"environment:-DATABASE_URL=postgresql://postgres:password@db:5432/hoppscotch-JWT_SECRET=your-jwt-secret-SESSION_SECRET=your-session-secretdepends_on:-db-redisdb:image:postgres:15-alpinecontainer_name:hoppscotch-dbrestart:unless-stoppedenvironment:-POSTGRES_USER=postgres-POSTGRES_PASSWORD=password-POSTGRES_DB=hoppscotchvolumes:-postgres_data:/var/lib/postgresql/dataredis:image:redis:7-alpinecontainer_name:hoppscotch-redisrestart:unless-stoppedvolumes:-redis_data:/datavolumes:postgres_data:redis_data:
# 启动服务docker-composeup-d# 访问http://localhost:3000

环境变量配置

变量说明
DATABASE_URLPostgreSQL 连接地址
REDIS_URLRedis 连接地址
JWT_SECRETJWT 密钥
SESSION_SECRETSession 密钥
MAILER_SMTP_URL邮件服务地址(可选)
GOOGLE_CLIENT_IDGoogle OAuth(可选)
GITHUB_CLIENT_IDGitHub OAuth(可选)

实战场景

场景1:REST API 完整测试流程

1. 创建环境变量 - BASE_URL: https://api.example.com - TOKEN: (登录后自动设置) 2. 登录接口 POST {{BASE_URL}}/auth/login Body: {"email": "user@example.com", "password": "xxx"} 后置脚本: 提取 token 保存到环境变量 3. 业务接口测试 GET {{BASE_URL}}/users Header: Authorization: Bearer {{TOKEN}} 测试断言: 状态码 200,返回数据格式正确 4. 保存到集合 组织成 "用户管理" 集合

场景2:WebSocket 实时通信测试

1. 连接 WebSocket ws://localhost:8080/ws 2. 发送消息 {"action": "subscribe", "channel": "notifications"} 3. 接收消息 实时显示服务端推送的消息 4. 测试场景 - 连接/断开测试 - 心跳保活 - 消息格式验证

场景3:GraphQL API 测试

1. 设置 GraphQL 端点 https://api.example.com/graphql 2. 查询 Schema 自动获取并展示 API 文档 3. 编写查询 query { users(limit: 10) { id name email } } 4. 设置变量 { "limit": 10 } 5. 执行并查看结果

浏览器扩展

Hoppscotch 提供浏览器扩展,解决 CORS 问题:

  • Chrome 扩展
  • Firefox 扩展

安装扩展后,可以在浏览器中直接发送请求,无需担心跨域问题。

常见问题

Q:Hoppscotch 能完全替代 Postman 吗?

A:对于大多数 API 测试场景,完全可以。Hoppscotch 支持所有主流协议和功能,且完全免费。如果需要 Postman 特有的功能(如 Mock 服务器、监控),可能需要考虑其他方案。

Q:数据存储在哪里?

A:

  • 在线版:数据存储在浏览器 LocalStorage,可登录账号同步到云端
  • 自托管版:数据存储在你自己的数据库中

Q:支持从 Postman 迁移吗?

A:支持。可以直接导入 Postman 导出的 JSON 文件,集合和环境变量都会保留。

Q:如何保证 API 数据安全?

A:推荐自托管部署。所有数据存储在自己的服务器上,不经过第三方。

Q:支持 OpenAPI/Swagger 导入吗?

A:支持。可以导入 OpenAPI 规范文件,自动生成 API 集合。

适用场景

推荐使用:

  • 个人开发者 API 测试
  • 团队协作 API 开发
  • 需要自托管保护数据隐私
  • 多协议测试(WebSocket、GraphQL、MQTT)
  • 追求轻量级工具

不推荐使用:

  • 需要 Mock 服务器的场景(Postman 有此功能)
  • 需要 API 监控告警功能
  • 需要与 CI/CD 深度集成(可考虑 Newman)

总结

Hoppscotch 用"开源 + 轻量 + 自托管"的组合,为 API 测试提供了一个免费且强大的解决方案。

核心优势回顾:

  • 完全免费:MIT 开源,无功能限制
  • 轻量快速:Web 应用,可离线使用
  • 多协议支持:HTTP、WebSocket、GraphQL、MQTT、SSE
  • 自托管可控:数据存储在自己的服务器
  • 团队协作:免费的团队空间和共享功能
  • 代码生成:一键生成多种语言代码

对于追求免费、开源、数据可控的开发者,Hoppscotch 是 Postman 的最佳替代选择。


© 版权归无边界科技所有,转载请注明出处。

http://www.jsqmd.com/news/652445/

相关文章:

  • Unity UI布局核心:从RectTransform的localPosition与anchoredPosition看父子坐标系
  • TypeScript:路径映射(path mapping):简化导入路径
  • Navicat重置脚本终极指南:3种简单方法无限恢复试用期
  • 2026年国内AI营销领域综合实力3强机构深度分析与企业选型参考 - 商业小白条
  • 化妆培训机构师资实力解析,小白参考指南 - 品牌测评鉴赏家
  • 卖任何东西的6步故事框架
  • Moonlight串流全屏终极指南:iPad无边框设置详解
  • AES/SM4 对称加密算法原理以及上手
  • 伪孪生 vs 真空间:浙江普陀时空大数据应用技术联合研究院无感定位技术方案
  • VirtualBox 7.0 保姆级教程:手把手教你给Win10虚拟机装“显卡驱动”(增强功能详解)
  • 2026年昆明绘画机构排名前十 - 云南美术头条
  • 绕过 NX 保护的 Ret2libc 漏洞利用(CTFshow_Pwn25)
  • STM32F407 DAC实战:不写一行代码,用CubeMX图形化配置生成正弦波信号(含工程文件)
  • Beyond Compare 5密钥生成器:免费获取永久授权的完整教程
  • 影视剧组化妆培训学校大揭秘!你的梦想从这里起航 - 品牌测评鉴赏家
  • Qwen3-ForcedAligner-0.6B部署教程:镜像免配置一键启动音文对齐服务
  • 2026年东莞跨境美妆GEO优化服务商选型分析:3家专业机构推荐 - 商业小白条
  • 终极暗黑2存档编辑器指南:如何快速打造完美游戏角色
  • 美妆小白必看!揭秘专业化妆培训学校的宝藏选择 - 品牌测评鉴赏家
  • 深入剖析Redis删除策略:不止于惰性与定期
  • Messaging 数据库结构入门指南
  • 【THM-课程内容】:Privilege Escalation-Windows Privilege Escalation: Other Quick Wins
  • MCU驱动继电器的电路设计:从原理到实战避坑指南
  • Jasminum插件:中文文献管理的终极解决方案
  • 天赐范式第13天:科技项目实战篇2%轻掺杂实现热整流:混沌驱动的非线性声子玻璃(附A3级可视化+完整代码)
  • 保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)
  • 面试官: MySQL LIKE索引失效原因解析(答案深度解析)持续更新
  • SCI论文署名指南:通讯作者与共同通讯作者的权责与排序策略
  • 2026年4月昆明美术培训机构排名前十 - 云南美术头条
  • Java+YOLOv8+Redis实战:工业视觉检测缓存加速+实时数据同步,毫秒级生产级落地