ITPub博客

首页 > 应用开发 > Python > 从 Postman 到 ProtoForge:IoT 后端开发者的测试工具进化史

从 Postman 到 ProtoForge:IoT 后端开发者的测试工具进化史

原创 Python 作者:suoten 时间:2026-05-10 08:16:56 0 删除 编辑

做 IoT 后端开发三年,测试工具经历了三个阶段:


**阶段 1:Postman** —— 只能测 HTTP,工业协议完全无能为力


**阶段 2:自己写 Mock Server** —— 每个协议写一套,维护成本爆炸


**阶段 3:ProtoForge** —— 一个平台覆盖 17 种工业协议


![](https://p26-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/81973831f7f044d481612c6fe6dfd059~tplv-tt-shrink:640:0.image?lk3s=06827d14&traceid=20260510080752C6A639D10ED7EFACCF08&x-expires=2147483647&x-signature=6pK2MveLUq1WhGWUgR%2FXWIJkAuU%3D)


# 真实场景:对接 Modbus TCP 设备


以前的做法:


1. 找硬件同事借 PLC(可能要等一周)

2. 配置 IP、端口、从站地址

3. 发现文档里的寄存器地址和实际对不上

4. 反复沟通修改...


用 ProtoForge 的做法:


1. 打开模板市场,选"西门子 S7-1200"或"通用 PLC"

2. 一键创建,3 秒生成

3. 测点已经预置好了:温度、压力、开关状态

4. 直接连 localhost:5020 开始调试


**关键是**:ProtoForge 不是返回固定假数据,而是按协议规范完整响应读写请求。你的代码在 ProtoForge 上跑通了,对接真设备时大概率不会出问题。


# 真实场景:测试 GB28181 上级平台


国标平台的 SIP 交互是最难 Mock 的。INVITE 的 SDP 协商、RTP 推流端口动态分配、BYE 的会话清理... 自己写 Mock 要处理一堆状态机。


ProtoForge 的做法:


启动 GB28181 协议 → 创建摄像头设备 → 配置上级平台地址 → 自动注册 → 收到 INVITE 自动协商 → 开始推流。


你可以用 VLC 播放 rtp://@your-ip:port 验证视频流是否真的在推。


# 真实场景:CI/CD 自动化测试


```

# 一键测试全部设备和场景

curl -X POST http://localhost:8000/api/v1/tests/quick-test \

  -H "Authorization: Bearer $TOKEN"


# 获取 HTML 报告

curl http://localhost:8000/api/v1/tests/reports/latest/html \

  -o test-report.html

```


14 种断言 + 变量提取 + 前置/后置钩子,足够覆盖大部分集成测试场景。


![](https://p26-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/0c1f0d7ae9de41a797f4beb12f50514c~tplv-tt-shrink:640:0.image?lk3s=06827d14&traceid=20260510080752C6A639D10ED7EFACCF08&x-expires=2147483647&x-signature=nb0zr7SHHBPeUvaee4HnZmsDvpc%3D)


# 还解决了哪些痛点?


表格


| 痛点       | ProtoForge 方案                             |

| ------------ | --------------------------------------------- |

| 没有硬件   | 90+ 模板一键创建设备                        |

| 协议复杂   | 全链路仿真,不只是假数据                    |

| 团队协作   | 场景导出/导入,JSON 格式可版本控制          |

| 数据持久化 | InfluxDB / HTTP Webhook 一键转发            |

| 安全测试   | OPC-UA 证书自动生成、MQTT TLS、GB28181 SRTP |

| 生产部署   | Docker / K8s / Helm 完整方案                |


# 开源,但功能完整


很多开源项目要么功能残缺,要么文档缺失。ProtoForge 开源版包含:


* ✅ 全部 17 种协议

* ✅ 90+ 设备模板

* ✅ 场景编排 + 规则引擎

* ✅ 仿真测试框架

* ✅ 调试日志 + 审计日志

* ✅ 数据备份恢复

* ✅ RBAC 权限 + API 限流

* ✅ gRPC 远程管理(15 个 RPC 方法)

* ✅ Python/Java/Go/C# SDK


# 试试?


```

# Docker 一键部署

docker run -d --name protoforge -p 8000:8000 \

  -v $(pwd)/data:/app/data suoten/protoforge:latest

```


或者本地开发:


```

git clone https://github.com/suoten/ProtoForge.git

pip install -e ".[all]"

protoforge demo

```


---


**GitHub**: https://github.com/suoten/ProtoForge

**Gitee**: https://gitee.com/suoten/ProtoForge


觉得有用请点个 ⭐,有协议需求或 Bug 欢迎提 Issue。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050062/viewspace-3117471/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2026-05-07

  • 博文量
    69
  • 访问量
    54749