午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

 新用戶0175WbuX 2022-02-24

  本文要點(diǎn)

  1、分布式微服務(wù)架構(gòu)下的自動(dòng)化測(cè)試,傳統(tǒng)的金字塔分層測(cè)試?yán)碚撌欠袢匀粺o懈可擊?為什么說基于服務(wù)的接口自動(dòng)化及全鏈路回歸最具性價(jià)比?

  2、如何破解接口自動(dòng)化測(cè)試及全鏈路回歸技術(shù)門檻搞、用例準(zhǔn)備效率低、構(gòu)造數(shù)據(jù)難、鏈路復(fù)雜、結(jié)果校驗(yàn)等痛點(diǎn)?全鏈路智能測(cè)試自動(dòng)生成測(cè)試場(chǎng)景、一鍵呈現(xiàn)全鏈路校驗(yàn)數(shù)據(jù),自動(dòng)生成測(cè)試報(bào)告,鏈路集成測(cè)試由2天縮短為10分鐘。

  3、生產(chǎn)流量錄制回放,自動(dòng)錄制線上數(shù)以萬計(jì)的真實(shí)場(chǎng)景用例數(shù)據(jù),有效提升線下回放的測(cè)試覆蓋率和充分度,用例構(gòu)建1天減少到分鐘級(jí),效率提升百倍。

  作者:螞蟻集團(tuán) 鳳啟

  來源:微信公眾號(hào): 螞蟻研發(fā)效能

  出處

  :mp.weixin.qq/s?__biz=MzU3NzczMDI4Ng==&mid=2247484320&idx=1&sn=

  3e650dc5f2dd9a255a2a3570eaa8de59

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  01

  前言

  質(zhì)量和效率,是業(yè)務(wù)研發(fā)過程中最注重的兩個(gè)維度。高質(zhì)量是保障業(yè)務(wù)平穩(wěn)進(jìn)行的絕對(duì)前提,高效是更好保障高質(zhì)量地重要條件,二者不可分割。在業(yè)務(wù)飛速發(fā)展的當(dāng)下、產(chǎn)品迭代越來越快、項(xiàng)目越來越多,交付周期越來越短,這給質(zhì)量和測(cè)試帶來了前所未有的挑戰(zhàn)?;诮?jīng)典金字塔模型分層自動(dòng)化等最佳實(shí)踐為解決質(zhì)量和測(cè)試的挑戰(zhàn)提供了很好的思路。

  02

  經(jīng)典測(cè)試分層理論

  金字塔分層測(cè)試的自動(dòng)化,有這如下的特點(diǎn)

  單元測(cè)試自動(dòng)化可重用的測(cè)試用例 :在相同或更改的環(huán)境下輕松地多次重用相同的測(cè)試用例,通過消除場(chǎng)景中的人為因素來保證準(zhǔn)確性,以一半的預(yù)算提供更精準(zhǔn)的結(jié)果。執(zhí)行時(shí)間更少:允許“快速失敗”,可以及早發(fā)現(xiàn)代碼中的錯(cuò)誤和故障,減少返工成本。最大的測(cè)試覆蓋:可以同時(shí)運(yùn)行多個(gè)復(fù)雜的測(cè)試用例,提供了比傳統(tǒng)測(cè)試更大的覆蓋范圍,從而使團(tuán)隊(duì)可以構(gòu)建更全面,更高質(zhì)量的產(chǎn)品。具有成本效益的解決方案 :最初投資似乎很多,但從長(zhǎng)遠(yuǎn)來看,它以更少的體力勞動(dòng),早期的錯(cuò)誤修復(fù)以及開發(fā)和測(cè)試人員之間的協(xié)作確保了生產(chǎn)成本的最小化?;诜?wù)的接口測(cè)試自動(dòng)化相對(duì)UI測(cè)試更為前置,把問題攔截在前期,降低問題修復(fù)成本。前后端分離結(jié)構(gòu),各服務(wù)之間更多的是通過接口來實(shí)現(xiàn)互通,對(duì)接口進(jìn)行直接測(cè)試,相比Unit單元測(cè)試可以更全面的覆蓋各類測(cè)試場(chǎng)景。性價(jià)比較高:相對(duì)來說,接口就比較穩(wěn)定,入?yún)⒑统鰠⑾鄬?duì)固定的,用例這樣維護(hù)起來也比較方便。因?yàn)榘唇涌跍y(cè)試,出現(xiàn)問題后在被測(cè)接口中排查,UI自動(dòng)化:性價(jià)比最低,辛辛苦苦寫好的測(cè)試用例,跑了還沒幾天,新的需求之后,開發(fā)把頁面改了,原來定位的控件失效了,N條測(cè)試用例跑不通了。維護(hù)成本高,自動(dòng)化測(cè)試腳本構(gòu)造的越快,維護(hù)成本也就越大。比如一個(gè)UI節(jié)點(diǎn)細(xì)微的變化,可能導(dǎo)致自動(dòng)化工具沒有識(shí)別UI控件,那么所有用到這個(gè)控件的測(cè)試用例都需要更新,查找替換并且保證沒有替換錯(cuò)就是一個(gè)很大的工作量,更別說一般錄制的腳本人工都不容易理解。穩(wěn)定性差,某條測(cè)試用例本地調(diào)試的時(shí)候是通的,批量執(zhí)行的時(shí)候就失敗了。上次跑通了,這次又失敗了。。。這既有代碼的問題,也有圖像識(shí)別分辨率的問題。

  03

  我們的看法

  在《google 測(cè)試之道》一書,對(duì)于google產(chǎn)品,70%的投入為單元測(cè)試,20%為集成、接口測(cè)試,10% 為UI層的自動(dòng)化測(cè)試,對(duì)分層自動(dòng)化測(cè)試來說,這有一定的指導(dǎo)意義。

  UI自動(dòng)化位于分層金字塔的頂層,貼近客戶真實(shí)需求和業(yè)務(wù)場(chǎng)景的黑盒測(cè)試。但受限于各方面因素,投入了人力、物力、財(cái)力,但往往收獲頗微,這更適合UI相對(duì)穩(wěn)定和大量UI重復(fù)操作等場(chǎng)景的自動(dòng)化。我們認(rèn)為在UI方向的自動(dòng)化測(cè)試投入應(yīng)該更為慎重,主要依靠人工測(cè)試是可以接受的。Unit單元測(cè)試自動(dòng)化有著白盒代碼覆蓋全、效率更高、返工成本更低。但由于其主要聚焦在單系統(tǒng)內(nèi)的實(shí)現(xiàn)邏輯,某種意義上說離整個(gè)系統(tǒng)的表現(xiàn)、客戶需求、業(yè)務(wù)場(chǎng)景距離仍太遠(yuǎn)。

  在分布式微服務(wù)架構(gòu)下,業(yè)務(wù)鏈路和微服務(wù)間交互尤為復(fù)雜,接口自動(dòng)化天生為高復(fù)雜性的平臺(tái)帶來高效的缺陷監(jiān)測(cè)和質(zhì)量監(jiān)督能力,系統(tǒng)越龐大接口測(cè)試的效果越明顯,能有效提高測(cè)試效率,提升用戶體驗(yàn),降低研發(fā)成本。綜合UI自動(dòng)化和單元自動(dòng)化兩者的優(yōu)勢(shì)和不足,我們認(rèn)為基于服務(wù)的接口自動(dòng)化及全鏈路回歸是最值得投資和投入的,所以我們推薦以下橄欖球分層模型。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  03

  接口自動(dòng)化痛點(diǎn)

  這里所說的接口自動(dòng)化測(cè)試包含兩類,一類是純接口的驗(yàn)證,一類是接口場(chǎng)景類的測(cè)試。前者類似于用Postman之類的測(cè)試工具改改參數(shù)再下發(fā)接口,查看一下結(jié)果是否符合接口邏輯,這一類相對(duì)來講比較簡(jiǎn)單,螞蟻智能測(cè)試平臺(tái)也有非常成熟的產(chǎn)品能力。后者是由接口構(gòu)造一個(gè)測(cè)試場(chǎng)景,實(shí)際上是一種業(yè)務(wù)功能的測(cè)試,只不過由接口來銜接,這類接口自動(dòng)化涉及到了業(yè)務(wù)功能的測(cè)試,往往會(huì)節(jié)省較多的測(cè)試工作量,尤其是在進(jìn)行回歸測(cè)試的時(shí)候。

  接口場(chǎng)景類的測(cè)試,即使用接口來完成業(yè)務(wù)的邏輯測(cè)試,特別是全鏈路回歸是本文主要探討的方向,其主要的痛點(diǎn)如下:

  鏈路復(fù)雜,一個(gè)支付寶的全鏈路可能涉及幾百個(gè)系統(tǒng),海量的驗(yàn)證點(diǎn)人工難以有效梳理。入?yún)?gòu)造困難,對(duì)于下游系統(tǒng)來說入?yún)⒂猩习賯€(gè),很難去模擬某一筆業(yè)務(wù)的真實(shí)的業(yè)務(wù)入?yún)⑦M(jìn)行測(cè)試驗(yàn)證。資金流涉及人員多、數(shù)據(jù)確認(rèn)復(fù)雜導(dǎo)致確認(rèn)周期長(zhǎng)。老業(yè)務(wù)回歸需要金融核心層系統(tǒng)反復(fù)確認(rèn)資金流數(shù)據(jù)。環(huán)境不穩(wěn)定,重試依賴各種環(huán)境和人,難以快速發(fā)起。

  例如在一個(gè)典型的支付場(chǎng)景中,不光鏈路復(fù)雜,單純一個(gè)資金流的信息也極為龐大,涉及到大量的系統(tǒng)和數(shù)據(jù)交互。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  04

  解決思路

  全鏈路接口智能測(cè)試的一個(gè)核心思想是采用自動(dòng)化,智能化,平臺(tái)化的方式去自動(dòng)生成場(chǎng)景、一鍵式呈現(xiàn)全鏈路校驗(yàn)數(shù)據(jù),自動(dòng)生成測(cè)試報(bào)告,幫助用戶快速理解業(yè)務(wù)和進(jìn)行校驗(yàn),并提供極致簡(jiǎn)單的測(cè)試服務(wù)。

  無需編寫測(cè)試腳本,將用戶行為通過組件化編排,拖動(dòng)組件快速生成全鏈路用例,不同業(yè)務(wù)場(chǎng)景可以自由組合執(zhí)行用例,實(shí)現(xiàn)全鏈路跨系統(tǒng)的自動(dòng)化集成測(cè)試減肥藥,標(biāo)準(zhǔn)化質(zhì)量執(zhí)行。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  通過錄制線上流量,對(duì)線下環(huán)境的開發(fā)分支進(jìn)行回放校驗(yàn),以達(dá)到對(duì)系統(tǒng)比較全面的業(yè)務(wù)回歸。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  05

  最佳實(shí)踐

  全鏈路接口測(cè)試

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  新建用例模板,可自由對(duì)組件、管道進(jìn)行編排和設(shè)置。全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  生成用例,只需要在模板上填入基本信息就可以新增一個(gè)用例,然后在每個(gè)節(jié)點(diǎn)上可以編輯用例參數(shù),填入自己用例的入?yún)⒑陀美Q。全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  用例執(zhí)行和調(diào)度,通過實(shí)驗(yàn)室管理用例集,支持手動(dòng)執(zhí)行或定時(shí)自動(dòng)執(zhí)行。全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  測(cè)試報(bào)告和執(zhí)行詳情。全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  錄制回放通過錄制線上的全量數(shù)據(jù),包括測(cè)試驅(qū)動(dòng)數(shù)據(jù),下游需要mock的數(shù)據(jù),以及校驗(yàn)的基線數(shù)據(jù),所以可以做到降低接口測(cè)試的建設(shè)成本,覆蓋比較全面的場(chǎng)景,有效的mock,以及全面的校驗(yàn)

  線下自動(dòng)拉取線上錄制數(shù)據(jù)并構(gòu)造用例,免去了開發(fā)線下編寫測(cè)試用例的時(shí)間和精力;自動(dòng)錄制線上數(shù)以萬計(jì)的真實(shí)場(chǎng)景用例數(shù)據(jù),有效提升了線下用例回放的測(cè)試覆蓋率和充分度;用例回歸更能接近線上真實(shí)環(huán)境的行為,貼近業(yè)務(wù)真實(shí)數(shù)據(jù)。

  錄制回放的核心邏輯主要包括以下幾個(gè)部分

  數(shù)據(jù)采集:無侵入的統(tǒng)一信息模型采集能力,在鏈路系統(tǒng)中采集全鏈路的必要信息(對(duì)象、db、消息),轉(zhuǎn)換成統(tǒng)一格式日志進(jìn)行打印。數(shù)據(jù)模型統(tǒng)一:智能測(cè)試平臺(tái)經(jīng)過E(extract)、T(transform)、L(load)對(duì)全鏈路數(shù)據(jù)進(jìn)行提取加工。模型化智能推薦核驗(yàn)關(guān)系:智能測(cè)試平臺(tái)對(duì)數(shù)據(jù)進(jìn)行規(guī)則處理,把校驗(yàn)規(guī)則自動(dòng)清洗沉淀成表-表一致性校驗(yàn)規(guī)則、對(duì)象-表一致性校驗(yàn)規(guī)則、消息-表校驗(yàn)一致性規(guī)則等??蓴U(kuò)展校驗(yàn)引擎:最后通過自動(dòng)校驗(yàn)引擎,輸出整體的全鏈路校驗(yàn)報(bào)告和通知,并且每個(gè)服務(wù)化能力都有統(tǒng)一的服務(wù)能力提供給使用方。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  錄制回放技術(shù)仍然面臨較多挑戰(zhàn),需要通過技術(shù)創(chuàng)新不斷得到解決

  錄制 - 全場(chǎng)景且最小子集:錄制期望利用線上的真實(shí)流量,獲取系統(tǒng)全量的業(yè)務(wù)場(chǎng)景用例集;但是同時(shí)希望用例集是沒有重復(fù)用例的,對(duì)于回放來說,同樣的用例不需要在線下回放兩次以上。落地 - 迭代變更的適配(側(cè)新):之所以要進(jìn)行錄制回放是因?yàn)橛凶兏?,有變更就有可能?duì)我們已經(jīng)錄制的數(shù)據(jù)造成影響,甚至導(dǎo)致大部分的用例無法在此次迭代使用,迭代變更對(duì)回放效果的影響是導(dǎo)致大部分團(tuán)隊(duì)放棄利用此方案的最主要原因之一?;胤?- 不斷降噪(問題排查):因?yàn)殇浿朴美凝嫶?,假設(shè)目前用例有10w左右,就算通過達(dá)到了99%以上,失敗的用例也有1k左右!其中除了以上的迭代變更影響,各種噪音是影響方案最終落地的攔路虎。排除環(huán)境差異、配置差異、數(shù)據(jù)差異引起的回放數(shù)據(jù)和錄制數(shù)據(jù)不一致(噪聲),那么剩下的應(yīng)該就是發(fā)現(xiàn)缺陷了。

  06

  落地效果

  全鏈路接口測(cè)試

  操作簡(jiǎn)單,使用方便,通過自動(dòng)規(guī)則引擎,不需要人工配置任何校驗(yàn)規(guī)則,比以往傳統(tǒng)的通過編寫業(yè)務(wù)規(guī)則腳本效能上提升了百倍,并且通過全鏈路的數(shù)據(jù)串聯(lián)能力,幫助我們更好分析全鏈路的數(shù)據(jù),保障資金安全。網(wǎng)商銀行、支付寶等:解決用戶業(yè)務(wù)聯(lián)調(diào)過程中人工觸發(fā)聯(lián)調(diào)效率低、結(jié)果校驗(yàn)易遺漏痛點(diǎn)問題,提供完整自動(dòng)化測(cè)試解決方案,用例構(gòu)建1天減少到分鐘級(jí),效率提升百倍。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  結(jié)合內(nèi)部開源工具,開創(chuàng)性地構(gòu)建了無侵入錄制采集框架工具,能夠靈活對(duì)被測(cè)系統(tǒng)進(jìn)行數(shù)據(jù)采集,通過大數(shù)據(jù)處理,自動(dòng)分析合并業(yè)務(wù)場(chǎng)景,產(chǎn)出符合業(yè)務(wù)語義的用例場(chǎng)景,并通過高效回歸引擎驅(qū)動(dòng),做到了億級(jí)流量降維用例轉(zhuǎn)化,自動(dòng)保鮮、高效回歸。

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  在金融核心各業(yè)務(wù)接入情況來看,自動(dòng)化測(cè)試用例膨脹增長(zhǎng)了10倍:

  全鏈路智能測(cè)試及錄制回放最佳實(shí)踐

  06

  結(jié)語

  全鏈路接口智能測(cè)試方案可以幫助開發(fā)和測(cè)試同學(xué)不再困擾于本地測(cè)試用例的編寫和維護(hù),從而專注于業(yè)務(wù)代碼功能的研發(fā);與此同時(shí)通過對(duì)線上真實(shí)流量的仿真模擬回放達(dá)到對(duì)系統(tǒng)更加全面的業(yè)務(wù)回歸,幫助測(cè)試同學(xué)提升測(cè)試的充分度,增加測(cè)試回歸的信心指數(shù)。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多