Skip to content

流量回放实现原理

hueng edited this page Apr 29, 2020 · 6 revisions

Golang的流量回放 主要基于 sharingan/replayer 包 及 定制版的golang 实现。

相比Golang的流量录制原理,流量回放原理更简洁清晰一些。看下面的原理前,请先熟悉要用到的 名词解释

一、简介

流量回放的前提是基于录制的流量进行操作。

如果录制的流量只有Inbound请求,没有Outbound请求,那么,回放过程非常简单。只需构造http请求发给SUT,等待SUT返回Response后进行对比即可。

但实际业务中,不仅会有Outbound请求,而且Outbound请求还很多,协议也各种各样。

因此,流量回放首要解决的问题有:

  1. 如何拦截SUT的Outbound请求,将其转发给Agent的Mock Server。
  2. 如何在录制的流量里,选择最合适的Outbound返回给SUT。

二、原理详解

带着上面提出的2个问题,请查看下面详细说明。

Outbound请求拦截点

回放剧本传递

Outbound请求匹配

并发回放实现

时间回放原理

Clone this wiki locally