掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
我負責的業(yè)務是發(fā)票中臺,數(shù)據(jù)流簡化后如下圖所示:

發(fā)票中臺對調(diào)用方提供RPC服務,底層有讀寫MySQL、同步ES、消息隊列、異步任務等服務,上游是用戶和訂單,需要賬號、增票資質(zhì)、訂單等物料;下游是財務,推送申請單給財務開具發(fā)票等。發(fā)票的接口自動化在多年前是寫了的,用Java+TestNG+RPC本地化了一套框架來實現(xiàn),因為人員離職和業(yè)務變更,這套自動化到我手上的時候,已經(jīng)不能用了,本地化的接口自動化項目也無法做數(shù)據(jù)度量,只有接口測試平臺寫的自動化用例才會被統(tǒng)計到。
我給自己定的績效是在Q2完成95條自動化用例,按照一個標準化的自動化項目來實現(xiàn)發(fā)票的接口自動化,結(jié)合測試環(huán)境、測試物料、流水線、精準分析,打造一個個人的穩(wěn)定的沉淀物,無論是晉升還是求職,都能拿來講點故事。
前置步驟:初始化數(shù)據(jù),將訂單發(fā)票類型更新為3。預設變量:提供參數(shù)化數(shù)據(jù)。執(zhí)行步驟:調(diào)用修改訂單發(fā)票類型接口,將發(fā)票類型3改為2,入?yún)⒁妙A設變量。財務接口:依賴測試物料無法滿足,通過Mock來返回模板數(shù)據(jù),讓接口繼續(xù)往下走?;A(chǔ)斷言:接口響應狀態(tài)碼200。業(yè)務斷言:調(diào)用訂單列表查詢接口,用JSONPath提取響應中的發(fā)票類型,斷言已經(jīng)改成了2。
數(shù)據(jù)準備:通過物料工具造訂單數(shù)據(jù),寫入MySQL數(shù)據(jù)庫中。
更新MySQL數(shù)據(jù):更新訂單的部分字段數(shù)據(jù),觸發(fā)binlake,將數(shù)據(jù)同步至ES,因為提交開票申請是讀取的ES數(shù)據(jù);從預設變量獲取orderId。
提交開票申請:從ES讀取訂單數(shù)據(jù),提交開票申請;從預設變量獲取orderId和userId。
查詢申請單號:根據(jù)訂單號查詢申請單號;從預設變量獲取orderId和userId。用JSONPath提取申請單號,存入動態(tài)變量中。推送財務:把申請單號推送給財務;從動態(tài)變量獲取applyId。
①看代碼:
在Java工程里面的Controller/Provider找到所有接口,分析可以用來做自動化的接口,設計自動化用例進行覆蓋。
②代碼覆蓋率:
借助于jacoco,在執(zhí)行自動化用例后,把代碼覆蓋率跑出來,分析沒覆蓋的代碼,補充更多「正常/異常/邊界」的自動化用例。也就是精準測試。
每天早上8點,定時任務執(zhí)行用例集;發(fā)送郵件,抄送測試組、開發(fā)組、領(lǐng)導,讓測試、開發(fā)和領(lǐng)導都知道自動化建設情況;如果出現(xiàn)問題,一定要在當天解決,并郵件回復問題原因;確保當天的自動化用例結(jié)果都是正確的;第二天接著繼續(xù)巡檢。
在持續(xù)集成中,引入自動化用例環(huán)節(jié),把自動化用例跑通作為提測卡點,不通過可以駁回。
定性來看:「結(jié)合測試環(huán)境、測試物料、自動化、流水線、精準測試,完成了一個能對環(huán)境和業(yè)務進行穩(wěn)定性巡檢,能對研發(fā)提測進行質(zhì)量門禁,能對應用進行代碼覆蓋率分析的接口自動化項目?!苟縼砜矗?/p>
這個Q主要完成了核心流程和重要接口的自動化用例,還需要持續(xù)補充場景用例和異常/邊界的自動化用例。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流