一个典型的系统,服务A依赖服务B和服务C的返回。
场景: 如果要对服务A进行测试,那么对于服务A来说,服务B和服务C的返回可以认为是另一种输入。
问题:在一些特定的场景如回归测试,因为服务B和C的返回不可控,如(推荐系统, 计数系统),使得同样的请求返回数据会有不同的结果。
需求:需要有手段对依赖服务的返回进行控制即mock,从而使得A系统的输入保持一致,以便输出固定的预期结果。
解决方案:
接入netstub后,网络变成星状的拓扑,所有服务之间的请求都经过nginx, 可以对服务的返回进行控制。
如上图,接入netstub后,对于特定请求,服务B和服务C的返回,不再去请求依赖的服务,而是直接从录制或配置的数据中读取,保证了数据的一致性。
2.使用方法① 可以修改目标服务的hosts文件
如上图拓扑中,将服务A中的hosts文件修改为
nginx_ip 服务B域名
nginx_ip 服务C域名
② 修改DNS服务器
将服务A中的原服务端的ip改为Openresty网关的ip, 实现方式见另一篇博客:使用coredns搭建私有DNS服务
3. 回放数据配置见文章
【netstub】用户手册



