周云梅
摘? ?要:隨著消費金融業(yè)務(wù)不斷增加,需要調(diào)用大量第三方服務(wù)來核查用戶資質(zhì),目前國內(nèi)在這方面仍是短板。文章采用自動化測試平臺與第三方平臺之間搭建MOCK平臺,對第三方數(shù)據(jù)源進行模擬測試,解決了現(xiàn)有技術(shù)中存在的一些不足。
關(guān)鍵詞:MOCK平臺模擬數(shù)據(jù)源測試;第三方數(shù)據(jù)源;方法
隨著互聯(lián)網(wǎng)技術(shù)在消費金融領(lǐng)域中的應(yīng)用,其高效、便捷、普惠的優(yōu)勢,使得消費金融個貸業(yè)務(wù)呈現(xiàn)渠道多樣化、客戶群體覆蓋廣、審批快捷高效的新特征。在當(dāng)前消費金融業(yè)務(wù)量不斷提升的背景下,迫切需要依托第三方服務(wù)來快速準確核查用戶資質(zhì),最大限度避免信息不對稱問題,客觀、準確地為客戶畫像,揭示隱性風(fēng)險和潛在風(fēng)險,實現(xiàn)對虛假信息、欺詐行為的準確識別和實時預(yù)警。
1? ? 國內(nèi)第三方數(shù)據(jù)源測試存在問題
(1)第三方服務(wù)方提供的測試數(shù)據(jù)比較簡單且環(huán)境不穩(wěn)定,經(jīng)常出現(xiàn)超時等異常情況,同時提供的測試數(shù)據(jù)也不能完全滿足測試需求。
(2)部分第三方服務(wù)方無測試環(huán)境,只能提供生產(chǎn)環(huán)境,該環(huán)境只要調(diào)用成功,就會收取相應(yīng)的費用。
(3)無法滿足前端測試人員需要配置特殊情況的測試數(shù)據(jù),一筆申請請求覆蓋多個第三方服務(wù)。
(4)無法實現(xiàn)自動化測試的需求。
2? ? 第三方數(shù)據(jù)源測試方法探索
針對上述問題,可在自動化測試平臺與第三方平臺之間搭建MOCK平臺,對第三方數(shù)據(jù)源進行模擬測試,確保數(shù)據(jù)源穩(wěn)定性,避免超時等異常情況,大幅提升測試效率和質(zhì)量。
2.1? 主要優(yōu)點
(1)統(tǒng)一維護和管理第三方數(shù)據(jù)源,可以保證數(shù)據(jù)源的穩(wěn)定性,避免超時等異常情況,保證測試的快速高效;同時將第三方數(shù)據(jù)源的數(shù)據(jù)保存在MOCK平臺,只進行一次數(shù)據(jù)獲取,測試的時候直接在MOCK平臺讀取數(shù)據(jù),不需要重復(fù)付出第三方測試費用。(2)可支持多線程、高并發(fā),第三方數(shù)據(jù)源與自動化測試有機結(jié)合,解決了一筆申請請求覆蓋多個第三方服務(wù)的自動測試問題。(3)前端測試人員可以根據(jù)需要配置特殊情況的測試,拓展方便、可移植性高。
2.2? 具體方法
基于MOCK平臺的第三方數(shù)據(jù)源模擬測試流程主要有5個步驟,如圖1所示。
(1)在自動化測試平臺與第三方平臺之間搭建MOCK平臺。MOCK平臺包括用戶配置模塊、自定義服務(wù)配置模塊、管理數(shù)據(jù)源規(guī)則模塊、刪除數(shù)據(jù)源規(guī)則模塊、批量導(dǎo)入規(guī)則模塊和批量導(dǎo)出規(guī)則模塊。
用戶配置模塊用于配置系統(tǒng)用戶的賬號和密碼,便于管理登錄MOCK平臺系統(tǒng)的用戶。
自定義服務(wù)配置模塊用于管理和配置第三方服務(wù)ID和所屬系統(tǒng)名。
管理數(shù)據(jù)源規(guī)則模塊用于新增規(guī)則、修改規(guī)則以及第三方服務(wù)的響應(yīng)結(jié)果。
刪除數(shù)據(jù)源規(guī)則模塊用于刪除指定的第三方服務(wù)下的所有規(guī)則。
批量導(dǎo)入規(guī)則模塊用于導(dǎo)入指定的規(guī)則到指定的第三方服務(wù)。
批量導(dǎo)出規(guī)則模塊用于導(dǎo)出指定的第三方服務(wù)下的規(guī)則。
(2)MOCK平臺獲取第三方平臺數(shù)據(jù)報文,并將第三方平臺數(shù)據(jù)報文存到REDIS服務(wù)器,MOCK平臺將用戶配置的服務(wù)信息及規(guī)則匹配信息存儲至REDIS服務(wù)器。
根據(jù)第三方數(shù)據(jù)源的接口文檔,解析接口文檔中表格,生成字段名加每個字段的枚舉值范圍;根據(jù)字段枚舉值范圍,生成第三方數(shù)據(jù)源所有報文;通過HTTP服務(wù)自動批量或單筆提交第三方數(shù)據(jù)源報文、配置數(shù)據(jù)源服務(wù)名、測試環(huán)境、匹配規(guī)則、閥值到MOCK平臺,并存儲第三方平臺數(shù)據(jù)等內(nèi)容到REDIS服務(wù)器,以便測試過程中使用。
聯(lián)調(diào)測試中通過關(guān)鍵字分析自動抓取第三方數(shù)據(jù)源的日志文件,將日志中map格式報文轉(zhuǎn)成jsno格式;通過HTTP服務(wù)自動批量或單筆提交第三方數(shù)據(jù)源報文、配置數(shù)據(jù)源服務(wù)名、測試環(huán)境、匹配規(guī)則、閥值到MOCK平臺,并存儲第三方平臺數(shù)據(jù)等內(nèi)容到REDIS服務(wù)器,以便測試過程中使用。
手工編輯第三方數(shù)據(jù)源異常報文,用于測試異常報文的情況;通過HTTP服務(wù)自動批量或單筆提交第三方數(shù)據(jù)源報文、配置數(shù)據(jù)源服務(wù)名、測試環(huán)境、匹配規(guī)則、閥值到MOCK平臺,并存儲第三方平臺數(shù)據(jù)等內(nèi)容到REDIS服務(wù)器,以便測試過程中使用。
(3)自動化測試平臺測試時,根據(jù)規(guī)則匹配,匹配用戶配置的規(guī)則,直接調(diào)用MOCK平臺存儲的數(shù)據(jù),返回調(diào)用結(jié)果給自動化測試平臺;規(guī)則支持模式匹配、精確匹配兩種;返回報文的消息體為json格式,其中的值支持$符變量引用,可引用輸入變量中的內(nèi)容,也可以產(chǎn)生當(dāng)前時間$timestamp或產(chǎn)生序列號$serialNo等。
用戶發(fā)起執(zhí)行自動化腳本指令,調(diào)用自動化平臺根據(jù)第三方數(shù)據(jù)源的接口文檔自動生成MOCK平臺數(shù)據(jù)和期望結(jié)果。自動化平臺調(diào)用MOCK平臺,根據(jù)用戶指定的配置內(nèi)容自動配置第三方的模擬報文到MOCK平臺,并生效。配置數(shù)據(jù)源服務(wù)名,服務(wù)包括反欺詐規(guī)則(同盾、白騎士、騰訊、百融)、運營商規(guī)則(安迅、集奧、天翼)以及綜合服務(wù)。配置測試環(huán)境、入?yún)⒁?guī)則、出參規(guī)則、閥值等。
(4)自動化測試平臺根據(jù)MOCK平臺返回的第三方平臺數(shù)據(jù)報文,給出通過或拒絕的結(jié)果。
一筆請求調(diào)用多個第三方服務(wù)方,串行精確匹配上MOCK平臺的第一個服務(wù)方規(guī)則,直接返回MOCK平臺存儲的第一個數(shù)據(jù)源報文給測試系統(tǒng);測試系統(tǒng)根據(jù)返回報文,決定通過或拒絕的結(jié)果;如果通過,再進行第二個服務(wù)方規(guī)則的匹配,如果匹配好,返回報文,測試系統(tǒng)根據(jù)返回報文,決定通過或拒絕的結(jié)果;如果拒絕,直接不調(diào)用第三方服務(wù)方;循環(huán)執(zhí)行上述過程直至多個第三方服務(wù)方均得出結(jié)果。
(5)自動化測試平臺根據(jù)測試系統(tǒng)返回的結(jié)果比對測試結(jié)果的正確性。自動化平臺可以錄制并保存測試結(jié)果,也可以直接自動比對返回的報文內(nèi)容和數(shù)據(jù)庫相應(yīng)的字段。所有測試用例執(zhí)行完畢后,發(fā)送測試報告到指定的郵箱,刪除MOCK平臺的測試規(guī)則。