FA12# 流量錄制回放智能降噪知識點梳理
引言
已錄制的流量進(jìn)行回放,如果回成功率較低,比如20000個請求錯誤率5%,也有1000個錯誤, 對開發(fā)測試排查成本過高,疲憊抱怨也會增加。本文降低排查成本提升開發(fā)測試效率,側(cè)重在智能降噪這塊涉及的知識點進(jìn)行整理,主要內(nèi)容有:
常見噪點 智能降噪 文章小結(jié)
1.時間差異
流量錄制和回放時間戳不同,代碼中使用該時間戳進(jìn)行邏輯判斷,例如:System.currentTimeMillis() ?native方法,如果響應(yīng)的Response也有時間戳也會造成差異。
2.隨機數(shù)差異
請求參數(shù)或者返回結(jié)果中使用了隨機數(shù)字,這種大概率是會失敗的。
3.自增數(shù)據(jù)差異
無論請求還是返回,自增數(shù)據(jù)也會造成比對失敗。
4.鏈路ID標(biāo)識
類似鏈路ID、SequenceID等標(biāo)識,在系統(tǒng)中會透傳,可能造成回放失敗。
5.配置中心數(shù)據(jù)
線上配置中心的數(shù)據(jù)和回放的測試環(huán)境配置數(shù)據(jù)不一致,也導(dǎo)致了數(shù)據(jù)回放失敗。
6.返回?zé)o序元素集合
在方法接口調(diào)用返回時無序的元素集合,也會造成結(jié)果對比誤差。
1.降噪配置
通過提供全局、應(yīng)用級別、接口級別對噪音字段進(jìn)行配置,配置可以解決一部分問題,適合存在通用性字段且數(shù)量不多的情況。可以作為降噪的第一層配置。
2.智能降噪
是一種通過對流量diff的自動對比的降噪方式,下面以Twitter開源框架Diffy為例走查其運行原理,可供我們實踐中定制二開或者自研參考 。

通過三個版本系統(tǒng)進(jìn)行流量對比,將其噪聲過濾:
候選版本:即待提測上線版本 穩(wěn)定版本:可以部署線上Master分支 穩(wěn)定版本副本:可以部署線上Master分支
工作原理:
通過向穩(wěn)定版本和穩(wěn)定版本副本回放流量,對比其流量差異得到【噪聲 】 通過向候選版本和穩(wěn)定版本回放流量,對比其流量差異得到【原始區(qū)別 】 再從【原始區(qū)別】剔除【噪聲】得到最終的diff結(jié)果
Diffy的Github的地址:
https://github.com/twitter-archive/diffy
????????
????????本文羅列了流量回放中常見的噪音以及解決噪音的常見措施。需要以智能去噪為主,加以一些定制化配置字段去噪綜合治理來降低測試開發(fā)的排查成本。
