幕思城>電商行情>跨境電商>跨境運營>這半年我做交易鏈路自動化回歸的那些事兒...

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

    2023-01-23|09:20|發(fā)布在分類 / 跨境運營| 閱讀:82

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

    問題

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

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

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

    方案說明

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

    自動化測試集設(shè)計

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

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

    基于以上的考量,進行接口鏈路的編排,并借助接口測試工具來實現(xiàn)交易場景的自動化覆蓋。借助集團的定海神針平臺,進行鏈路自動化用例編寫,包括以下兩個方面:

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

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

    用例編寫

    準備好測試數(shù)據(jù)后,在編寫場景用例時需要注意:

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

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

    發(fā)布流水線卡點

    完成自動化測試用例沉淀后,將接口、鏈路質(zhì)量驗證能力與應(yīng)用發(fā)布關(guān)聯(lián)?;谧兏芸兀瓿勺詣踊貧w驗證、發(fā)布卡點。利用發(fā)布流水線將開發(fā)、測試、發(fā)布、驗證等關(guān)鍵活動串接在一起,沒有間斷和跳過,流暢優(yōu)雅。首先簡單介紹:


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

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

    總結(jié)及展望

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

    這個問題還有疑問的話,可以加幕.思.城火星老師免費咨詢,微.信號是為: msc496。

    難題沒解決?加我微信給你講!【僅限淘寶賣家交流運營知識,非賣家不要加我哈】
    >

    推薦閱讀:

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

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

    個人辦理pos機違法嗎?如何選擇好的pos機?

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

    發(fā)表評論

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

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