呂振山
【摘要】 移動(dòng)聯(lián)調(diào)測(cè)試工作引入自動(dòng)化勢(shì)在必行,本文主要從業(yè)務(wù)角度和自動(dòng)化框架實(shí)現(xiàn)的角度進(jìn)行分析,論證聯(lián)調(diào)測(cè)試工 作引入自動(dòng)化的可行性,從業(yè)務(wù)角度主要分析業(yè)務(wù)實(shí)現(xiàn)自動(dòng)化的要素,以及自動(dòng)化的結(jié)果判定標(biāo)準(zhǔn),從自動(dòng)化角度主要分析自動(dòng)化的框架搭建,以及自動(dòng)化的實(shí)現(xiàn)流程,并從工作效率及人力成本的角度對(duì)自動(dòng)化實(shí)現(xiàn)前后進(jìn)行總結(jié)。
【關(guān)鍵字】 自動(dòng)化 聯(lián)調(diào)測(cè)試 充值業(yè)務(wù) JENKINS
Abstract:System interaction test of CMCC is trend, The article analysis form business and automation frame to prove practicability of automation, From business analysis key element of realizing automation and judging standard, From automation analysis frame build and work flow, Then sum up work efficiency and human cost of realizing automation.
Keywords: Automation System Interaction Test Recharge Business JENKEINS
一、引言
隨著互聯(lián)網(wǎng)的快速發(fā)展,移動(dòng)充值業(yè)務(wù)也與互聯(lián)網(wǎng)緊密結(jié)合,與多家互聯(lián)網(wǎng)公司合作,不斷增加網(wǎng)站和APP的充值接口,隨著業(yè)務(wù)的不斷擴(kuò)展,與31省的聯(lián)調(diào)測(cè)試工作變得越來越繁多, 而這些聯(lián)調(diào)測(cè)試工作都是重復(fù)的,因此聯(lián)調(diào)測(cè)試工作引入自動(dòng)化變得越來越必要。
移動(dòng)運(yùn)營商的聯(lián)調(diào)測(cè)試,即是指31省的移動(dòng)業(yè)務(wù)支撐系統(tǒng)與中心的業(yè)務(wù)支撐系統(tǒng),以及第三方系統(tǒng)實(shí)現(xiàn)對(duì)接的測(cè)試,由于涉及的系統(tǒng)多且跨區(qū)域,使聯(lián)調(diào)測(cè)試的難度系數(shù)大大增加,31省及第三方系統(tǒng)的資源投入及自身系統(tǒng)的穩(wěn)定性,存在太多不確定因素,作為中心的業(yè)務(wù)支撐系統(tǒng)與之對(duì)接測(cè)試,必然會(huì)造成一定的資源浪費(fèi),因此聯(lián)調(diào)測(cè)試引入自動(dòng)化即可解決資源浪費(fèi),又可以提升聯(lián)調(diào)測(cè)試的效率。
二、移動(dòng)業(yè)務(wù)實(shí)現(xiàn)自動(dòng)化分析
根據(jù)移動(dòng)運(yùn)營商現(xiàn)有業(yè)務(wù),需要聯(lián)調(diào)測(cè)試的業(yè)務(wù)按照處理方式可以劃分為實(shí)時(shí)交易和對(duì)賬兩大類型的業(yè)務(wù),實(shí)時(shí)交易屬于消息類型的業(yè)務(wù),對(duì)賬屬于文件類型的業(yè)務(wù),兩種業(yè)務(wù)存在質(zhì)的差別,因此自動(dòng)化的實(shí)現(xiàn)框架會(huì)存在一定差別。
在討論自動(dòng)化實(shí)現(xiàn)框架之前,首先對(duì)當(dāng)前聯(lián)調(diào)測(cè)試各方的角色進(jìn)行一個(gè)簡單的介紹,中心系統(tǒng)統(tǒng)一進(jìn)行實(shí)時(shí)消息的轉(zhuǎn)發(fā)及數(shù)據(jù)信息的管理,省側(cè)即可做為實(shí)時(shí)交易業(yè)務(wù)的發(fā)起方,也可做為實(shí)時(shí)交易的結(jié)束方,而第三方系統(tǒng)只能做為實(shí)時(shí)交易業(yè)務(wù)的發(fā)起方,對(duì)賬類的業(yè)務(wù)也是由中心系統(tǒng)實(shí)現(xiàn)三方對(duì)賬,對(duì)賬的差異下發(fā)給相應(yīng)的系統(tǒng),中心系統(tǒng)做為一個(gè)核心與各方系統(tǒng)進(jìn)行對(duì)接及聯(lián)調(diào)測(cè)試,聯(lián)調(diào)測(cè)試由中心系統(tǒng)的聯(lián)調(diào)人員組織,并進(jìn)行聯(lián)調(diào)結(jié)果的記錄和聯(lián)調(diào)狀態(tài)的通報(bào)。
實(shí)時(shí)交易類型的業(yè)務(wù),主要是通過實(shí)時(shí)消息進(jìn)行充值和查詢等業(yè)務(wù)的操作,當(dāng)前的聯(lián)調(diào)方式主要是通過聯(lián)調(diào)人員手動(dòng),由省側(cè)或者是第三方系統(tǒng)發(fā)起,通過中心系統(tǒng)進(jìn)行轉(zhuǎn)發(fā),各方聯(lián)調(diào)人員通過對(duì)業(yè)務(wù)的處理結(jié)果判斷聯(lián)調(diào)用例是否通過。
分析實(shí)時(shí)交易類業(yè)務(wù)的聯(lián)調(diào)特點(diǎn),同一用例31省各測(cè)一遍,需要重復(fù)測(cè)試31遍,自動(dòng)化恰巧是解決重復(fù)測(cè)試人力浪費(fèi)的技術(shù),中心側(cè)實(shí)現(xiàn)自動(dòng)化后,整個(gè)測(cè)試過程可變?yōu)椋阂弧l(fā)起方根據(jù)測(cè)試用例批量發(fā)起交易,測(cè)試用例對(duì)應(yīng)的關(guān)鍵信息整理為表格,發(fā)給中心側(cè)。二、中心側(cè)根據(jù)表格關(guān)鍵信息作為自動(dòng)化的輸入,進(jìn)行自動(dòng)化檢測(cè),判斷中心側(cè)處理結(jié)果。這樣中心側(cè)聯(lián)調(diào)人員只需要檢查自動(dòng)化的執(zhí)行結(jié)果,就可以判斷聯(lián)調(diào)是否成功,既節(jié)省人力又提高了效率。
對(duì)于實(shí)時(shí)交易關(guān)鍵信息的提取,發(fā)起方需要提取的關(guān)鍵信息是:每個(gè)用例執(zhí)行的交易流水號(hào),作為中心側(cè)自動(dòng)化執(zhí)行的輸入。
中心側(cè)自動(dòng)化輸出信息包括:自動(dòng)化執(zhí)行結(jié)果和省份信息,以判斷是哪個(gè)省份用例的執(zhí)行結(jié)果。
自動(dòng)化如何判斷執(zhí)行結(jié)果是否通過,不同的業(yè)務(wù)流程,有不同的判斷標(biāo)準(zhǔn),下面就以移動(dòng)商城充值流程為例來探討如何精確的判斷執(zhí)行結(jié)果。首先看一下移動(dòng)商城的充值流程:
根據(jù)流程圖,中心系統(tǒng)與其它系統(tǒng)交互點(diǎn)有6個(gè):
1、中心系統(tǒng)收到移動(dòng)商城發(fā)起的充值請(qǐng)求
2、中心系統(tǒng)給移動(dòng)商城回應(yīng)確認(rèn)收到充值請(qǐng)求
3、中心系統(tǒng)發(fā)送充值請(qǐng)求到省系統(tǒng)
4、省系統(tǒng)返回充值結(jié)果給中心系統(tǒng)
5、中心系統(tǒng)返回充值結(jié)果給移動(dòng)商城
6、移動(dòng)商城給中心系統(tǒng)回應(yīng)確認(rèn)收到充值結(jié)果
因此對(duì)于中心側(cè)判斷充值是否成功需要從這6個(gè)方面進(jìn)行信息提取,作為判斷依據(jù):
1、自動(dòng)化檢查移動(dòng)商城回應(yīng)的報(bào)文,若報(bào)文存在則此判斷通過
2、自動(dòng)化檢查省返回給中心系統(tǒng)的充值結(jié)果報(bào)文,報(bào)文頭的“應(yīng)答/錯(cuò)誤代碼”和“應(yīng)答/錯(cuò)誤描述”以及報(bào)文體“二級(jí)應(yīng)答碼”和“應(yīng)答描述”,這些字段值與預(yù)設(shè)的值進(jìn)行比對(duì),若一致則此判斷通過
3、自動(dòng)化檢查中心系統(tǒng)返回給移動(dòng)商城的充值結(jié)果報(bào)文體的“交易結(jié)果代碼”和“交易結(jié)果描述”,這些字段與預(yù)設(shè)的值進(jìn)行比對(duì),若一致則此判斷通過
4、自動(dòng)化檢查移動(dòng)商城收到充值結(jié)果的回應(yīng)報(bào)文,若報(bào)文存在則此判斷通過
依據(jù)這個(gè)判斷標(biāo)準(zhǔn)可以精確的判斷用例是否執(zhí)行通過,聯(lián)調(diào)人員只需要查看自動(dòng)化的執(zhí)行結(jié)果和對(duì)應(yīng)的省份,就可以確定用例是否執(zhí)行通過,其它流程依據(jù)這個(gè)思路亦可實(shí)現(xiàn)自動(dòng)化。
對(duì)賬屬于文件類型的業(yè)務(wù),對(duì)賬的基本流程相對(duì)實(shí)時(shí)交易比較簡單,仍以移動(dòng)商城的對(duì)賬為例,首先簡單介紹一下對(duì)賬流程,省對(duì)賬文件和移動(dòng)商城對(duì)賬文件每日定時(shí)自動(dòng)上傳到中心系統(tǒng)平臺(tái),由中心系統(tǒng)平臺(tái)進(jìn)行對(duì)賬,對(duì)平的記錄和有差異的記錄生成文件發(fā)給移動(dòng)商城,并生成差異文件下發(fā)給省,對(duì)于自動(dòng)化結(jié)果的輸出省份和文件下發(fā)信息,執(zhí)行自動(dòng)化后聯(lián)調(diào)人員可以清晰的看到各省文件下發(fā)情況,此時(shí)自動(dòng)化不能直接判定對(duì)賬用例是否通過,仍需要線下與各方確認(rèn)文件的處理結(jié)果后,才可以判定用例的執(zhí)行結(jié)果,此處實(shí)現(xiàn)自動(dòng)化的目的優(yōu)化聯(lián)調(diào)人員重復(fù)的查看日志和相應(yīng)表格,提升工作的效率。
每個(gè)聯(lián)調(diào)過程都會(huì)有新版本的提交,由于服務(wù)器比較多,環(huán)境部署也是一個(gè)繁瑣重復(fù)的過程,公司的版本管理流程規(guī)范化為實(shí)現(xiàn)環(huán)境部署自動(dòng)化創(chuàng)造了優(yōu)越的條件,對(duì)于環(huán)境部署的構(gòu)思,也可以引入自動(dòng)化,大大減少人工參與的程度,減小了版本升級(jí)過程人工誤操作的風(fēng)險(xiǎn),各服務(wù)器同時(shí)并行版本升級(jí),也大大減少了版本升級(jí)花費(fèi)的時(shí)間。
三、自動(dòng)化框架分析
接下來討論一下自動(dòng)化框架的搭建,現(xiàn)在流行的自動(dòng)化構(gòu)建工具比較多,根據(jù)不同的需求,可以選擇適合自己的構(gòu)建工具,聯(lián)調(diào)自動(dòng)化的引入,計(jì)劃采用JENKINS構(gòu)建自動(dòng)化框架。
如下圖2是對(duì)自動(dòng)化框架的整體構(gòu)思。
JENKINS構(gòu)建自動(dòng)化涉及的主要插件有Robot Framework Plug-in、Email Extension Plug-in、Token Macro Plug-in、FTP Publisher Plug-in、SSH Plug-in,對(duì)于所需的JENKINS插件及其安裝,這里就不再贅述,這里主要討論一下自動(dòng)化的整理架構(gòu),自動(dòng)化的處理過程是一個(gè)端到端的過程,在整個(gè)過程中不需要人為干預(yù),整個(gè)自動(dòng)化實(shí)現(xiàn)流程如下:
1、發(fā)布版本歸檔到SVN,自動(dòng)化腳本實(shí)現(xiàn)自動(dòng)獲取版本,放入指定目錄;
2、自動(dòng)化自動(dòng)執(zhí)行版本編譯,編譯完成后自動(dòng)進(jìn)行版本部署,在版本部署過程中出現(xiàn)任何錯(cuò)誤,都會(huì)進(jìn)行版本回退;
3、版本部署成功后自動(dòng)執(zhí)行用例腳本;
4、執(zhí)行完所有腳本后自動(dòng)生成自動(dòng)化執(zhí)行結(jié)果報(bào)告,并郵件發(fā)送給相關(guān)人員。
四、總結(jié)
從業(yè)務(wù)角度分析及自動(dòng)化實(shí)現(xiàn)框架分析,聯(lián)調(diào)工作具備引入自動(dòng)化的條件,且可以實(shí)現(xiàn),實(shí)現(xiàn)自動(dòng)化后,整個(gè)聯(lián)調(diào)過程中心側(cè)聯(lián)調(diào)人員,人工干預(yù)的程度就非常的小,由于參與聯(lián)調(diào)的機(jī)構(gòu)較多,無法端到端的實(shí)現(xiàn)自動(dòng)化,因此只能從自身的工作內(nèi)容考慮,來進(jìn)行優(yōu)化。根據(jù)當(dāng)前人工聯(lián)調(diào)的效率的估算,實(shí)現(xiàn)自動(dòng)化后,每次聯(lián)調(diào)只需要投入1-2人就可以高效的支撐31省的聯(lián)調(diào)工作,減少人力的投入,節(jié)省人力成本,在此也體現(xiàn)了自動(dòng)化解決重復(fù)工作問題的優(yōu)越性,在工作過程中需要不斷的總結(jié),不斷的過程優(yōu)化,以提升工作的效率。
參 考 文 獻(xiàn)
[1]統(tǒng)一支付平臺(tái)與移動(dòng)商城系統(tǒng)接口技術(shù)方案-V1.0.7,2014年
[2] Jenkins用戶手冊(cè)V1.0,2014年
[3]劉華婷.基于Jenkins 快速搭建持續(xù)集成環(huán)境[DB/OL].(2011-11-24)
[4]陶鎮(zhèn)威.基于Jenkins的持續(xù)集成研究與應(yīng)用[D];華南理工大學(xué);2012年
[5] Jenkins: The Definitive Guide,John Ferguson Smart,2011年7月
[6] teve McConnell.Daily build and Smoke Test[J].IEEE Software, 1996, 13(4):144-143