費(fèi)春勇 韓嘯虎 浦鴻皓 張成振
[摘? ? 要] 企業(yè)級(jí)ERP系統(tǒng)的日常巡檢是保證系統(tǒng)良好運(yùn)行的重要組成部分,隨著近年來(lái)國(guó)民經(jīng)濟(jì)發(fā)展迅速,企業(yè)迅猛發(fā)展,相應(yīng)ERP系統(tǒng)數(shù)量、功能模塊增加,系統(tǒng)的穩(wěn)定運(yùn)行對(duì)企業(yè)的日常運(yùn)營(yíng)、業(yè)務(wù)開(kāi)展有著至關(guān)重要的作用?,F(xiàn)有人工檢測(cè)頁(yè)面已逐步顯示弊端,本文基于快速、高效、可靠為出發(fā)點(diǎn),以中國(guó)電信集中MSS ERP系統(tǒng)為例,提出一種以自動(dòng)化方式進(jìn)行系統(tǒng)頁(yè)面例行檢查的方案,以保證系統(tǒng)穩(wěn)定運(yùn)營(yíng)。
[關(guān)鍵詞] 自動(dòng)化框架;運(yùn)維;巡檢;自動(dòng)化測(cè)試
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 21. 034
[中圖分類(lèi)號(hào)] F270.7? ? [文獻(xiàn)標(biāo)識(shí)碼]? A? ? ? [文章編號(hào)]? 1673 - 0194(2018)21- 0088- 02
1? ? ? 背景及存在問(wèn)題
1.1? ?當(dāng)前人工運(yùn)維檢測(cè)頁(yè)面可用性存在的問(wèn)題
近年來(lái),國(guó)內(nèi)企業(yè)ERP系統(tǒng)實(shí)施覆蓋率顯著增長(zhǎng),但是相應(yīng)的運(yùn)維服務(wù)能力卻沒(méi)有及時(shí)跟上,經(jīng)常爆發(fā)服務(wù)癱瘓、不穩(wěn)定事件,帶來(lái)嚴(yán)重影響,引起使用企業(yè)高度關(guān)注。另外,從行業(yè)看,微博癱瘓?jiān)斐?.5億用戶措手不及、雙十一購(gòu)物節(jié)淘寶購(gòu)物車(chē)無(wú)法付款造成上億經(jīng)濟(jì)損失,皆反映出當(dāng)前大部分企業(yè)的運(yùn)維能力在系統(tǒng)功能、頁(yè)面檢查及響應(yīng)機(jī)制上存在嚴(yán)重不足。
1.1.1? ?人工運(yùn)維巡檢耗時(shí)久
目前對(duì)于界面檢測(cè)主要是通過(guò)運(yùn)維人員手工進(jìn)行點(diǎn)擊查看,在系統(tǒng)數(shù)量及功能模塊不多的情況下進(jìn)行人工檢測(cè)耗時(shí)正常,能夠保證及時(shí)完成。隨業(yè)務(wù)發(fā)展需求,ERP系統(tǒng)模塊增多,人工檢測(cè)弊端逐步凸顯。以一個(gè)系統(tǒng)有200個(gè)末端功能模塊,一個(gè)熟練的運(yùn)維人員一分鐘可以點(diǎn)擊五個(gè)功能模塊計(jì)算,檢測(cè)一次需要四十分鐘,而中國(guó)電信集中MSS ERP系統(tǒng)有20個(gè)以上的子系統(tǒng),純粹全部靠人工檢測(cè)一遍單個(gè)運(yùn)維人員一整天也無(wú)法完成,但此類(lèi)檢測(cè)每天需要多次進(jìn)行。因此,單次檢測(cè)耗時(shí)久的人工檢測(cè)模式已經(jīng)滿足不了爆發(fā)式增長(zhǎng)的系統(tǒng)數(shù)量、功能模塊多樣化的系統(tǒng)設(shè)計(jì)、檢測(cè)頻度逐步提高的業(yè)務(wù)需求,使得人工手動(dòng)運(yùn)維檢測(cè)工作越發(fā)困難。
1.1.2? ?準(zhǔn)確性難以得到保障
實(shí)際工作過(guò)程中,需要檢測(cè)的功能模塊較多,人工檢測(cè)存在缺、漏、忘現(xiàn)象,頁(yè)面打開(kāi)響應(yīng)速度憑個(gè)人直覺(jué)判斷,無(wú)法有效判定系統(tǒng)目前所處狀態(tài),存在安全風(fēng)險(xiǎn),企業(yè)無(wú)法及時(shí)獲取系統(tǒng)運(yùn)行狀態(tài)。
1.2? ?運(yùn)維巡檢工作規(guī)范性要求
為了驗(yàn)證電信MSS ERP系統(tǒng)主頁(yè)面及其下級(jí)頁(yè)面的可用性及做好相關(guān)巡檢記錄,需對(duì)每個(gè)打開(kāi)的頁(yè)面截圖,并把截圖保存到指定目錄中。截圖命名以獲取截圖時(shí)的系統(tǒng)時(shí)間命名,以便確認(rèn)具體時(shí)間點(diǎn)PC端頁(yè)面和移動(dòng)端是否能使用,且保留和相關(guān)系統(tǒng)所屬責(zé)任團(tuán)隊(duì)處理人員的溝通記錄,確保責(zé)任分工及故障及時(shí)處理。
2? ? ? 自動(dòng)化運(yùn)維巡檢解決方案
2.1? ?系統(tǒng)整體架構(gòu)
針對(duì)目前耗時(shí)長(zhǎng),人工檢測(cè)時(shí)存在漏、忘、誤操作等現(xiàn)狀。自動(dòng)化運(yùn)維巡檢能夠通過(guò)模擬人工操作,實(shí)現(xiàn)網(wǎng)頁(yè)打開(kāi)、系統(tǒng)登錄、功能模塊點(diǎn)擊、頁(yè)面截圖、圖片保存、文件命名、檢測(cè)日志保存、通過(guò)手機(jī)的PC端模擬器檢測(cè)移動(dòng)端應(yīng)用、檢測(cè)結(jié)果郵件發(fā)送等,可以極大地節(jié)省測(cè)試時(shí)間與人工成本,同時(shí)自動(dòng)化操作可以保障檢測(cè)結(jié)果的準(zhǔn)確性,實(shí)現(xiàn)無(wú)人值守,提升工作效率。
2.2? ?功能設(shè)計(jì)及介紹
自動(dòng)化測(cè)試模塊包括自動(dòng)化測(cè)試框架層、引擎驅(qū)動(dòng)層、輸出層,實(shí)現(xiàn)無(wú)人值守,自動(dòng)截圖,即時(shí)告警輸出從而滿足工作需要。
2.2.1? ?自動(dòng)化測(cè)試框架層
Robot Framework是一款用Python編寫(xiě)的自動(dòng)化測(cè)試框架??梢詼y(cè)試多種類(lèi)型的客戶端或者接口,還可以結(jié)合其他的庫(kù)文件實(shí)現(xiàn)更豐富的功能,具有良好的可擴(kuò)展性。尤其是結(jié)合Selenium2Library庫(kù)文件,可以模擬人的行為打開(kāi)瀏覽器,然后通過(guò)指令依次點(diǎn)擊頁(yè)面及所屬下級(jí)頁(yè)面,實(shí)現(xiàn)對(duì)每個(gè)頁(yè)面的檢測(cè)。
Robot Framework和Selenium2Library都是開(kāi)源軟件,官網(wǎng)上很容易就能獲取到安裝包,下載安裝、配置后就可以完成自動(dòng)化測(cè)試框架的搭建。自動(dòng)化測(cè)試框架能夠?yàn)樽詣?dòng)化測(cè)試提供最基本的工作環(huán)境,能夠管理整個(gè)自動(dòng)化測(cè)試的執(zhí)行、維護(hù)。
2.2.2? ?引擎驅(qū)動(dòng)層功能
RIDE是Robot Framework IDE的縮寫(xiě),是開(kāi)源的圖形界面編輯器,通過(guò)RIDE集中編輯和管理自動(dòng)化測(cè)試所需的代碼,自動(dòng)生成測(cè)試腳本,后結(jié)合系統(tǒng)的任務(wù)計(jì)劃,實(shí)現(xiàn)定期自動(dòng)化測(cè)試從而實(shí)現(xiàn)無(wú)人值守的測(cè)試工作。
2.2.3? ?輸出層功能
自動(dòng)化腳本執(zhí)行結(jié)束后,Robot Framework會(huì)生成output.xml、log.html 和 report.html三個(gè)文件并截屏:output.xml記錄的測(cè)試結(jié)果是XML文件,由于XML文件不夠直觀,通過(guò)編寫(xiě)腳本讀取XML文件后處理生成特定的測(cè)試報(bào)告;log.html會(huì)記錄 Robot Framework 運(yùn)行的每一步操作,主要用于查看自動(dòng)化測(cè)試腳本執(zhí)行的過(guò)程;report.html為測(cè)試報(bào)告,匯總展示測(cè)試用例的運(yùn)行情況;截屏是測(cè)試執(zhí)行過(guò)程中進(jìn)行截屏并且以圖片方式保存,圖片格式可以是jpg和pnp。
3? ? ? 自動(dòng)化運(yùn)維巡檢實(shí)施成效
2018年自動(dòng)化運(yùn)維巡檢實(shí)施以來(lái),中國(guó)電信集中MSS ERP系統(tǒng)的PC頁(yè)面端檢測(cè)時(shí)間從原來(lái)的單次1個(gè)人工作1天都不能完成縮短為單次約17分鐘完成,移動(dòng)端單次檢測(cè)時(shí)間縮短為約6分鐘完成,并通過(guò)自動(dòng)化有效保證了檢測(cè)的完整性及準(zhǔn)確性,極大地減少了檢查耗時(shí),讓運(yùn)維資源可以釋放投入到更有需要的工作上,為將來(lái)的“智慧運(yùn)維”打下基礎(chǔ)。