RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于數(shù)據(jù)平臺流量的自動化測試

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 2023-06-28 16:28 ? 次閱讀

1 背景與挑戰(zhàn)

1.1 數(shù)據(jù)平臺業(yè)務(wù)背景

數(shù)據(jù)平臺利用大數(shù)據(jù)智能分析、數(shù)據(jù)可視化等技術(shù),對公司內(nèi)外部經(jīng)過采集、建設(shè)、管理、分析的多源異構(gòu)數(shù)據(jù)進(jìn)行呈現(xiàn)和應(yīng)用,實(shí)現(xiàn)了數(shù)據(jù)共享、日常報(bào)表自動生成、快速和智能分析,深度挖掘數(shù)據(jù)價(jià)值,滿足企業(yè)各級部門之間的數(shù)據(jù)分析應(yīng)用需求。因而也具有數(shù)據(jù)量大,場景多,數(shù)據(jù)準(zhǔn)確性要求高,查詢性能要有保障等特點(diǎn)。

1.2 傳統(tǒng)測試方法

基于數(shù)據(jù)平臺的特點(diǎn),使得我們在線下進(jìn)行數(shù)據(jù)測試或者回歸測試時(shí)成本比較高,難度也比較大。所以我們希望能有一種有效的手段來降低測試的成本和門檻,實(shí)現(xiàn)測試的標(biāo)準(zhǔn)化。一直以來我們都是通過編寫自動化測試來實(shí)現(xiàn)的。但是傳統(tǒng)的自動化測試其實(shí)是有很多弊端的,比如成本高,覆蓋場景有限,標(biāo)準(zhǔn)化難度高等。

1.3 傳統(tǒng)自動化的弊端

1.3.1 成本高:

人工編寫、維護(hù)自動化用例成本高

較低的測開比無法跟上迭代的速度

1.3.2 覆蓋場景有限:

線下構(gòu)造測試場景難度大

場景覆蓋度有限

1.3.3 標(biāo)準(zhǔn)化難度高:

強(qiáng)依賴 QA 個(gè)人經(jīng)驗(yàn)和能力

開發(fā)獨(dú)立排查自動化問題難度高,推動開發(fā)自測效果差

因此我們希望利用線上的流量來搭建一個(gè)流量回放的平臺,與自動化測試結(jié)合,來實(shí)現(xiàn)一個(gè)符合數(shù)據(jù)平臺特點(diǎn)的自動化測試體系。

2 流量回放平臺介紹

流量回放的實(shí)現(xiàn)原理即是使用線上入口錄制用戶操作的真實(shí)流量,到預(yù)發(fā)環(huán)境進(jìn)行回放,對比生產(chǎn)和預(yù)發(fā)環(huán)境錄入接口的子調(diào)用、響應(yīng)差異去定位代碼問題,接入對象范圍是只讀、讀寫、只寫接口,優(yōu)點(diǎn)是業(yè)務(wù)代碼零侵入,自動流量 diff,真實(shí)鏈路調(diào)用,數(shù)據(jù)可查,問題定位精準(zhǔn),發(fā)現(xiàn)問題的可能性提高,缺點(diǎn)是面向范圍有一定局限性,操作不慎可能導(dǎo)致回放的接口中存在寫操作的子調(diào)用產(chǎn)生臟數(shù)據(jù),影響業(yè)務(wù)。

2.1 流量回放平臺調(diào)研

確定之后我們便立刻展開了調(diào)研,研究對比了公司的流量回放平臺,阿里的 Doom 以及 Twitty 的 Diffy,差異如下圖。 37fb03c6-14d6-11ee-962d-dac502259ad0.jpg

2.2 數(shù)據(jù)平臺業(yè)務(wù)特點(diǎn)

因?yàn)閿?shù)平報(bào)表的查詢特點(diǎn), 導(dǎo)致代碼中對外查詢鏈路少,對內(nèi)的維度條件業(yè)務(wù)組合多,基于這樣的特點(diǎn)導(dǎo)致在使用 Pandora 平臺錄制線上流量時(shí),流量錄制不全,大多數(shù)場景無法完全覆蓋。

復(fù)雜的數(shù)據(jù)平臺一般都依賴大量屬性配置管理、定時(shí)同步任務(wù)等,因此預(yù)發(fā)環(huán)境和生產(chǎn)環(huán)境配置庫需要隔離,保護(hù)數(shù)據(jù)不被污染。而流量回放又依賴配置庫和數(shù)據(jù)庫相同,使用場景高度依賴配置數(shù)據(jù), 導(dǎo)致回放落地難度大。

數(shù)據(jù)平臺的流量回放,驗(yàn)證結(jié)果時(shí)往往需要對數(shù)據(jù)進(jìn)行校驗(yàn), 請求會對生產(chǎn)數(shù)據(jù)庫造成一定查詢壓力,可能會影響生產(chǎn)環(huán)境穩(wěn)定性。需要控制好回放速度和控制、監(jiān)控和降級保護(hù)。

部分?jǐn)?shù)據(jù)是實(shí)時(shí)的,回放結(jié)果需要計(jì)算波動率。

基于以上特點(diǎn)導(dǎo)致數(shù)據(jù)平臺無法接入公司的 Pandora 平臺,我們也在第一時(shí)間聯(lián)系公司平臺負(fù)責(zé)人進(jìn)行溝通和提出改進(jìn)需求方案。 但問題的迫切使得我們決定先小成本的進(jìn)行一些工作,一方面盡快緩解我們的痛點(diǎn),一方面也要方便后期接入公司平臺,減少資源浪費(fèi)。以此為目的,我們在一期使用腳本采集流量, 并借助開源工具 Diffy 快速實(shí)驗(yàn)了一套簡易的流量回放系統(tǒng)。同時(shí)給平臺提出適應(yīng)性接入需求。在二期時(shí),將腳本采集的流量上傳至平臺,接入平臺進(jìn)行流量回放。 這樣的好處是:

流量自主可控,可根據(jù)需要定點(diǎn)擴(kuò)充流量,無需擔(dān)心流量稀疏、錄制對線上環(huán)境的影響、接口覆蓋不全等問題。

使用日志或埋點(diǎn)的方式采集流量,為流量采集提供了一種流量采集的新思路

開源工具只有部署和熟悉的資源投入,后期接入平臺后可回收資源,沒有浪費(fèi)資源重復(fù)造輪子

基于以上背景,進(jìn)行了數(shù)據(jù)平臺的流量回放實(shí)現(xiàn)方案。

2.3 核心原理

整體思路依然是沿著線上獲取流量,分別在不同代碼環(huán)境進(jìn)行回放,最后對接口返回結(jié)果進(jìn)行比對,以達(dá)到檢測被測代碼準(zhǔn)確性的目的。這里我們將生產(chǎn)的流量根據(jù)時(shí)間、接口白名單和操作人等字段進(jìn)行過濾,并按照窗口進(jìn)行流量的去重和篩選,最后沉淀為一個(gè)穩(wěn)定的流量池。任務(wù)觸發(fā)后會并發(fā)的按照指定速率向預(yù)發(fā)和生產(chǎn)雙發(fā)回放,獲取接口的返回結(jié)果,經(jīng)過一系列降噪操作后,根據(jù)字段對比結(jié)果統(tǒng)計(jì)出整體的成功率,并產(chǎn)出報(bào)告。下面我會從流量采集、環(huán)境策略、執(zhí)行調(diào)度、比對結(jié)果四個(gè)方面來介紹整個(gè)方案。 ~ 流量回放交互構(gòu)架圖~ 38239de0-14d6-11ee-962d-dac502259ad0.png

2.3.1 流量采集

通過公司的流量錄制方式, 接口覆蓋提升難度較大, 不太適合數(shù)平對外鏈路少,條件組合多的特點(diǎn),因此我們想通過埋點(diǎn)篩選的方式進(jìn)行流量采集。這樣的好處是完美避免了流量錄制過程中流量分布不均,降低對線上服務(wù)的性能影響,同時(shí)接口的覆蓋又非常的完整。實(shí)現(xiàn)了自主可控,定點(diǎn)獲取流量。 在流量采集中,我們會分批次的去生產(chǎn)系統(tǒng)上根據(jù)配置的日期和數(shù)量不斷地?fù)迫×髁?,對每一個(gè)批次流量根據(jù)入?yún)⒑驼埱舐窂竭M(jìn)行接口去重,并根據(jù)梳理好的接口白名單、流量操作人、接口關(guān)鍵字、請求類型等來過濾數(shù)據(jù),然后需要對流量中的臟數(shù)據(jù)進(jìn)行篩選、對參數(shù)中的特殊字符和多余字段進(jìn)行修正。最后將清洗好的干凈數(shù)據(jù)保存到本地流量池中,等待任務(wù)使用。 385889e2-14d6-11ee-962d-dac502259ad0.jpg 在后期,處理后的流量會通過接口上傳至流量回放回放 Pandora 平臺,通過我司的平臺化工具更便捷高效的管理流量和執(zhí)行。 上傳后即可在流量回放平臺查看流量,這里也可以通過 excel 的方式手動上傳,但是每批次流量數(shù)量受限。 387a345c-14d6-11ee-962d-dac502259ad0.png

2.3.2 環(huán)境策略

環(huán)境采用了預(yù)發(fā)和生產(chǎn)兩套環(huán)境對比。通過配置將預(yù)發(fā)環(huán)境的數(shù)據(jù)來源指向了生產(chǎn)服務(wù)。并且定時(shí)同步生產(chǎn)的配置庫到預(yù)發(fā)環(huán)境,來解決數(shù)據(jù)和配置的 Gap。 38b19ece-14d6-11ee-962d-dac502259ad0.png38e8dfce-14d6-11ee-962d-dac502259ad0.png

2.3.3 執(zhí)行調(diào)度

調(diào)度有兩種方式, 一種是配置定時(shí)觸發(fā),一種是手動調(diào)用接口觸發(fā)。任務(wù)觸發(fā)后,會獲取流量池中的流量,并對流量的關(guān)鍵字和執(zhí)行數(shù)據(jù)量級再次判斷是否可執(zhí)行。確認(rèn)執(zhí)行后,將流量放入線程池中開始回放。這里采用了定長線程池和速率控制器來實(shí)現(xiàn)高并發(fā)和靈活的請求速率配置。 在任務(wù)執(zhí)行后,也可以根據(jù)實(shí)際執(zhí)行情況隨時(shí)修改配置來停止任務(wù)或者調(diào)整任務(wù)的發(fā)送速率,控制對線上環(huán)境的影響。 3917e0ee-14d6-11ee-962d-dac502259ad0.png

2.3.4 比對結(jié)果

拿到生產(chǎn)和預(yù)發(fā)的返回結(jié)果之后就是對比兩端結(jié)果,發(fā)現(xiàn)不一致的字段和返回,介于數(shù)平的特點(diǎn),噪音點(diǎn)會非常的多,因此引入了 AAdiff 的方式,來達(dá)到自動降噪的功能。如何降噪: a. AAdiff :在對比之前, 連續(xù)調(diào)用兩次生產(chǎn)環(huán)境,獲取結(jié)果后對比, 將不一致的字段剔除。即可去除不穩(wěn)定或者有波動的字段 b. 指定字段忽略:跟對一些配置字段或者無意義字段進(jìn)行手動配置忽略,降低噪點(diǎn)。 結(jié)果差異對比匯總后, 會根據(jù)字段進(jìn)行分組匯總,對與 AAdiff 不通過的字段會直接置灰。點(diǎn)擊字段即可在右側(cè)查看字段下差異的數(shù)據(jù)。 3941681a-14d6-11ee-962d-dac502259ad0.jpg 通過點(diǎn)擊差異詳情,可進(jìn)一步看到請求的 path、請求體、生產(chǎn)和預(yù)發(fā)的返回值等信息,幫助排查定位問題。 39697332-14d6-11ee-962d-dac502259ad0.png 同時(shí)在結(jié)果報(bào)表中可以觀測到流量數(shù)、回放成功率等信息。

3 業(yè)務(wù)實(shí)踐

這里以智能運(yùn)營系統(tǒng)為例,對比流量回放接入前后的效能成本差異。 39b4a8b6-14d6-11ee-962d-dac502259ad0.png 通過流量回放的方式,不僅快速提升了自動化的接口覆蓋,降低了迭代人力投入,更是增強(qiáng)了回歸的可靠性。這一點(diǎn)通過迭代質(zhì)量變化趨勢也能很好的反應(yīng)。 平臺數(shù)據(jù): 流量回放工具在 513 迭代初步使用, 但覆蓋率和穩(wěn)定性較差, 514 迭代完善,正式投入使用。 在 514 迭代工具正式投入使用后,發(fā)現(xiàn)遺漏 bug 比例達(dá) 25%,515 迭代質(zhì)量有明顯提升, 連續(xù)兩個(gè)迭代線上無缺陷逃逸發(fā)生。平臺質(zhì)量和穩(wěn)定性明顯提升。 目前智能運(yùn)營流量回放投入使用至今,已持續(xù)支持多個(gè)迭代的日常回歸測試以及日常壓測工作,讀接口覆蓋率達(dá) 86%,回放通過率穩(wěn)定在 98%,發(fā)現(xiàn)回歸漏測比率達(dá) 25%,大大提高了系統(tǒng)的穩(wěn)定性和線上質(zhì)量。 39ed1868-14d6-11ee-962d-dac502259ad0.png

4 規(guī)劃與展望

智能運(yùn)營系統(tǒng)流量回放已進(jìn)入維護(hù)階段,在日常迭代中幫助測試實(shí)現(xiàn)冒煙、回歸、壓測、緩存驗(yàn)證等多種任務(wù)。后續(xù)將通過精準(zhǔn)接口流量獲取的方式,將少部分稀疏接口納入覆蓋。并將流量上傳至流量回放平臺。借助流量回放平臺的能力,更加穩(wěn)定、方便的執(zhí)行計(jì)劃和排查問題。 基于數(shù)據(jù)平臺各系統(tǒng)以讀接口為主的特點(diǎn),非常適合流量回放的回歸形式,后續(xù)會將各個(gè)系統(tǒng)按優(yōu)先級陸續(xù)接入我司流量回放平臺,并通過流量埋點(diǎn)的方式快速提升接口覆蓋。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8575

    瀏覽量

    151015
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7002

    瀏覽量

    88941
  • 自動化
    +關(guān)注

    關(guān)注

    29

    文章

    5562

    瀏覽量

    79239

原文標(biāo)題:數(shù)據(jù)平臺流量回放最佳實(shí)踐

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    OPhone自動化測試技術(shù)概述

    本文將對OPhone平臺上可采用的幾種自動化測試技術(shù)進(jìn)行介紹,并對每種技術(shù)的優(yōu)缺點(diǎn)做簡要的總結(jié)。OPhone臺除了為應(yīng)用程序開發(fā)提供豐富的API外,也為開展自動化
    發(fā)表于 05-06 08:58

    手機(jī)自動化測試方法

    `隨著智能手機(jī)近年來的快速增長,從游戲娛樂到移動辦公的各式各樣的手機(jī)APP軟件滲透到我們的生活中,手機(jī)APP自動化測試也逐漸興起,從Monkey本地測試到云測試
    發(fā)表于 07-05 15:07

    基于EXFO新LTB平臺自動化測試和儀表共享方案

    會議的主要內(nèi)容:基于EXFO新的LTB平臺,討論如何打破傳統(tǒng)的測試模式,利用以太網(wǎng)和網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)儀表的共享和優(yōu)化并使其自動化。會議的主講人是EXFO應(yīng)用工程師—胡希文,主要從事于光通訊行業(yè)(光芯片
    發(fā)表于 04-11 09:45

    開關(guān)電源自動化測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    管理軟件、測試開發(fā)軟件、系統(tǒng)服務(wù)與驅(qū)動程序軟件、處理總線平臺和模塊I/O 與儀器控制五個(gè)層次,如圖1 所示。圖1 以軟件為核心的模塊的系統(tǒng)構(gòu)架  以軟件為核心的模塊
    發(fā)表于 11-29 16:59

    LXI新一代測試自動化平臺

    LXI新一代測試自動化平臺
    發(fā)表于 10-12 15:01

    如何對用戶界面進(jìn)行自動化測試

    能識別圖形界面上的關(guān)鍵信息,比如界面上的文字,數(shù)值,圖標(biāo)等。小螞蟻測試(AnTestin)平臺支持對人機(jī)接口的屏幕顯示進(jìn)行自動化檢測,代替人的眼睛觀察,可以識別界面上的關(guān)鍵信息,結(jié)合其他操作(比如
    發(fā)表于 03-06 19:57

    自動化測試系統(tǒng)問答

    和配置管理,學(xué)會在開發(fā)工具的同時(shí)也學(xué)會一些開發(fā)和測試自動化流程。而在測試過程中,因?yàn)殚_發(fā)的工具不是非常系統(tǒng),所以可以主要從功能點(diǎn)(按照需求列好功能點(diǎn)
    發(fā)表于 10-12 19:02

    LabVIEW與Tektronix示波器實(shí)現(xiàn)電源測試自動化

    自動化數(shù)據(jù)處理的智能。通過LabVIEW編程環(huán)境連接Tektronix示波器,可以精確設(shè)置測試參數(shù),如電壓、電流波形等,確保每次測試
    發(fā)表于 12-09 20:37

    WLAN自動化測試平臺的設(shè)計(jì)及實(shí)現(xiàn)

    本文介紹的WLAN自動化測試平臺,采用Linux作為控制端,遠(yuǎn)程Telnet AP端和STA端,分別通過腳本配置AP端和STA端,并控制他們之間的交互。
    發(fā)表于 04-23 11:03 ?2711次閱讀
    WLAN<b class='flag-5'>自動化</b><b class='flag-5'>測試</b><b class='flag-5'>平臺</b>的設(shè)計(jì)及實(shí)現(xiàn)

    基于白盒測試自動化測試平臺實(shí)現(xiàn)

    主要介紹了 Parlay 應(yīng)用服務(wù)器的 API 接口, 提出了一個(gè)簡單的基于白盒測試自動化測試平臺實(shí)現(xiàn)方案, 并詳細(xì)介紹了該方案的基本設(shè)計(jì)思想、總體結(jié)構(gòu)、
    發(fā)表于 09-08 15:07 ?7次下載
    基于白盒<b class='flag-5'>測試</b>的<b class='flag-5'>自動化</b><b class='flag-5'>測試</b><b class='flag-5'>平臺</b>實(shí)現(xiàn)

    ATE自動化測試系統(tǒng)是什么_ATE自動化測試系統(tǒng)介紹

    本文首先介紹了ATE自動化測試系統(tǒng)發(fā)展線路,其次闡述了ATE自動化測試系統(tǒng)的作用及原理、特點(diǎn)、優(yōu)勢,最后介紹了ATE自動化
    發(fā)表于 05-23 16:47 ?3.2w次閱讀

    中科創(chuàng)達(dá)SOA自動化測試平臺正式發(fā)布

    近日,中科創(chuàng)達(dá)正式推出全新自動化測試產(chǎn)品——SOA自動化測試平臺。該平臺可以通過SOA仿真環(huán)境搭
    發(fā)表于 11-24 10:58 ?806次閱讀

    什么是自動化測試框架

    自動化測試框架,即是應(yīng)用于自動化測試所用的框架。按照框架的定義,自動化測試框架要么是提供可重用的
    發(fā)表于 04-18 14:44 ?893次閱讀

    接口自動化測試流程講解 企業(yè)接口自動化測試步驟

    接口自動化測試是指通過編寫腳本或使用自動化工具,對軟件系統(tǒng)的接口進(jìn)行測試的過程。接口測試是軟件測試
    發(fā)表于 07-28 14:54 ?2224次閱讀
    接口<b class='flag-5'>自動化</b><b class='flag-5'>測試</b>流程講解 企業(yè)接口<b class='flag-5'>自動化</b><b class='flag-5'>測試</b>步驟

    電源測試怎么自動化?電源模塊自動化測試系統(tǒng)如何實(shí)現(xiàn)?

    納米軟件在電測行業(yè)深耕十余年,在行業(yè)的大背景下,為了進(jìn)一步完善自動化測試,開發(fā)出了新的智能的電源模塊自動化測試系統(tǒng)ATECLOUD-POW
    的頭像 發(fā)表于 12-15 14:40 ?883次閱讀
    電源<b class='flag-5'>測試</b>怎么<b class='flag-5'>自動化</b>?電源模塊<b class='flag-5'>自動化</b><b class='flag-5'>測試</b>系統(tǒng)如何實(shí)現(xiàn)?
    RM新时代网站-首页