怎么模拟 grpc 的响应?k8s 环境,A 服务和 B 服务在不同的 namespace 中,A 通过 grpc 调用 B 服务的接口,怎么让 B 给 A 返回一个 mock 的响应。2022-07-31 15:04:54对方正在输入... 对方正在输入...订阅者关注私信243文章0粉丝 测试交流1 149字数 63阅读0分12秒阅读模式怎么模拟 grpc 的响应?k8s 环境,A 服务和 B 服务在不同的 namespace 中,A 通过 grpc 调用 B 服务的接口,怎么让 B 给 A 返回一个 mock 的响应。谢谢。博尔塔拉软件功能测试相关阅读AI时代测试工程师的核心竞争力:从执行用例到可解释的质量判断从零搭建AI测试用例工作流:需求文档自动转思维导图AI+Skills如何让测试工程师效率提升10倍?三步实现智能生成测试用例宝塔面板的BUG新建网站时新建了文件再建文件夹时提示错误宝塔面板无法安装扩展的BUG解决方案PHP安装扩展下载链接错误测试反模式的思考 回复 1 孙高飞 9 2022-07-31 14:30:00 1F 回复 你现在碰到的是什么问题? 是不知道怎么写 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 服务的端口号。 回复问题 匿名网友 确定 昵称 邮箱 网址 Address 提交 取消 拖动滑块以完成验证 您可能喜欢 AI时代测试工程师的核心竞争力:从执行用例到可解释的质量判断 从零搭建AI测试用例工作流:需求文档自动转思维导图 AI+Skills如何让测试工程师效率提升10倍?三步实现智能生成测试用例 宝塔面板的BUG新建网站时新建了文件再建文件夹时提示错误 宝塔面板无法安装扩展的BUG解决方案PHP安装扩展下载链接错误 测试反模式的思考 使用 cookie 绕过验证码,换一个系统就无法通过验证 MeterSphere测试平台UI 自动化窗口切换方法 5000 块买的 python 自动化课程难道就这? 在 Linux 上搭建 Jenkins,自动构建接口测试
1F
你现在碰到的是什么问题? 是不知道怎么写 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 服务的端口号。