jvm-sandbox-repeater 录制流量成功后回放失败,但是数据库 replay 表中有记录,请问有人遇到过类似的问题吗
遇到过,有时候又成功跳到回放详情页了
那就是啥都没有修改就 OK 吗,我这边一直都是 failed,并且通过接口 facade/api/repeat 去回放时,会报错,这个看代码是
这个接口不是执行回放,这个接口是执行回放过程中 repeater 去 record 表中拉取对应的 wrapperRecord 数据
回放的接口源码里没有设置回放的 ip 地址,如果你是本地演示,在 controller 层设置回放参数的 ip 为 127.0.0.1,因为 service 层有对 ip 的非空检测,也就是你截图的部分。
我是把 sandbox 和 repeater 都部署在远端的服务器上,本地访问 console 页面以及访问接口 url 都是通过 ip 来的,这个如果是要远端去回放,要怎么解决呢,在 controller 层设置下回放参数 ip 吗,那就是得动代码了吗
我现在在回放的接口里面带了应用服务器的 ip 过去,但是报错 data not exist,回放的应用服务器 ip 和数据库的 ip 不是同一个,会有什么问题吗,看代码是根据 appName 和 traceId 去数据库捞数据的,数据库有数据
是的,需要改代码的。这个 ip 就是回放机器的 ip,测试的话如果目标服务和 console 服务都在同一台机器 127.0.0.1,应用落地 ip 是可以通过传参设置的,把 ip 当接口参数
服务器 ip 和数据库的 ip 没直接交互,中间是通过 repeate 和 console 服务中转的。数据库连接的配置改了没,能连通数据库的话 debug 或者打印日志看看
有多种参数匹配策略,可以设置使用参数相似度对比策略,就能解决参数值不同(时间参数,相关 id 等),从而导致匹配子调用失败的问题(AbstractMockStrategy#execute)