一、引言
隨著銀行數(shù)字化轉(zhuǎn)型的不斷深入,對信貸領(lǐng)域的測試工作提出了更高的標準和要求,如何在高效完成測試任務(wù)的同時確保測試質(zhì)量就成了一個亟待解決的難題。有實踐研究表明,在具體測試過程中往往大量的時間精力都是耗費在測試數(shù)據(jù)準備工作上面,能否盡量減少這部分耗費,將更多的時間精力專注于業(yè)務(wù)邏輯等方面更好地去提升測試質(zhì)量?本文基于此進行了探索,提出了一種長鏈路業(yè)務(wù)測試數(shù)據(jù)快速構(gòu)造方法,并將該方法應(yīng)用于信貸領(lǐng)域多個場景,取得了良好成效。
二、背景與挑戰(zhàn)
當前信貸領(lǐng)域長鏈路業(yè)務(wù)測試主要有三方面特點:一是業(yè)務(wù)鏈路長,隨著信貸業(yè)務(wù)不斷迭代,業(yè)務(wù)場景一般涉及多個業(yè)務(wù)模塊,整體業(yè)務(wù)流程長;二是信貸業(yè)務(wù)復雜度高,業(yè)務(wù)形態(tài)的不同會有不同的觸發(fā)方式,業(yè)務(wù)邏輯的不同也會產(chǎn)生不同的組合方式;三是信貸業(yè)務(wù)依賴性強,業(yè)務(wù)前后環(huán)節(jié)間的依賴性強,后一環(huán)節(jié)的輸入是前一環(huán)節(jié)的輸出。
一般來講,測試數(shù)據(jù)準備有“造”數(shù)和“找”數(shù)兩種方式。“造”數(shù)主要是通過某種方式模擬實際業(yè)務(wù)的運行邏輯生成測試數(shù)據(jù),一種方法是通過GUI構(gòu)造測試數(shù)據(jù),這是最常見、最可靠的方式,直接通過客戶端或界面完成數(shù)據(jù)構(gòu)造,缺點是成本高、效率低;另一種方法是通過數(shù)據(jù)庫構(gòu)造數(shù)據(jù),缺點是直接修改數(shù)據(jù)庫容易產(chǎn)生臟數(shù)據(jù),全量導入數(shù)據(jù)有評估和操作成本。“找”數(shù)是通過某種方式去查找已經(jīng)存在的測試數(shù)據(jù),一種方法是通過數(shù)據(jù)庫去查找可用數(shù)據(jù),缺點是數(shù)據(jù)共用導致數(shù)據(jù)屬性頻繁變化,會相互影響;另一種方法是通過找項目組或者是相關(guān)系統(tǒng)的對應(yīng)開發(fā)人員配合提供,缺點是需要熟悉各自模塊,溝通成本高。這兩種方式無疑都能夠滿足基本測試數(shù)據(jù)準備需要,但往往都伴隨著“造”數(shù)難和“找”數(shù)難的問題,而對于信貸業(yè)務(wù)來說,其長鏈路的特點使得“造”數(shù)更難和“找”數(shù)更難,如何快速構(gòu)造測試數(shù)據(jù)就成為了影響測試進度及質(zhì)效的關(guān)鍵。
三、方法探索
在對當前信貸長鏈路業(yè)務(wù)測試數(shù)據(jù)準備過程中的相關(guān)現(xiàn)狀進行分析梳理并總結(jié)歸納后,我們發(fā)現(xiàn)主要有以下特點:
信貸長鏈路數(shù)據(jù)準備一般涉及范圍廣,完成一次流程往往要跨多個系統(tǒng)或者是模塊,對上下游系統(tǒng)間的合作需要高度的默契;
數(shù)據(jù)準備需要熟悉業(yè)務(wù)流程、熟悉業(yè)務(wù)接口和實現(xiàn)邏輯,對數(shù)據(jù)準備人員較高要求;
大部分情況下數(shù)據(jù)構(gòu)造流程伴隨著業(yè)務(wù)狀態(tài)的變化,數(shù)據(jù)狀態(tài)是不可逆的,只能按需不斷構(gòu)造新的數(shù)據(jù);
鏈路越長整體成本越高;
數(shù)據(jù)間依賴性強,往往需要做數(shù)據(jù)的串聯(lián),例如下一個請求的入?yún)⑿枰弦粋€請求的返回值;
找誰造數(shù)、造什么樣的數(shù),時間往往都消耗在溝通上。
基于以上痛點和難點,并結(jié)合對測試數(shù)據(jù)實際準備過程中相關(guān)問題的探索和研究形成了長鏈路業(yè)務(wù)測試數(shù)據(jù)快速構(gòu)造方法論,主要包括場景梳理、功能編排、數(shù)據(jù)構(gòu)造、結(jié)果反饋以及維護保鮮等幾部分,總體流程如下圖所示:
1、場景梳理
場景梳理主要是指在熟悉長鏈路業(yè)務(wù)流程、接口和實現(xiàn)邏輯的基礎(chǔ)上,按照待造數(shù)長鏈路業(yè)務(wù)場景流程梳理出涉及到哪些模塊、功能、對應(yīng)接口以及實現(xiàn)邏輯,大致如下圖所示:
場景梳理的方法總結(jié)起來有三種:一是與對應(yīng)開發(fā)人員溝通確認;二是將整個場景涉及到功能、接口等信息記錄下來再進行篩選,例如Jmeter錄制、抓包等;三是通過F12從前臺界面逐一分析每個功能涉及到的接口相關(guān)信息。在實際操作過程中,一般需要結(jié)合三種方法使用會起到較好的作用。
2、功能編排
功能編排是將無序的功能編排成有序的場景,主要采用了JSONPath技術(shù)來進行處理。其優(yōu)點是:語法靈活簡單、使用簡便、無需一層一層往下找,特別是對于比較復雜的JSON結(jié)構(gòu)數(shù)據(jù)效果更加明顯,在各種主流的編程語言中均有對應(yīng)的庫支持。其語法大致介紹如下:
簡單來講,功能編排的核心主要是通過JSONpath語法完成參數(shù)動態(tài)替換,如下圖所示:
3、數(shù)據(jù)構(gòu)造及結(jié)果反饋
數(shù)據(jù)構(gòu)造主要包括明確輸入、輸出格式等信息,并按照完成組合好的場景完成數(shù)據(jù)構(gòu)造,而結(jié)果反饋是將構(gòu)造完成的數(shù)據(jù)按照格式反饋給用戶。
4、維護保鮮機制
維護保鮮機制是為了解決在首次建立長鏈路業(yè)務(wù)數(shù)據(jù)構(gòu)造流程后,中間由于某些原因?qū)е麻L鏈路場景發(fā)生了變化(例如功能和接口有改變)而數(shù)據(jù)構(gòu)造失效不可用,在通過維護保鮮后能夠及時響應(yīng)變化,以確保數(shù)據(jù)構(gòu)造能夠隨時可用。在檢查反饋數(shù)據(jù)結(jié)果是否符合預(yù)期后,如不符合則進入維護保鮮環(huán)節(jié)及時進行處置,待處置成功后繼續(xù)循環(huán)構(gòu)造流程。處置措施一般包括以下三方面:
1.若判斷是場景發(fā)生變化,需重新評估;
2.若判斷是場景中功能發(fā)生變化,需定位到具體功能,重新梳理更新場景;
3.其他問題:例如環(huán)境不可用等,需進一步排查解決。
最后:在我的V:atstudy-js,可以免費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學習教程免費分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.