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

对方正在输入...
对方正在输入...
订阅者
258
文章
0
粉丝
测试交流1 142字数 63阅读0分12秒阅读模式

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

博尔塔拉软件功能测试文章源自玩技e族-https://www.playezu.com/192595.html 文章源自玩技e族-https://www.playezu.com/192595.html

 
    • 孙高飞
      孙高飞 9

      你现在碰到的是什么问题? 是不知道怎么写 rpc server 去返回 mock 响应? 还是不知道怎么劫持 A 到 B 的响应?不知道怎么劫持。好像可以用 mitmproxy,但是不知道怎么将他们串起来。是要将 mitmproxy 制作成镜像,用 k8s 的 deployment 跑起来吗?又涉及用哪个 namespace 的问题,还有用 nodeport 还是 clusterIP 的问题。思路混乱,没有头绪。我一般的思路都是写个工具,动态的往目标 pod 里注入一个 proxy 容器, 同一个 pod 内的所有容器是用 container 网络模式启动的,共享网络。 如果需要篡改 ip 的话, 一个 iptables 命令就可以了。 您说的内容好像是 istio,我了解得很少。https://testerhome.com/articles/27001

      楼主参考一下我之前在 k8s 里玩 mock server 的帖子。 也是用的 side car 模式。 isto 确实也是这么玩的您注入的是 mock server,那是不是也可以用这种 side car 方式注入 mitmproxy?谢谢。当然是可以的撇开动态注入。如果一个 deployment 里面固定创建两个容器,服务 A 的 container 和 mock 服务的 container。是不是在服务 A 的 container 里执行 “iptables -t nat -A PREROUTING -p tcp –dport 7777 -j REDIRECT –to-port 6666” 类似这样的命令,就可以将服务 A 的请求转向代理到 mock 服务?其中 7777 是服务 A 的端口号,6666 是 mock 服务的端口号。

    匿名

    发表评论

    匿名网友
    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
    确定

    拖动滑块以完成验证