接口测试 怎么模拟 grpc 的响应?k8s 环境,A 服务和 B 服务在不同的 namespace 中,A 通过 grpc 调用 B 服务的接口,怎么让 B 给 A 返回一个 mock 的响应。

luckyhey · 2022年01月17日 · 最后由 孙高飞 回复于 2022年03月20日 · 550 次阅读

怎么模拟 grpc 的响应?k8s 环境,A 服务和 B 服务在不同的 namespace 中,A 通过 grpc 调用 B 服务的接口,怎么让 B 给 A 返回一个 mock 的响应。谢谢。

共收到 7 条回复 时间 点赞

你现在碰到的是什么问题? 是不知道怎么写 rpc server 去返回 mock 响应? 还是不知道怎么劫持 A 到 B 的响应?

孙高飞 回复

不知道怎么劫持。好像可以用 mitmproxy,但是不知道怎么将他们串起来。是要将 mitmproxy 制作成镜像,用 k8s 的 deployment 跑起来吗?又涉及用哪个 namespace 的问题,还有用 nodeport 还是 clusterIP 的问题。思路混乱,没有头绪。

luckyhey 回复

我一般的思路都是写个工具,动态的往目标 pod 里注入一个 proxy 容器, 同一个 pod 内的所有容器是用 container 网络模式启动的,共享网络。 如果需要篡改 ip 的话, 一个 iptables 命令就可以了。

孙高飞 回复

您说的内容好像是 istio,我了解得很少。

https://testerhome.com/articles/27001

楼主参考一下我之前在 k8s 里玩 mock server 的帖子。 也是用的 side car 模式。 isto 确实也是这么玩的

孙高飞 回复

您注入的是 mock server,那是不是也可以用这种 side car 方式注入 mitmproxy?谢谢。

luckyhey 回复

当然是可以的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册