You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于grpc-spring-boot-starter,是否存在类似Wiremock的gRPC响应录制工具?

类似Wiremock的gRPC响应录制工具推荐

刚好我之前也遇到过和你一样的需求——不想手动写大payload的gRPC存根,希望直接录制真实服务的响应来做测试。下面几个工具和方案应该能满足你的需求,而且和grpc-spring-boot-starter都能很好配合:

  • Wiremock gRPC Extension
    没想到吧?Wiremock现在已经支持gRPC了!用法和你之前录REST的流程几乎一模一样:启动Wiremock作为gRPC代理,把你的客户端配置指向Wiremock的gRPC端口,它会自动拦截你和真实服务之间的所有gRPC交互,生成对应的存根文件。之后在测试里,你只需要启动内存Wiremock实例,加载这些存根文件,客户端就能拿到和真实服务一致的响应了。完全不用改你之前的存根管理习惯,直接把存根放test/resources目录就行。

  • 自定义gRPC ClientInterceptor
    如果不想引入第三方工具,你可以自己写个轻量的ClientInterceptor。在拦截器里,当客户端调用真实服务并收到响应后,把请求和响应序列化成文件(比如Protobuf二进制格式或者JSON格式)保存到本地。测试的时候,你只需要写一个简单的测试服务,读取这些文件并返回对应的响应就行。这种方式完全自定义,适合你处理大payload的场景,能避免第三方工具可能带来的兼容性问题,配合grpc-spring-boot-starter的测试配置,集成起来非常方便。

  • mitmproxy + gRPC支持
    mitmproxy是个通用的流量代理工具,现在已经支持gRPC流量拦截了。你只需要把客户端的gRPC请求通过mitmproxy代理到真实服务,它就会自动记录所有的请求和响应。之后你可以把这些记录导出成文件,转换成测试用的存根格式,再用gRPC的测试服务加载。这个工具适合录制复杂场景的流量,比如多服务交互的情况,而且还能临时修改流量做调试,不过对于你的需求来说,核心就是用它录制真实响应。

  • Stubby4g
    这是专门为gRPC设计的存根工具,主打录制和回放功能。你可以把它作为代理运行,捕获客户端和真实服务的gRPC调用,自动生成存根配置文件。测试时启动Stubby4g服务,让你的客户端连接过去,就能返回录制好的响应了。它的配置和Wiremock类似,上手成本低,和grpc-spring-boot-starter兼容也很好。

另外给你个小建议:录制大payload的时候,优先用Protobuf的二进制格式保存存根,比JSON格式更高效,也能避免序列化/反序列化过程中可能出现的错误,毕竟真实服务返回的就是二进制Protobuf消息嘛。

内容的提问来源于stack exchange,提问作者rabbitvirus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 19:22:36