成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

訂單流量錄制與回放探索實踐

開發 前端
得物版本的流量錄制回放平臺pandora在官方開源版本上進行了很大的拓展,支持了很多官方版本不支持的子調用和入口調用。此外,平臺還對得物的中間件進行了諸多適配工作,避免了大量的回放失敗噪音。

1、背景介紹

1.1 得物pandora介紹

什么是流量錄制回放?流量錄制回放是應用端通過掛載注入錄制器探針自動注冊到服務端形成錄制流量回流,將所有外部調用依賴的響應內容(如數據庫、分布式緩存、外部服務響應等)進行完整記錄。由平臺向回放器分發流量回放指令。其核心價值是通過直接錄制生產的真實數據,將生產真實數據轉化成可復用、可執行的流量,快速地在測試環境中進行回放比對接口返回值和中間鏈路的驗證。

得物版本的流量錄制回放平臺pandora在官方開源版本上進行了很大的拓展,支持了很多官方版本不支持的子調用和入口調用。此外,平臺還對得物的中間件進行了諸多適配工作,避免了大量的回放失敗噪音。

圖片

1.2 市場工具對比

目前市場上已知的流量錄制回放平臺大部分都是在Jvm-Sandbox-Repeater基礎上進行二次開發和改造,并且多數都是只支持Java語言。核心原理也都是通過錄制線上真實流量然后在測試環境進行回放,驗證代碼邏輯正確性。

2、實踐落地

2.1 協作模式

在具體的實施層面,目前采用的是業務測試,平臺研發,業務研發三方協同的模式。任務分拆如下圖所示。

圖片

得物流量回放實施模式

2.2 階段應用

流量回放在各階段的理想實施應用:

  • 提測階段卡點:聚焦核心場景,低成本驗證每次提測對于核心場景的影響;
  • 測試回歸階段卡點:全量場景,重點追求覆蓋場景全面性,驗證新功能對歷史功能的影響;
  • 預發環境回歸:目前預發跟生產同庫,未來會推動落地基于預發&生產環境的流量回放,盡可能拉近錄制時環境和回放時環境的仿真差異,從而降低回放階段的噪音影響;

在得物的整體QA體系中,流量回放短期聚焦在回歸兜底保障上。

圖片

得物迭代&項目時間軸

2.3 實踐落地

流量回放的開展自發起后,在本域由探索嘗試階段逐漸過渡到應用場景拓展階段。

訂單流量回放模式

在經過一段時間的探索,摸索出了一套適用于本域迭代的模式。

圖片

Part1、嘗試接入

團隊開始開展流量回放的專項之后,通過調研,選取了40%的服務優先接入。

1. 階段目標

  • 完成30%P0應用top10 接口100%場景覆蓋,形成迭代落地質量卡點,完成適用性和提效分析;
  •  增加訂單域流量回放人員投入,落地質量卡點,覆蓋5%回歸場景;

2. 實施方案

  • 調研應用的特性,嘗試接入流量錄制回放;
  • 梳理服務的P0接口及用例,配置對應的接口及用例標簽;
  • 用例自動沉淀到用例集后,在回歸階段嘗試進行流量回放。

3. 收益成果

  • 完成30%應用形成落地質量卡點,落地15%用例回歸場景,驗證方案可行性和易用性,摸索研發測試協同機制。

Part2、探索升級

上一階段花費大量的時間梳理接口配置標簽,用例沉淀速度緩慢,并且收益與投入不成正比,因此調整了策略,應用智能化分析進行提效,快速沉淀用例,擴大用例量及覆蓋的接口量。45%業務應用接入并均實現強卡點落地,配合平臺側優化,解決大部分組件適配和使用問題,迭代應用流程以及應用指標分析機制基本跑順。

1. 階段目標

  • 應用:接入的應用交由對應的服務負責人,負責對應服務的接口維護運營及沉淀、排錯分析
  • 用例:嘗試探索新的用例沉淀方式,進一步擴大用例量,增加覆蓋的接口量;
  • 排錯:根據服務的用例量以及接入的時間,提升測試排錯能力,階段2結束測開排錯達到五五開;

2.收益成果

  • 從開始試點到應用卡點,沉淀的用例量也在應用熱點流量方案之后開始了升級之路。接入的應用數也超過原定目標達到50%且均實現強卡點落地。
  • 應用智能化分析策略提效效果明顯,沉淀的用例數成指數型增長,接入應用的P0接口覆蓋率達到100%。
  • 測試排錯能力提升,每迭代流量回放發現的bug數也在增加,新方案的可實施性和可推廣性基本符合預期。

Part3、專項提速

在沉淀的用例case大量的增加、用例沉淀速度提效明顯的前提下,流量回放在迭代的應用中發現更多的缺陷,規劃擴大接入的應用以及覆蓋的接口范圍。

1. 階段目標

  • 應用接入:新增40%應用接入,接入應用占比合計90%;
  • 排錯:提升測試的排錯能力,新版本排錯由平臺研發轉交業務研發,測試開發排錯占比五五開;
  • 用例量:加速沉淀用例量,擴大覆蓋的范圍,至少65%的應用完成全量用例沉淀;
  • 卡點:接入應用達到100%卡點,提升排錯速度,部分應用由生產卡點轉為預發卡點;
  • 全域接入應用接口維度覆蓋率98%以上,接口配置完善度98%以上,全量用例路徑覆蓋率60%以上。

2. 收益成果

隨著應用的接入,沉淀的用例量也在擴大,發現的問題數也在增多。同時也增加覆蓋率的指標來衡量流量回放用例覆蓋的代碼占總代碼行的比值。隨著對覆蓋率的關注,平臺采樣策略也進行了一個調整,刪除所有歷史沉淀用例,僅沉淀新策略實施之后錄制的流量。

  • 流量回放接入90%應用,擴大應用接入和case沉淀,超預期達成目標,沉淀應用Case量是原計劃的3倍,此階段累計發現缺陷數占全域流量回放發現的bug數的45%,充分驗證了落地策略的有效性;
  • 從階段3本域發現的缺陷統計來看,其中回歸類BUG占比38%,發現線上自有/隱藏問題占比8%,迭代過程中代碼問題(日志報錯)和代碼規范類問題占比46%,性能問題占比8%;
  • 接口配置完善度100%;接口維度覆蓋率96.49%;全量用例路徑覆蓋率79.32%,全量代碼覆蓋率平均39.8%;

3、總結分析

3.1 問題歸類分析

3.1.1 累計發現的缺陷分類:

圖片

3.1.2 累計發現的缺陷來源分類:

圖片

3.1.3 典型案例:

  • 回放時系統異常,排查之后定位為NPE類問題,如:

圖片

圖片

  • response返回的業務字段diff對比不一致,如:

圖片

通過對缺陷以及缺陷來源的歸類不難看出:

  • 流量回放發現攔截的問題近一半都是會引起生產業務報錯的,其中包括像金額不對涉及資損的問題以及字段傳值不對、枚舉類型取錯等缺陷;作為生產發布前的最后階段的防線之一,充分展現了流量錄制回放作為對測試回歸的兜底能力的補充手段的重要性。
  • 45%左右的問題是手工測試過程中難以發現隱藏比較深的代碼層面問題,例如NPE報錯、入參出參字段未序列化等,這些問題如果僅僅通過前端測試或接口測試不看日志不一一對比所有字段勢必會將問題帶到生產環境,最終影響生產環境的穩定性。
  • 6%左右的性能問題,例如存在重復子調用,影響接口RT,如果不在生產發布前發現解決,勢必給用戶體驗帶來一定的挑戰。
  • 從缺陷的來源上看,發現的缺陷來源還是集中在項目迭代需求和技術優化上,充分驗證了流量回放整體提速后的有效性以及對測試覆蓋兜底能力的補充。
  • 通過對失敗用例的排錯分析經驗的累積和分享培訓,參與專項的測試團隊的整體技術水平通過流量回放專項提速在技術氛圍上有明顯提升,培養了多位同學對自身負責模塊的實現的代碼走讀能力,以及深挖缺陷的code diff能力。

3.2 適用性分析

  • 適用場景

適用于返回數據量大、業務流量也很大,以及讀取業務占比大的場景,如ToC產品。

  • 不適用場景
  • 掛載沙箱后開啟錄制會導致RT瞬間飆高,影響生產服務的穩定性。
  • 異步場景目前流量回放平臺不支持。
  • 需要驗證數據庫的落地,節點的流轉的鏈路測試,需要自動化。

先投入能迅速形成能卡點有收益的應用(迭代代碼變更相對少,分層結構比較好,異步少,寫操作少),把看得到的使用效果做出來。

流量回放能否完全替代手工回歸以及自動化?

目前來看,答案是否定的。首先,從沙箱掛載到接口配置再到流量錄制這一套流程下來,也需要較長的時間才能達到較高的用例覆蓋,對于一些邊界極端場景還是需要手工設計;其次,流量錄制回放是后置的回歸兜底,更側重于對歷史邏輯的回歸驗證。

1、接口覆蓋不全。迭代需求新接口,未配置關聯錄制,不在流量回放的錄制范圍。

2、全量代碼覆蓋率不高。接口已經配置覆蓋了,但是由于采樣比例小場景極端等原因,接口的分支場景并沒有錄制到未被覆蓋。

3、排錯能力的高低影響。接口覆蓋了,排錯的時候由于新加了子調用,導致失敗的用例在排錯的時候容易被簡單定義為代碼變更。

4、平臺問題。diff比對異常,顯示回放成功,異步線程的回放是一個待攻克的難點。

3.3 面臨的挑戰

3.3.1 排錯的效率

錄制流量后對流量進行回放,發現回放結果比對失敗的很多。經過對失敗原因的排查與分析,有些是代碼bug導致的失敗,但更多的失敗不一定是代碼bug,常見噪音主要包含:

  • 代碼修改,新增或刪除了子調用,導致mock失敗
  • 平臺不支持的子調用,導致失敗
  • 時間戳相關的子調用,diff不一致
  • 子調用中使用隨機參數相關,導致mock匹配不上
  • repeater代碼自身缺陷
  • 業務自增數據差異
  • 配置中心數據不一致
  • 返回無序元素集合,造成結果對比誤差

失敗原因很多,真正有效的失敗數很少。如此一來,每次回放失敗的排查成本就非常高。給業務的推進造成了巨大的阻礙。

原版repeater上報的信息不夠豐富,很多情況需要看日志才能排查。目前也沒有公開成熟的參考的方案。平臺也進行了一些初步的探索,對回放失敗的場景自動進行歸類,上報更豐富的數據信息提供排查指引,幫助排查人員聚焦定位問題。同時平臺也針對一些噪音進行自動識別并在回放時自動過濾降噪。

回放失敗分類

界面提示

界面展示信息

子調用多調用

錯誤

得物鏈路traceId, 多調用的參數,調用堆棧,是否參數不匹配,是否完全多出來一次調用,等等

子調用少調用+回放時捕獲到異常

錯誤

得物鏈路traceId, 回放軌跡,異常堆棧,參數

子調用少調用

錯誤

得物鏈路traceId, 回放軌跡

入口返回diff有差異

錯誤

得物鏈路traceId, 返回數據的diff比對

僅回放時捕獲到異常

告警

得物鏈路traceId, 異常堆棧,參數

3.3.2 異步線程錄制回放問題

入口主線程不等子線程執行完就返回的異步場景,當前的策略是用戶可配置對異步子線程的多調用忽略,只關注主線程的執行情況。這一方式雖然可以提升這種異步線程場景的回放成功率,但是損失了異步子線程業務邏輯的回歸能力。

圖片

上面的案例就是由于應用開啟了排查提效優先的開關,忽略了異步子線程的調用,導致diff比對異常,顯示回放成功。該接口在生產發布時報了異常,String類型長度超長被try catch,埋點丟失。

4、展望&未來規劃

流量錄制回放作為測試領域的一個新興事物,在誕生初期就吸引了廣大測試同仁的關注,市場上也有些公司也對此進行了一些實踐。我們對流量錄制回放的實踐還處于起步的階段,一些問題的解法也在探索中 。

預發只讀接口非mock回放

在得物預發環境是聯通生產環境的數據庫和下游應用,因此對于預發進行不mock的回放,特別是對只讀接口進行不mock的回放能夠在上線前的最后階段進行一次兜底的回歸校驗。最難解決的問題是,當前是只讀的接口難以保證后續的變更不會引入寫操作。在當前階段開放這一功能會引入額外的資損類風險敞口。

對此問題,每次回放前都進行人工校驗可能可以解決,但是又引入了極大的效率問題。如何高效地保證在預發/灰度環境進行不mock流量回放不會產生資損風險,是一個值得探索的問題,需要研發跟測試的共同努力。

方案1-單回放(準實時回放)

圖片

方案1落地遇到的問題:

1.配置中心的數據不一致,噪音比較大

2.時效問題,有10S的時差,一些業務對時效要求比較高

方案2-雙回放(實時回放)

圖片

方案2不僅避免了上面方案1的問題,另外后續規劃還可以根據覆蓋率沉淀有效用例集,手工添加異常用例。

通過一段時間的運行,目前已經看到了一些流量錄制回放在業務迭代中產生了價值,發現了一些隱藏bug。接入流量回放明顯的變化是能夠將測試從繁重的回歸測試、用例梳理維護等重復性高的勞動中解放出來,將重心放在測試計劃的設定、思考測試策略以及自我提升的實踐上,比如做些輔助排錯提效的coding能力提升和加強對業務的熟悉的寬度和深度上,從而最大程度的保障業務系統的質量和穩定性。

未來期望能在不斷的實踐中把得物的流量錄制回放體系建設得越來越完善,解放更多的生產力,產出更多的價值。

責任編輯:武曉燕 來源: 得物技術
相關推薦

2022-01-17 21:48:35

流量錄制設計點

2023-06-16 23:57:56

智能運營系統

2023-04-06 13:25:54

月光寶盒

2024-12-05 12:01:09

2024-04-26 09:38:36

2023-02-08 18:33:49

SRE探索業務

2017-05-18 11:43:41

Android模塊化軟件

2024-09-10 08:42:37

2022-08-21 21:28:32

數據庫實踐

2024-01-02 07:44:27

廣告召回算法多路召回

2024-12-16 00:54:05

2022-05-16 14:12:43

微服務流量軟件

2014-05-12 10:57:41

TermRecord終端會話

2023-07-03 07:42:42

2023-06-30 13:10:54

數據聚合網關

2023-01-05 07:54:49

vivo故障定位

2017-09-08 17:25:18

Vue探索實踐

2024-05-07 07:03:29

2024-02-29 09:17:43

數據中心

2023-08-18 10:49:14

開發攜程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久久久久久久国产 | 第一av| 欧美综合一区二区 | 日韩中文字幕av | 天天天天天天操 | 国产亚洲一区二区三区 | 在线一区二区三区 | 91大神新作在线观看 | 精品美女在线观看视频在线观看 | 久久中文一区二区 | 韩日一区 | 亚洲国产日韩一区 | 欧美一区二区大片 | 人人看人人干 | 碰碰视频 | 成人欧美一区二区三区白人 | 亚洲精品一区二区三区 | 欧美精品一区三区 | 亚洲一区在线观看视频 | 国产精品成人一区二区 | 日本福利一区 | 国产一区2区 | 国产乱肥老妇国产一区二 | 成年人免费在线视频 | 亚洲毛片网站 | 国产精品日本一区二区不卡视频 | 久热m3u8| 欧美精品在线视频 | 免费在线黄色av | 天天综合网7799精品 | 黄网站在线播放 | 99reav| 日韩在线小视频 | 欧美日韩国产一区二区 | 国产中文一区二区三区 | 成人激情视频免费观看 | 在线观看一区 | 国产成人精品在线播放 | 精一区二区 | 一区二区在线 | 成人小视频在线观看 |