在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

研發視角淺談R2流量回放測試

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-12 15:16 ? 次閱讀

一、背景

測試小伙伴們在2023年保障了團隊線上系統0問題,這簡直就是一項了不起的壯舉!這得益于咱們測試組同事對工作的細致投入、風險把控、以及嚴格遵循流程規范進行測試用例評審、自動化建設、聯調推動、回歸驗證、常態化壓測、大促高保真壓測、引流回放等多重保險策略工作。尤其是測試團隊在流量錄制回放方面的實踐經驗非常豐富,還貢獻了不少文檔,簡直是測試界的大佬啊!

本文從研發的的視角去看待流量回放這個問題,或許也能提供一些有趣的觀點呢。

文檔內容說的不一定對,歡迎專業的測試大佬鞭打我的思維火花!這樣對我來說也是成長。

二、流量回放

從系統穩定性角度出發,任何需求我都會跟小組團隊強烈要求一點,不要影響線上既有功能,做好DUCC開關快速止血。(太多的COE報告歷史經驗教訓都是因為上線某功能B最終導致之前功能A出問題,比如修改了公共的某些方法等)那如何保障不影響線上既有功能呢,自動化測試是一方面,但流量回放比對才是最佳的方式。

流量回放原理其實就是錄制線上真實的流量,到預發引流環境進行回放,對比生產和預發環境錄入接口的子調用、響應差異去定位代碼問題。流量回放用例的創建成本很低,使得每次迭代全量回歸有了理論基礎。優點是業務代碼零侵入、真實鏈路調用、多場景、數據可查、結果diff比對、問題定位精準,提前發現問題。風險是操作不慎可能導致線上問題,比如依賴的下游接口流量暴漲,或者寫操作導致線上臟數據,最終影響業務

wKgZomaQ2EGAUM_mAADe4gQ-gzI956.png

??

三、流量錄制

流量來源哪里?肯定是線上真實流量靠譜,可以包含實時的流量也可包含歷史流量(離線錄制的流量),或者人為造的測試流量(造的流量也是參考線上歷史流量有價值的)

其實流量錄制核心關心的是錄制的流量夠不夠,是否能覆蓋這次代碼改動牽扯的業務場景。

1、流量規則

流量過濾:

R2支持過濾規則設置,通過可視化配置:支持字段級過濾規則配置,僅錄制符合規則的流量?;蛘咦远x腳本:當過濾規則較為復雜時,可使用自定腳本,編寫過濾代碼。

流量去重:

有時R2可能錄制到非常多的相同流量,如果某些系統不需要的話,可能造成后續回放耗時較長和問題排查效率低下。需要思考如何能在保證接口覆蓋率的情況下盡可能減少相同流量的數量。通過這種機制在一些場景大幅度減少了錄制流量數量,提高了流量的使用效率。當然大部分場景是不需要去重的,如果需要去重流量不清楚現在R2是否可以通過自定義腳本支持(比如根據10個入參其中的8個入參來判斷重復的邏輯)。

?

2、場景覆蓋度

為了使用戶了解錄制到流量的覆蓋程度,如:是否存在場景缺失?是否存在我們不知道的場景等,R2特此開發錄制場景覆蓋度功能,幫你更了解你的生產流量。

案例:

比如Promise社區團購業務只有晚上20點后才會有這種特殊的業務,故需要思考你本次回放的代碼是否需要覆蓋該場景,則需要錄制回放晚上20點后流量。

所以流量錄制回放多久合適?是2小時、4小時還是多久,評判標準就是場景覆蓋度。

wKgaomaQ2EKASGymAAKle7AVlt8311.png

??

3、大促&春節特殊場景流量

為什么要單獨談一下大促&春節特殊場景的流量,比如Promise很多場景是只有大促才會有的,比如預售場景。這部分流量日常根本獲取不到,就算你錄制回放線上1個月流量也是無用的。這樣的特殊場景流量用于日常回放非常有價值。尤其是改了大促場景需求或者大促前上線了N個需求,可能影響到大促特殊場景功能正確性。那具體如何做呢?我想到的如下思路:

1.是不是可以通過R2的流量錄制,通過入參過濾獲取這部分特殊場景流量,但需要思考不影響大促當天線上系統性能。并且要求接口入參可以區分哪些是大促特殊場景的流量。

2.如果接口依賴很多下游,這需要思考,他們的結果mock保留起來 或者其他方式

3.或者根據logbook日志找出大促特殊場景的業務 入參、出參等等。然后人為整理流量,但這耗時耗力。

當然因為時間久遠,大促特殊場景的流量我們核心是需要入參,當時的出參結果可能價值不大,因為現在跑結果可能就是不一樣,當然具體因系統而定。

四、回放

回放分離線DIFF和實時DIFF。實時DIFF適合業務場景時效性比較強,例如:計費、活動等類型的場景。這些場景因為時效性,不能使用流量錄制來進行 Diff 測試。實時 Diff 恰好可以幫助我們進行此類場景 diff 測試。但如果對時間特別敏感的,實時 Diff也是會存在回放失敗率。 為了能實現將 回放時間 倒回到 錄制時間,不知道現在R2是否支持,可將錄制時間戳傳遞給服務(比如System.currentTimeMillis() 這種native方法,動態修改方法體的字節碼,代理掉業務對該方法的調用,動態替換為R2事先定義的獲取時間方法從而保證時間替換。)

流量回放一般牽扯讀接口、讀寫接口、寫接口。

1、讀接口回放

對只讀接口進行不mock的回放能夠在上線前的最后階段進行一次兜底的回歸校驗。但需要注意的是,當前是只讀的接口難以保證后續的變更不會引入寫操作

案例:

Promise時效域-下傳控制 之前一直是只讀接口,在2023年期間上線了門店產能占用寫邏輯,但團隊有次線上流量回放忘了這個寫的新功能,導致占用線上產能了(唯一幸運點的是占用產能波次跟線上是一致,不會導致產能波次占用錯誤)

臨時解決方案:

團隊制定規則,如果讀接口變成讀寫,則需要去Ducc引流環境把對應寫功能的開關關閉,同理發送MQ同理也是通過開關關閉。并且每次回放前都進行人工校驗寫鏈路,但這能不能做到 或者效率也是個問題,暫時未想到更好的方法。

2、寫接口回放

1.在流量回放中,讀接口和寫接口回放的方式有很大不同。事實上,這不只是流量回放的特點。即使是傳統接口自動化測試,讀接口和寫接口的測試策略也是有很大不同的。

2.讀接口和寫接口的不同,在于讀接口沒有副作用,而寫接口有副作用。寫接口的副作用通常體現在會對被測系統產生臟數據上。

3.寫接口需要注意可能操作不慎導致回放的接口中調用產生臟數據,影響業務。

4.如果寫接口,mock的意義不大,如果不操作線上寫,可以搭建一套UAT引流回放寫的環境,可鏈路的某些服務或者組件依賴可以mock,當然里面可能比較復雜,比如數據的操作,mysql,redis等UAT環節。結果比對不是簡單的diff比對。則應該是去看具體關鍵數據、log日志等去驗證結果。如果接口返回的數據依賴于數據庫或其他外部系統,那么在真實調用時可能會出現數據不一致的問題,導致測試結果不準確。

5.跟上面搭建的UAT引流環境類似。參考軍演全鏈路壓測,通過修改錄制的流量數據,通過修改入參,傳遞forcebot標識,代碼識別到forcebot標識,走對應軍演影子環境。數據線上有mysql影子庫,Redis等影子環境,寫操作是直接寫到影子里。

wKgZomaQ2EOAI1g8AAOcnuxmpzk226.png

??

JSF接口MOCK失敗

wKgZomaQ2EWAD5CvAAQk8EaV77Y628.png

??

3、讀寫接口回放

讀寫接口分為讀和寫。核心是偏讀,內部部分邏輯是寫,針對這,讀遵循上面的原則即可,寫可以采用如下方式

1.通過Mock方式返回,不會真實操作寫動作,不會污染應用數據。R2支持各種中間件Mock,不詳細講解。

2.通過DUCC開關關閉寫的邏輯

案例:比如Promise上面說的產能占用邏輯&發送MQ就是通過DUCC開關關閉該邏輯。

wKgaomaQ2EWALFVJAACNyAn68ec613.png

??

4、是否應該Mock回放

1.Mock回放與接口是否讀寫操作并沒有直接的聯系。只是日常習慣寫接口mock,讀用線上真實。但對于讀接口,既可以使用Mock回放,也可以不使用Mock回放;而對于寫接口,同樣可以選擇使用Mock回放或不使用Mock回放

2.Mock回放與非Mock回放之間的本質區別在于:Mock回放是一種白盒測試方法,而非Mock回放則是一種黑盒測試方法。

5、回放覆蓋率統計

我們是否已經全面錄制了流量?回放測試是否存在代碼盲區?如何證明我們的測試足夠全面?或許你也曾有過這樣的疑慮。為了解決這個問題,R2支持離線回放代碼覆蓋率。覆蓋率統計回放,即流量回放的同時,支持被測代碼覆蓋率統計,并生成覆蓋率報告。

wKgZomaQ2EaAYKPKAAIiWqiOVbo970.png

??

?

五、Diff結果比對

1.制定靈活的回放結果比對策略,減輕排錯成本:比如忽略哪些字段,核心關注哪些出參,需要對API接口的出入參及業務非常熟悉,需要制定合理的對比策略,根據場景的不同,靈活采用關鍵字段對比、結構對比等策略。

2.有些Diff比對不一致,只能分別去查看logbook日志尋找原因,有些是因為回放的時候業務修改了配置導致,有些是真正的bug問題,則需要及時修復然后再次引流回放。

3.有些需求改了邏輯,需要的就是Diff不一樣,這時候流量回放的目的不是為了比對,而是用線上流量豐富測試用例,讓測試更加精準。

?

我是研發,是一個測試小白,文章內容可能有些不完全準確,希望通過您的指正和建議來不斷完善和改進。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5303

    瀏覽量

    126657
  • 接口
    +關注

    關注

    33

    文章

    8598

    瀏覽量

    151166
收藏 人收藏

    評論

    相關推薦

    CD4046A想鎖一個100K的方波信號,R1,R2需要怎么配置?

    請教一下, 關于CD4046A 想鎖一個100K 的方波信號,R1,R2需要怎么配置?目前R1=10K,R2=10K,C1=1.5nF,無法鎖住相位;
    發表于 12-06 08:18

    請問LMH7322開發板如何測量R2兩端LVDS信號?

    開發板前端,給了一個1MHz的方波,然后測試第一級輸出的LVDS信號,使用普通探頭,一端接地,一端分別測試匹配電阻R2兩端,始終測不到波形,請問應該怎么測試,謝謝。
    發表于 11-12 07:13

    LMK5B12204硬件初始化成功了,R2 Register (Address = 0x2) 的數值為什么只能讀取一次?

    你好我想請問一次,我的LMK5B12204硬件初始化成功了,并讀取到了 R2 Register (Address = 0x2) 的數值 0x35,但是之后再讀取就讀不到了,只能讀取一次,這是為什么呢?
    發表于 11-08 08:06

    電阻R2有什么用

    電阻R2有什么用請各位大俠觀住一下給本人講解一下對次感謝各位觀看
    發表于 10-26 09:42

    功放測試解決方案分享——壓電振動能量回收裝置

    功放測試解決方案分享——壓電振動能量回收裝置
    的頭像 發表于 08-30 11:48 ?213次閱讀
    功放<b class='flag-5'>測試</b>解決方案分享——壓電振動能<b class='flag-5'>量回</b>收裝置

    AD8221差分放大電路的輸入阻抗是不是由R1,R2決定呢?

    請問加了直流通路后,這個電路的輸入阻抗是不是由R1,R2決定呢?小于1k歐?
    發表于 08-21 06:26

    INA818輸入直接取電阻R2兩端兩點電壓,兩點壓差范圍約為2mV~200mV,是否可以直接作為INA818的輸入呢?

    INA818, INA317現在要放大的電壓是一個電流鏡鏡像之后的電流流過一個采樣電阻R2的直流電壓,計劃用INA818來放大,放大輸出電壓作為ADC的輸入。 請問以下設置是否合理呢
    發表于 08-09 06:29

    開爾文法測電阻的r1r2如何選擇

    的影響,從而提高測量精度。在實際應用中,選擇合適的r1和r2對于測量結果的準確性至關重要。 一、開爾文法測電阻的原理 歐姆定律:V = IR,其中V是電壓,I是電流,R是電阻。 開爾文法的基本思想:在未知電阻的四個端點上施加電壓
    的頭像 發表于 08-05 09:40 ?844次閱讀

    AMC1311 R1 R2 R3的阻值是應該選取哪個等級呢?

    我在用AMC1311做母線電壓采集,輸入電壓是420v,請問,R1 R2 R3的阻值是應該選取哪個等級呢?R級?k級?M級?感謝
    發表于 08-01 08:14

    如何提高BP神經網絡算法的R2

    BP神經網絡(Backpropagation Neural Network)是一種廣泛應用于模式識別、分類、預測等領域的前饋神經網絡。R2R-squared)是衡量模型擬合優度的一個重要指標,其值
    的頭像 發表于 07-03 09:55 ?1093次閱讀

    專業寬帶射頻記錄回放解決方案

    一、概述 射頻記錄回放設備是一種專業的測試工具,廣泛應用于無線通信、雷達系統、電子對抗、頻譜監測以及科研教學等多個領域。應用背景廣泛且多樣, 對于評估系統的性能、查找故障、優化參數等方面都具有
    的頭像 發表于 06-25 17:36 ?1249次閱讀
    專業寬帶射頻記錄<b class='flag-5'>回放</b>解決方案

    麻醉針針管流量測試儀簡述

    文章由濟南三泉智能科技有限公司提供針管流量測試儀是用于檢測醫用針管流量性能的專用儀器。以下是關于針管流量測試儀的詳細介紹:一、概述針管
    的頭像 發表于 05-27 11:56 ?351次閱讀
    麻醉針針管<b class='flag-5'>流量</b><b class='flag-5'>測試</b>儀簡述

    LT4363-2過壓關斷功能失效是哪里出的問題?

    輸入電壓為24V,使用該電路實現過欠壓關斷功能,當IN端輸入電壓過高或過低是,通過UV和OV點的分壓實現控制MOS關斷。 測試時發現:模擬測試R2電阻失效時,將R2短路后,此時計算OV
    發表于 05-27 07:12

    使用電感器再度改善運算放大器的真零輸出

    它很簡單,只需簡單改動即可提高效率。如果固定R1和R1′的值(使輸入功率也固定),則輸出電壓將在圖形Eo=Eo(R2)上出現一個極值。為便于達到這個極值,可以將圖1的電路修改為圖2,其
    發表于 01-31 16:27 ?562次閱讀
    使用電感器再度改善運算放大器的真零輸出

    ALIENWARE外星人全新ALIENWARE m16 R2全面升級

    全新ALIENWARE m16 R2搭載英特爾酷睿Ultra H系列處理器和NVIDIA GeForce RTX 40系列筆記本電腦GPU,支持NVIDIA DLSS 3.5 AI升頻技術
    發表于 01-12 10:21 ?1027次閱讀
    主站蜘蛛池模板: 97菊爱网| 人人插人人| 久久成人福利视频| 亚洲欧美日韩一区| 色综合久久中文字幕网| 国产亚洲午夜精品a一区二区| 天堂8资源8在线| 亚洲男人的天堂久久无| 色偷偷免费| 永久看片| 亚洲一区二区免费视频| 日韩精品亚洲一级在线观看| 永久在线| 亚洲一区二区三区精品视频| 日韩黄色成人| 午夜在线观看免费高清在线播放| 欧美另类69| 色婷五月| 五月天狠狠操| 免费亚洲一区| 久久人视频| 把小嫩嫩曰出白浆| 五月婷婷激情网| www.色网| 正在播放亚洲一区| 免费一级成人毛片| 国产在线精品香蕉综合网一区| 一级特级aaaa毛片免费观看| 国产高清在线看| 人人澡人人搞| 欧美日剧在线免费| 久久久久久全国免费观看| 亚洲激情视频| 中文天堂资源在线www| 午夜视频在线网站| 经典三级影院| 欧美黑人xxxx猛牲大交| 欧美性色欧美a在线播放| 立即播放免费毛片一级| 五月婷婷丁香| 天天操天天干天天操|