汪 明1,馬思碩2,趙宇亮1,朱洪斌1
?。?.國家電網公司信息通信分公司,北京 100761;2.國網北京市電力公司 信息通信分公司,北京 100071)
摘 要: 為了提升運維工作的精益化水平,國家電網公司的信息系統(tǒng)運維工作分為業(yè)務應用運維和系統(tǒng)平臺運維,目前采用人工巡檢的方式對業(yè)務應用進行每日定期巡檢,但效率低,容易產生漏檢。本文提出一套基于Selenium的應用巡檢自動化系統(tǒng),通過與云計算和移動互聯(lián)網結合,對Web方式的業(yè)務應用實現(xiàn)了自動化巡檢,極大提升了每日巡檢的效率,提高了巡檢工作的可靠性。
關鍵詞: Selenium;自動化應用巡檢;云計算;移動互聯(lián)網
1 信息系統(tǒng)應用巡檢背景
隨著國家電網公司信息化建設進程的不斷加快,國家電網公司的信息系統(tǒng)部署模式逐步由兩級部署轉變?yōu)榧胁渴鸹蛞患壊渴?,而運維模式也逐漸向一級運維模式轉變,信通公司承接的一級運維系統(tǒng)數(shù)量也越來越多,這對信息系統(tǒng)運維工作的精益化水平提出了更高的要求。目前信息系統(tǒng)運維工作已經分為業(yè)務應用運維和系統(tǒng)平臺運維兩大部分,而業(yè)務應用運維直接服務于用戶,其安全、可靠、穩(wěn)定的運行將為用戶帶來更加快捷、高效、優(yōu)質的服務。由于采用一級運維,業(yè)務應用的故障將直接影響大量用戶,具有影響范圍廣,運維難度大等特點。
信通公司采用了業(yè)務應用人工巡檢的方式,對一級運維信息系統(tǒng)進行每日多次巡檢,但是由于系統(tǒng)規(guī)模大、應用功能多,巡檢工作占用大量的人力資源和時間資源。每次巡檢都是大規(guī)模的重復性勞動,人工巡檢會因注意力下降等因素發(fā)生誤操作,造成巡檢結果的偏差。自動化的巡檢方式通過采用機器自動巡檢,提高了巡檢效率,節(jié)省了人力成本,并且通過預先設計的腳本,提高了巡檢的準確率。而結合云計算和移動互聯(lián)網的概念,通過搭建云,提高了系統(tǒng)的擴充性和穩(wěn)定性,采用移動端查看的功能,方便了巡檢人員第一時間了解系統(tǒng)應用的運行狀況。
2 信息系統(tǒng)應用巡檢技術現(xiàn)狀
目前國內外的信息系統(tǒng)應用巡檢主要采用的是定期檢查Web應用,檢測其各項功能是否正常,與Web應用測試的功能類似。而Web應用巡檢不關注Web應用測試中的功能測試、性能測試、兼容性測試以及安全性測試。因此,信息系統(tǒng)應用巡檢自動化工具可以借鑒Web應用測試的相關技術,將應用巡檢自動化系統(tǒng)的研究分成三部分內容:設計自動化巡檢工具,搭建自動化巡檢框架,生成自動化巡檢的測試腳本。
本文通過對以上三部分的研究、實現(xiàn)與具體應用,形成了基于Selenium的應用巡檢自動化系統(tǒng),實現(xiàn)了對Web應用的自動化巡檢,提高了巡檢效率和準確性,節(jié)省了成本。
3 應用巡檢自動化系統(tǒng)的實現(xiàn)方法
應用巡檢自動化系統(tǒng)能實現(xiàn)對Web應用的自動化巡檢,按照預先設計的腳本對Web應用進行逐項測試,最終形成測試報告,并發(fā)送到服務器。用戶可以采用登錄服務器,或者移動端登錄的方式進行讀取,由此提升了巡檢工作的效率。按照上述思路,本文從設計自動化巡檢工具、搭建自動化巡檢框架、生成腳本三方面對應用巡檢自動化系統(tǒng)進行了獨立開發(fā)和實現(xiàn)。
3.1 自動化巡檢工具Selenium
Selenium是一款用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE、Firefox、Chrome等。該工具的主要功能包括:測試瀏覽器端應用的兼容性、系統(tǒng)功能。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。Selenium 是ThoughtWorks公司專門為Web應用程序編寫的一個驗收測試工具。
Selenium主要的好處有以下兩點:
(1)通過編寫模仿用戶操作的 Selenium 測試腳本,可以從終端用戶的角度來測試應用程序。通過在不同瀏覽器中運行測試,更容易發(fā)現(xiàn)瀏覽器的不兼容性。
(2)Selenium的核心,也稱browser bot,是用JavaScript 編寫的。這使得測試腳本可以在受支持的瀏覽器中運行。browser bot負責執(zhí)行從測試腳本接收到的命令,測試腳本支持編程語言編寫。
鑒于以上特性,本研究采用Selenium自動化巡檢工具作為應用巡檢自動化工具的巡檢模塊。
3.2 自動化巡檢框架Robot Framework
自動化功能測試框架有利于編寫測試腳本和獲得測試報告。Robot Framework是一款python編寫的功能自動化測試框架,由Nokia Siemens Networks開發(fā)并提供支持。其具備良好的可擴展性,支持關鍵字驅動,可以同時測試多種類型的客戶端或者接口,可以進行分布式測試。主要用于輪次很多的驗收測試和驗收測試驅動開發(fā)。
本研究采用了Robot Framework作為應用巡檢自動化系統(tǒng)的框架,其優(yōu)良特性如表1。
3.3 生成腳本
目前國際上采用的測試腳本用例生成方法主要有Capture/Replay方法、HTML分析法、源代碼分析法以及User-Session法。每種方法各有優(yōu)缺點,而為了達到最高的腳本用例生成效率,借助Robot Framework的優(yōu)良特性,本研究采用了本文編輯的方式進行手動編寫。
以打開12306進行余票查詢功能為例,測試用例:“查詢2015年6月2日從北京到西安的火車余票”,具體的腳本如表2所示。
測試報告如圖1所示。
4 界面設計
為了提高系統(tǒng)的可用性,本文對系統(tǒng)界面進行了設計。本系統(tǒng)分為客戶端和服務器端,客戶端是用戶借助應用巡檢自動化系統(tǒng),按照預先編寫好的腳本進行巡檢測試,并按照配置路徑發(fā)送巡檢報告。服務器端可以按照特定的查詢條件進行巡檢報告查詢,通過對比一段時間的巡檢報告,可以對Web應用在一定時間段內的穩(wěn)定性進行分析,并預測未來可能出現(xiàn)的故障。
4.1 客戶端
在客戶端,用戶可以進行配置、巡檢、定時以及查看報告等操作,具體的界面如圖3~圖5所示。
4.2 服務器端
在服務器端,用戶可以按照系統(tǒng)名稱、報告提交人員所在的省份和城市、檢測功能點總數(shù)、通過檢測的功能點數(shù)目、通過率、報告提交時間、報告提交人員的姓名等關鍵字進行查詢。具體界面如圖6所示。
5 效益分析
當前的應用巡檢采用人工巡檢的方式,存在效率低下和不可靠的問題。以協(xié)同辦公應用巡檢為例,每天在上班前和下班后進行兩次應用巡檢。每次均需半個小時左右。由各個項目組現(xiàn)場巡檢形成報告,之后再由總部匯總。這樣很難避免人員疏忽造成的漏檢問題。而自動化應用巡檢系統(tǒng)從時效性和準確性兩方面大幅度提升了應用巡檢的效率和可靠性。
5.1 時效性分析
采用應用巡檢自動化系統(tǒng),對協(xié)同辦公系統(tǒng)進行巡檢,大概需要2 min左右,而且可以隨著機器性能的提升進一步縮減巡檢時間。與原來巡檢大概需要半小時左右相比,效率提升了15倍左右。
5.2 可靠性分析
采用應用巡檢自動化系統(tǒng),由于是使用機器按照腳本進行逐一巡檢,所以準確率能夠達到100%。
6 展望及結語
通過測試,現(xiàn)有的自動化應用巡檢系統(tǒng)已經能夠較好的實現(xiàn)自動化應用巡檢功能,而借助當前云計算和移動互聯(lián)網的相關技術,未來將在現(xiàn)有系統(tǒng)的基礎上在云計算平臺上進行重新架構,并開發(fā)移動端APP,方便巡檢人員遠端查看巡檢報告。通過與這兩項技術的深度結合,可以極大地拓展自動化應用巡檢系統(tǒng)的典型應用場景,方便將該系統(tǒng)推廣到更多網省公司,進一步提升巡檢工作的效率和可靠性。
參考文獻
[1]WIEGERS K, BEATTY J. Software Requirements[M]. 北京. 機械工業(yè)出版社,2013.
[2]SCHACH S R. Object-oriented and classical software engineering(Fifth Edition)[M]. 北京. 機械工業(yè)出版社,2006.
[3]LARMAN C. Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development(Fifth Edition)[M]. New York:Addison Wesley Professional,2006.
[4]SOMMERVILLE I.Software engineering(6th Edition),北京: 機械工業(yè)出版社,2003.