凌 赟 鳳德金
(廣西民族大學軟件工程系,廣西 南寧530006)
在政府網站績效評估指標體系中,影響政府績效的指標有網站規范、展現布局、地址鏈接、信息更新情況等,而其中一些可以通過自動化的方式進行測評。本系統擬對政府網站測評績效評估指標中的地址鏈接、展現布局、網站可用性的指標采用自動化方式完成測評。
通過分析政府網站績效評估指標體系,可歸納出系統應該實現如下功能需求:
1.1 測評首頁可用性。測評標準為監測網站一周,每天間隔性訪問20 次以上,計算首頁打不開的次數占全部監測次數的比例,超過(含)15 秒網站仍打不開的次數比例累計超過(含)5%即判定為不合格網站。
1.2 測評火狐、IE 等主流瀏覽器兼容性。實現獲取網站在火狐、IE、谷歌瀏覽器運行下的首頁截圖。
1.3 測評鏈接可用性。測評標準為每發現一個首頁上不能正常訪問的鏈接,扣一分。
Selenium 作為專用的Web 應用程序自動化測試工具,基于其易擴展、兼容性強、方便易用等特點,本系統采用該框架完成系統設計與實現。Selenium 歷經三個版本的發展,目前最新版本是Selenium 3,由各瀏覽器廠商為Selenium 提供的WebDriver,使Selenium 具有更高的自動化效率和成功率。
WebDriver 的功能非常強大,其擁有的功能特性為本系統的實現提供了良好的技術支持,如下所列:
2.1 支持多種瀏覽器,例如Mozilla FireFox、Google Chrome、Internet Explorer 等,為本系統實現瀏覽器兼容性的功能提供了良好的支持。
2.2 WebDriver 不僅提供了定位頁面元素的方法,還可以獲取網頁源代碼,通過它可以爬取頁面數據。本系統在實現測評鏈接可用性功能時需要獲取首頁上的所有鏈接,所以在這個部分我們通過WebDriver 提供的定位元素的方法findElements(By.cssSelector("a"))實現爬取首頁上的所有鏈接。
2.3 WebDriver 支持頁面截圖,它提供了TakesScreenshot 接口來實現網頁的截屏。
2.4 WebDriver 支持JS(javascript)的注入,在本系統編寫實現Window.performance 和停止加載網頁自動化測試腳本的過程中需要執行JS 語句,在WebDriver 中執行JS 要先將WebDriver的實例強制轉換成JavascriptExecutor 類型,第二步則可以注入JS 代碼。本系統中利用(JavascriptExecutor)driver).executeScript("window.stop()實現了停止加載網頁的功能。
系統的另一個關鍵功能是采集網頁相關性能數據,Window.performance 是W3C(World Wide Web Consortium)性能小組推出的一套性能API 標準,提供了獲取與瀏覽器性能有關的時間數據功能。
系統通過Apache Echarts 實現各項網站的性能指標數據的可視化。
本系統基于分層體系結構風格,根據需求將系統劃分為數據可視化層,控制器層,數據采集層以及數據分析層。其總體架構如圖1 所示。

系統架構圖
下面將對系統各個層次的職責進行闡述。
控制器層有兩個作用,一是從數據可視化層接收用戶輸入的信息,然后將請求參數傳遞給數據采集層里對應的子模塊,二是將最終的測評結果返回給數據可視化層對應的視圖。
數據采集層是整個測評系統的基礎,它的職責是對網站測評所需數據進行采集,在本系統中所采集的數據主要是網頁性能數據。數據采集層需要實現數據采集腳本的功能。在該層中,需要采集網頁的請求狀態,網頁的加載時間、首屏時間以及在火狐、IE、chrome 瀏覽器下的首頁快照。實現該模塊的基礎是Selenium 框架,依賴此框架提供的WebDriver 接口,啟動瀏覽器,在獲得WebDriver 實例后,才能進行下一步的數據采集操作。
數據分析層主要實現數據過濾和數據計算功能。主要流程是對采集到的數據進行無效數據的過濾,得到需要向用戶展示的數據,并根據這些數據進行再加工,對數據進行一些比較、計算,最終得到測評結果,為數據可視化層做好數據準備。
數據的過濾目的是將與測評結果無關聯的數據進行過濾刪除,獲取測評指標所需要的數據,本系統主要是對采集到的網頁性能數據進行過濾。數據計算是進一步將過濾得到的數據進行再加工。本系統需要展示測評結果,測評結果的產生需要對網頁性能數據進行計算占比、加減運算以及求平均值;并參照測評指標,得到最終的測評結果。
數據可視化層主要負責視圖的顯示,該模塊集成SpringBoot Thymeleaf 模板完成視圖的設計與展示,結合Echarts 實現數據可視化。
系統的測試內容主要是功能測試,采用黑盒測試方法,接下來對部分測試用例的設計進行說明,闡述系統的測試工作。
鏈接可用性測試完成驗證鏈接可用性測評結果是否與測評指標一致。通過在用戶界面中選擇測評鏈接可用性,輸入待測評的網址,確認后返回不可打開鏈接數,并展示依據績效測評指標做出的評分。
首屏時間測試完成驗證首屏時間測評結果是否與測評指標一致。通過在用戶界面中選擇測評首屏時間,輸入待測評的網址,確認后返回首屏在Firefox、Google 以及IE 的打開時間,并展示依據績效測評指標做出的評分。
通過以上兩項測試,測評鏈接可用性和測評首屏時間實際結果均與預期結果一致,這兩個功能測試通過。
本文面向政府門戶網站,提出基于Selenium 框架的自動化測評平臺,并成功實踐了對政府網站的自動測評。根據需求對系統進行設計,并基于Selenium 搭建自動化測試平臺,能夠通過模擬瀏覽器來進行自動化采集相關性能數據,達到最終的測評目的,系統運行效果良好,提高了測評工作的效率和質量。
作者要感謝張綱強老師和編輯的寶貴意見和建議,這些意見和建議極大地幫助改善了論文的質量。這項工作得到了來自廣西民族大學軟件工程重點實驗室(2020-18XJSY-03)、國家級大學生創新創業訓練計劃項目(201810608005)、廣西高等教育本科教學改革工程項目(2019JGB174)以及廣西民族大學特色專業及實驗實訓教學基地一體化建設項目的支持。