幕思城>電商行情>跨境電商>跨境運(yùn)營(yíng)>這半年我做交易鏈路自動(dòng)化回歸的那些事兒...

    這半年我做交易鏈路自動(dòng)化回歸的那些事兒...

    2023-01-23|09:20|發(fā)布在分類(lèi) / 跨境運(yùn)營(yíng)| 閱讀:82

    閑魚(yú)交易鏈路作為應(yīng)用中關(guān)鍵鏈路的一環(huán),具有多業(yè)務(wù)、多狀態(tài)、多操作的特征。以訂單操作舉例:不同的訂單類(lèi)型、訂單狀態(tài)包含不同的操作;不同操作下觸發(fā)的業(yè)務(wù)行為、領(lǐng)域服務(wù)的交互行為也各不相同。

    問(wèn)題

    交易鏈路質(zhì)量穩(wěn)定性保障的測(cè)試難點(diǎn)包括:

    1. 1. 改動(dòng)點(diǎn)涉及的業(yè)務(wù)范圍廣、評(píng)估難度高:交易承接著10余種復(fù)雜多樣的業(yè)務(wù)場(chǎng)景和交易模式,一次改動(dòng)往往涉及所有業(yè)務(wù)場(chǎng)景的驗(yàn)證。更糟糕的是,一次看似不起眼的線(xiàn)上開(kāi)關(guān)值變更,往往依賴(lài)業(yè)務(wù)經(jīng)驗(yàn)來(lái)評(píng)估其影響范圍,給業(yè)務(wù)驗(yàn)證和變更帶來(lái)巨大風(fēng)險(xiǎn)。
    2. 2. 新老鏈路需要雙重保障:鏈路上的數(shù)據(jù)結(jié)構(gòu)變動(dòng),需要保障新老版本下調(diào)用鏈路切換的問(wèn)題。
    3. 3. 交易鏈路上訂單標(biāo)的正確性:一筆交易訂單主訂單上就有超過(guò)100個(gè)標(biāo);這些訂單標(biāo)以及根據(jù)這些標(biāo)衍生出的業(yè)務(wù)場(chǎng)景如何快速校驗(yàn)?

    帶著這些問(wèn)題,閑魚(yú)交易鏈路自動(dòng)化回歸采用接口+鏈路的驗(yàn)證,在應(yīng)用交付的全生命周期內(nèi),在發(fā)布流水線(xiàn)中不斷運(yùn)行自動(dòng)化測(cè)試,保障全鏈路,把控發(fā)布質(zhì)量,成為應(yīng)用真正上線(xiàn)的最后一道防線(xiàn)。

    方案說(shuō)明

    通過(guò)接口流量錄制回放、定海神針場(chǎng)景鏈路驗(yàn)證的方式,形成自動(dòng)化測(cè)試任務(wù)集,在交易核心應(yīng)用發(fā)布過(guò)程中,新增發(fā)布流水線(xiàn)的測(cè)試驗(yàn)證節(jié)點(diǎn),當(dāng)應(yīng)用完成安全生產(chǎn)環(huán)境部署后,自動(dòng)化觸發(fā)執(zhí)行關(guān)聯(lián)的測(cè)試任務(wù)。測(cè)試任務(wù)執(zhí)行后,驗(yàn)證當(dāng)前的自動(dòng)化結(jié)果情況、應(yīng)用核心測(cè)試集校驗(yàn)情況。根據(jù)應(yīng)用預(yù)先配置的卡點(diǎn)閥值來(lái)判斷卡點(diǎn)校驗(yàn)是否通過(guò)。如果卡點(diǎn)校驗(yàn)通過(guò),則可以繼續(xù)進(jìn)行后續(xù)的發(fā)布流程。如果卡點(diǎn)校驗(yàn)未通過(guò)(即自動(dòng)化驗(yàn)證失?。枰⒓炊ㄎ蛔詣?dòng)化失敗的具體原因,避免將變更問(wèn)題帶到線(xiàn)上,以及發(fā)布流程的長(zhǎng)時(shí)間阻塞?;诖?,來(lái)看看閑魚(yú)交易下的自動(dòng)化體系建設(shè)思路:

    自動(dòng)化測(cè)試集設(shè)計(jì)

    編寫(xiě)并選擇測(cè)試用例是實(shí)現(xiàn)自動(dòng)化驗(yàn)證的核心。合理的用例設(shè)計(jì),既保證自動(dòng)化的效益和可靠性,又便于測(cè)試集的維護(hù)和擴(kuò)展。對(duì)于業(yè)務(wù)場(chǎng)景多、操作多樣化的閑魚(yú)交易域,在自動(dòng)化測(cè)試集設(shè)計(jì)上,需要確認(rèn)的問(wèn)題是:

    1. 1. 想要實(shí)現(xiàn)自動(dòng)化驗(yàn)證最大產(chǎn)出,在開(kāi)始實(shí)施時(shí),應(yīng)該選擇哪些用例加入自動(dòng)化測(cè)試任務(wù)集?
    2. 2. 對(duì)于預(yù)先定義的一組或多組輸入、輸出數(shù)據(jù),自動(dòng)化結(jié)果具備可預(yù)測(cè)性嗎?

    基于以上的考量,進(jìn)行接口鏈路的編排,并借助接口測(cè)試工具來(lái)實(shí)現(xiàn)交易場(chǎng)景的自動(dòng)化覆蓋。借助集團(tuán)的定海神針平臺(tái),進(jìn)行鏈路自動(dòng)化用例編寫(xiě),包括以下兩個(gè)方面:

    數(shù)據(jù)預(yù)置

    在用例編寫(xiě)前,需要準(zhǔn)備有效的測(cè)試數(shù)據(jù),使用例能夠真正地執(zhí)行起來(lái)。不同類(lèi)型的商品數(shù)據(jù)、買(mǎi)/賣(mài)家用戶(hù)身份及賬號(hào)數(shù)據(jù)、交易資金等都作為生成交易訂單的預(yù)置數(shù)據(jù),需要和用例編寫(xiě)分開(kāi),不僅減少用例執(zhí)行成本,更減少用例之間的耦合度。此方案設(shè)計(jì)中采用閑魚(yú)測(cè)試設(shè)計(jì)的測(cè)試數(shù)據(jù)構(gòu)造平臺(tái)進(jìn)行數(shù)據(jù)生成和獲取。

    用例編寫(xiě)

    準(zhǔn)備好測(cè)試數(shù)據(jù)后,在編寫(xiě)場(chǎng)景用例時(shí)需要注意:

    • 合理分解:拆分復(fù)雜交易場(chǎng)景和業(yè)務(wù)邏輯,區(qū)分原子場(chǎng)景,避免測(cè)試失敗時(shí)阻斷其他功能用例的執(zhí)行,快速得到測(cè)試結(jié)果,提高用例執(zhí)行穩(wěn)定性。
    • 簡(jiǎn)化用例:根據(jù)交易鏈路節(jié)點(diǎn)可復(fù)用的性質(zhì)進(jìn)行用例簡(jiǎn)化。例如在場(chǎng)景分解后,驗(yàn)證發(fā)貨場(chǎng)景時(shí),不需要重復(fù)構(gòu)造訂單數(shù)據(jù),復(fù)用上一節(jié)點(diǎn)的訂單即可。復(fù)雜的執(zhí)行和校驗(yàn)可能影響發(fā)布節(jié)奏,給理解、調(diào)試和維護(hù)帶來(lái)更大的成本和挑戰(zhàn)。
    • 多層校驗(yàn):設(shè)計(jì)合理的斷言,避免由于用例原因造成的隨機(jī)失敗。校驗(yàn)規(guī)則覆蓋接口契約、訂單數(shù)據(jù)(訂單標(biāo)/ 訂單狀態(tài)/ 訂單操作)、業(yè)務(wù)規(guī)則各層次。并學(xué)會(huì)從線(xiàn)上問(wèn)題里找反思,補(bǔ)充校驗(yàn)點(diǎn)。
    • 體現(xiàn)業(yè)務(wù)特性:了解用戶(hù)和應(yīng)用的交互,在用例編寫(xiě)時(shí)體現(xiàn)用戶(hù)使用系統(tǒng)的實(shí)際端到端的歷程,而不只是自動(dòng)驗(yàn)收標(biāo)準(zhǔn)的集合,片面強(qiáng)調(diào)覆蓋率。在交易場(chǎng)景用例中覆蓋領(lǐng)域交互的驗(yàn)證,增加對(duì)交易狀態(tài)流轉(zhuǎn)后,買(mǎi)/賣(mài)家系統(tǒng)異步消息通知卡片的校驗(yàn)、資金流向校驗(yàn)等。

    下圖是以閑魚(yú)內(nèi)基礎(chǔ)c2c交易為例,進(jìn)行業(yè)務(wù)測(cè)試用例拆分:

    發(fā)布流水線(xiàn)卡點(diǎn)

    完成自動(dòng)化測(cè)試用例沉淀后,將接口、鏈路質(zhì)量驗(yàn)證能力與應(yīng)用發(fā)布關(guān)聯(lián)。基于變更管控,完成自動(dòng)化回歸驗(yàn)證、發(fā)布卡點(diǎn)。利用發(fā)布流水線(xiàn)將開(kāi)發(fā)、測(cè)試、發(fā)布、驗(yàn)證等關(guān)鍵活動(dòng)串接在一起,沒(méi)有間斷和跳過(guò),流暢優(yōu)雅。首先簡(jiǎn)單介紹:


    集團(tuán)內(nèi)開(kāi)放Aone平臺(tái),提供完整的產(chǎn)品全生命周期管理和協(xié)作能力。在應(yīng)用發(fā)布內(nèi),Aone整合了產(chǎn)品部署發(fā)布、持續(xù)集成服務(wù)和測(cè)試執(zhí)行實(shí)驗(yàn)室,升級(jí)流水線(xiàn)能力,關(guān)聯(lián)研發(fā)流程中的各個(gè)階段,實(shí)現(xiàn)了自動(dòng)化的構(gòu)建、部署、測(cè)試與發(fā)布,確保讓代碼能夠快速、安全的部署到產(chǎn)品生產(chǎn)環(huán)境中,提升整個(gè)研發(fā)體系的效率。

    依賴(lài)Aone發(fā)布流水線(xiàn)能力,可以在A(yíng)one發(fā)布流程中平穩(wěn)地支持測(cè)試校驗(yàn),自動(dòng)觸發(fā)和運(yùn)行測(cè)試任務(wù):在交易核心應(yīng)用變更代碼部署完成后,自動(dòng)執(zhí)行指定的測(cè)試任務(wù)校驗(yàn)測(cè)試,更新用例回歸結(jié)果并自動(dòng)決策研發(fā)流程的執(zhí)行,直觀(guān)體現(xiàn)質(zhì)量信息。在自動(dòng)化驗(yàn)證失敗時(shí)阻斷發(fā)布,進(jìn)行100%通過(guò)率強(qiáng)卡點(diǎn),即卡點(diǎn)校驗(yàn)項(xiàng)未通過(guò)時(shí),無(wú)法繼續(xù)進(jìn)行后續(xù)的發(fā)布流程,若想繼續(xù)需進(jìn)行特殊審批。

    總結(jié)及展望

    目前交易鏈路自動(dòng)化回歸已經(jīng)覆蓋了交易內(nèi)核心應(yīng)用的接口質(zhì)量驗(yàn)證,同時(shí)覆蓋了基礎(chǔ)C2C業(yè)務(wù)下場(chǎng)景鏈路質(zhì)量驗(yàn)證能力?;A(chǔ)C2C交易回歸驗(yàn)證由原先的手工耗時(shí)半小時(shí)、頻繁賬號(hào)切換和點(diǎn)擊操作,縮短至一分鐘內(nèi)自動(dòng)完成,極大減少手工驗(yàn)證的重復(fù)性,提供更優(yōu)的質(zhì)量保障能力和執(zhí)行效率。本著沒(méi)有適當(dāng)?shù)臏y(cè)試策略,不給予自動(dòng)化測(cè)試的基本原則,閑魚(yú)交易域內(nèi)的自動(dòng)化體系建設(shè),是建立在基建完善的基礎(chǔ)上,比如解決了數(shù)據(jù)構(gòu)造問(wèn)題、應(yīng)用環(huán)境隔離、發(fā)布流水線(xiàn)引擎的基建統(tǒng)一等,進(jìn)而助推質(zhì)量保障、降低發(fā)布風(fēng)險(xiǎn)。后續(xù)我們將持續(xù)推進(jìn)基建,沉淀更多核心業(yè)務(wù)場(chǎng)景下的自動(dòng)化測(cè)試任務(wù)集,最終實(shí)現(xiàn)向用戶(hù)持續(xù)高效地交付價(jià)值。

    這個(gè)問(wèn)題還有疑問(wèn)的話(huà),可以加幕.思.城火星老師免費(fèi)咨詢(xún),微.信號(hào)是為: msc496。

    難題沒(méi)解決?加我微信給你講!【僅限淘寶賣(mài)家交流運(yùn)營(yíng)知識(shí),非賣(mài)家不要加我哈】
    >

    推薦閱讀:

    拼多多刷關(guān)注會(huì)有影響沒(méi)?刷關(guān)注方法是什么?

    請(qǐng)查收!淘寶客口碑傭金結(jié)算規(guī)則

    個(gè)人辦理pos機(jī)違法嗎?如何選擇好的pos機(jī)?

    更多資訊請(qǐng)關(guān)注幕 思 城。

    發(fā)表評(píng)論

    別默默看了 登錄\ 注冊(cè) 一起參與討論!

      微信掃碼回復(fù)「666