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

张开发
2026/4/16 23:01:17 15 分钟阅读

分享文章

Hoppscotch:开源免费的Postman替代品,轻量级API测试神器
Hoppscotch开源免费的Postman替代品轻量级API测试神器背景作为开发者API 测试是日常工作的重要环节。提到 API 测试工具大多数人首先想到的是 Postman。但 Postman 存在一些问题高级功能收费团队协作、云同步等功能需要付费订阅资源占用大Electron 应用内存占用较高数据隐私API 数据存储在第三方服务器臃肿功能越来越多启动越来越慢如果有一款工具既免费开源、又轻量快速、还能自托管保护数据隐私会不会更香Hoppscotch就是这样的工具——在 GitHub 上已获得70K Star被誉为Postman 的开源替代品。什么是 HoppscotchHoppscotch 是一个开源的 API 开发生态系统提供从 API 测试到文档生成的完整解决方案。核心特性特性说明完全开源MIT 许可证完全免费轻量级基于 Web可安装为 PWA 离线使用多协议支持HTTP、WebSocket、GraphQL、Socket.IO、MQTT、SSE自托管可部署在自己的服务器数据完全可控团队协作支持团队空间、共享集合、权限管理多平台Web、Windows、macOS、Linux 桌面应用GitHub 地址https://github.com/hoppscotch/hoppscotch在线体验https://hoppscotch.ioHoppscotch 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点击地址栏右侧的安装按钮即可将其安装为桌面应用支持离线使用。发送第一个请求选择请求方法GET/POST/PUT/DELETE 等输入 API 地址点击 “Send” 发送请求查看响应结果就这么简单核心功能详解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 支持无限环境变量。创建环境点击左侧 “Environments”创建新环境如开发、测试、生产添加变量键值对使用变量# 定义变量BASE_URLhttps://api.example.com API_KEYyour-api-key# 在请求中使用URL:{{BASE_URL}}/users Header: Authorization: Bearer{{API_KEY}}动态变量{{$timestamp}}# 当前时间戳{{$randomInt}}# 随机整数{{$guid}}# UUID{{$randomEmail}}# 随机邮箱3. 集合管理将 API 请求组织成集合便于管理和复用。创建集合点击 “Collections” → “New Collection”创建文件夹分组保存请求到集合导入导出# 导出为 JSON 文件Collections → Export → Download# 从 Postman 导入Collections → Import → 选择 Postman 导出的 JSON# 从 cURL 导入粘贴 cURL 命令自动解析为请求4. 前置脚本Pre-request Scripts在请求发送前执行 JavaScript 代码// 设置时间戳hoppscotch.setEnvVar(timestamp,Date.now());// 生成签名constsecrethoppscotch.getEnvVar(SECRET);constpayloadJSON.stringify(hoppscotch.request.body);constsignatureCryptoJS.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,(){constdataJSON.parse(hoppscotch.response.body);hoppscotch.expect(data).toHaveProperty(data);});// 提取 token 并保存constresponseJSON.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)GocURLJava (OkHttp)PHP (cURL)RubyC# (HttpClient)Rust (reqwest)生成的代码示例// JavaScript - Fetchfetch(https://api.example.com/users,{method:GET,headers:{Authorization:Bearer your-token,Content-Type:application/json}}).then(responseresponse.json()).then(dataconsole.log(data));# Python - Requestsimportrequests headers{Authorization:Bearer your-token,Content-Type:application/json}responserequests.get(https://api.example.com/users,headersheaders)print(response.json())7. 团队协作Hoppscotch 支持团队协作功能自托管版本创建团队空间共享集合和环境变量角色权限管理实时同步8. 代理模式解决 CORS 问题设置 → Proxy → 启用代理模式输入代理服务器地址请求通过代理发送绕过浏览器 CORS 限制自托管部署Hoppscotch 支持完全自托管数据存储在自己的服务器上。Docker Compose 部署version:3.8services:hoppscotch:image:hoppscotch/hoppscotch:latestcontainer_name:hoppscotchrestart:unless-stoppedports:-3000:3000environment:-DATABASE_URLpostgresql://postgres:passworddb:5432/hoppscotch-JWT_SECRETyour-jwt-secret-SESSION_SECRETyour-session-secretdepends_on:-db-redisdb:image:postgres:15-alpinecontainer_name:hoppscotch-dbrestart:unless-stoppedenvironment:-POSTGRES_USERpostgres-POSTGRES_PASSWORDpassword-POSTGRES_DBhoppscotchvolumes:-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可选实战场景场景1REST API 完整测试流程1. 创建环境变量 - BASE_URL: https://api.example.com - TOKEN: (登录后自动设置) 2. 登录接口 POST {{BASE_URL}}/auth/login Body: {email: userexample.com, password: xxx} 后置脚本: 提取 token 保存到环境变量 3. 业务接口测试 GET {{BASE_URL}}/users Header: Authorization: Bearer {{TOKEN}} 测试断言: 状态码 200返回数据格式正确 4. 保存到集合 组织成 用户管理 集合场景2WebSocket 实时通信测试1. 连接 WebSocket ws://localhost:8080/ws 2. 发送消息 {action: subscribe, channel: notifications} 3. 接收消息 实时显示服务端推送的消息 4. 测试场景 - 连接/断开测试 - 心跳保活 - 消息格式验证场景3GraphQL 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 扩展安装扩展后可以在浏览器中直接发送请求无需担心跨域问题。常见问题QHoppscotch 能完全替代 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 的最佳替代选择。© 版权归无边界科技所有转载请注明出处。

更多文章