Skip to content

时间回放原理

hueng edited this page Apr 29, 2020 · 3 revisions

流量回放是将过去发生的流量在当下进行回放,对于那些对时间敏感的流量,回放失败率很高。

为了能实现将 回放时间 倒回到 录制时间,参考并发回放传递sessionID的原理,回放时Web Server将录制时间戳传递给SUT服务。

// Now returns the current local time.
func Now() Time {
	sec, nsec, mono := now()
	sec += unixToInternal - minWall
	if uint64(sec)>>33 != 0 {
		return Time{uint64(nsec), sec + minWall, Local}
	}
	return Time{hasMonotonic | uint64(sec)<<nsecShift | uint64(nsec), mono, Local}
}

sharingan/replayer 包mock上面的 time.Now 方法,以实现时间的回放。

Clone this wiki locally