凌 赟 鳳德金
(廣西民族大學(xué)軟件工程系,廣西 南寧530006)
在政府網(wǎng)站績效評估指標(biāo)體系中,影響政府績效的指標(biāo)有網(wǎng)站規(guī)范、展現(xiàn)布局、地址鏈接、信息更新情況等,而其中一些可以通過自動化的方式進行測評。本系統(tǒng)擬對政府網(wǎng)站測評績效評估指標(biāo)中的地址鏈接、展現(xiàn)布局、網(wǎng)站可用性的指標(biāo)采用自動化方式完成測評。
通過分析政府網(wǎng)站績效評估指標(biāo)體系,可歸納出系統(tǒng)應(yīng)該實現(xiàn)如下功能需求:
1.1 測評首頁可用性。測評標(biāo)準(zhǔn)為監(jiān)測網(wǎng)站一周,每天間隔性訪問20 次以上,計算首頁打不開的次數(shù)占全部監(jiān)測次數(shù)的比例,超過(含)15 秒網(wǎng)站仍打不開的次數(shù)比例累計超過(含)5%即判定為不合格網(wǎng)站。
1.2 測評火狐、IE 等主流瀏覽器兼容性。實現(xiàn)獲取網(wǎng)站在火狐、IE、谷歌瀏覽器運行下的首頁截圖。
1.3 測評鏈接可用性。測評標(biāo)準(zhǔn)為每發(fā)現(xiàn)一個首頁上不能正常訪問的鏈接,扣一分。
Selenium 作為專用的Web 應(yīng)用程序自動化測試工具,基于其易擴展、兼容性強、方便易用等特點,本系統(tǒng)采用該框架完成系統(tǒng)設(shè)計與實現(xiàn)。Selenium 歷經(jīng)三個版本的發(fā)展,目前最新版本是Selenium 3,由各瀏覽器廠商為Selenium 提供的WebDriver,使Selenium 具有更高的自動化效率和成功率。
WebDriver 的功能非常強大,其擁有的功能特性為本系統(tǒng)的實現(xiàn)提供了良好的技術(shù)支持,如下所列:
2.1 支持多種瀏覽器,例如Mozilla FireFox、Google Chrome、Internet Explorer 等,為本系統(tǒng)實現(xiàn)瀏覽器兼容性的功能提供了良好的支持。
2.2 WebDriver 不僅提供了定位頁面元素的方法,還可以獲取網(wǎng)頁源代碼,通過它可以爬取頁面數(shù)據(jù)。本系統(tǒng)在實現(xiàn)測評鏈接可用性功能時需要獲取首頁上的所有鏈接,所以在這個部分我們通過WebDriver 提供的定位元素的方法findElements(By.cssSelector("a"))實現(xiàn)爬取首頁上的所有鏈接。
2.3 WebDriver 支持頁面截圖,它提供了TakesScreenshot 接口來實現(xiàn)網(wǎng)頁的截屏。
2.4 WebDriver 支持JS(javascript)的注入,在本系統(tǒng)編寫實現(xiàn)Window.performance 和停止加載網(wǎng)頁自動化測試腳本的過程中需要執(zhí)行JS 語句,在WebDriver 中執(zhí)行JS 要先將WebDriver的實例強制轉(zhuǎn)換成JavascriptExecutor 類型,第二步則可以注入JS 代碼。本系統(tǒng)中利用(JavascriptExecutor)driver).executeScript("window.stop()實現(xiàn)了停止加載網(wǎng)頁的功能。
系統(tǒng)的另一個關(guān)鍵功能是采集網(wǎng)頁相關(guān)性能數(shù)據(jù),Window.performance 是W3C(World Wide Web Consortium)性能小組推出的一套性能API 標(biāo)準(zhǔn),提供了獲取與瀏覽器性能有關(guān)的時間數(shù)據(jù)功能。
系統(tǒng)通過Apache Echarts 實現(xiàn)各項網(wǎng)站的性能指標(biāo)數(shù)據(jù)的可視化。
本系統(tǒng)基于分層體系結(jié)構(gòu)風(fēng)格,根據(jù)需求將系統(tǒng)劃分為數(shù)據(jù)可視化層,控制器層,數(shù)據(jù)采集層以及數(shù)據(jù)分析層。其總體架構(gòu)如圖1 所示。
系統(tǒng)架構(gòu)圖
下面將對系統(tǒng)各個層次的職責(zé)進行闡述。
控制器層有兩個作用,一是從數(shù)據(jù)可視化層接收用戶輸入的信息,然后將請求參數(shù)傳遞給數(shù)據(jù)采集層里對應(yīng)的子模塊,二是將最終的測評結(jié)果返回給數(shù)據(jù)可視化層對應(yīng)的視圖。
數(shù)據(jù)采集層是整個測評系統(tǒng)的基礎(chǔ),它的職責(zé)是對網(wǎng)站測評所需數(shù)據(jù)進行采集,在本系統(tǒng)中所采集的數(shù)據(jù)主要是網(wǎng)頁性能數(shù)據(jù)。數(shù)據(jù)采集層需要實現(xiàn)數(shù)據(jù)采集腳本的功能。在該層中,需要采集網(wǎng)頁的請求狀態(tài),網(wǎng)頁的加載時間、首屏?xí)r間以及在火狐、IE、chrome 瀏覽器下的首頁快照。實現(xiàn)該模塊的基礎(chǔ)是Selenium 框架,依賴此框架提供的WebDriver 接口,啟動瀏覽器,在獲得WebDriver 實例后,才能進行下一步的數(shù)據(jù)采集操作。
數(shù)據(jù)分析層主要實現(xiàn)數(shù)據(jù)過濾和數(shù)據(jù)計算功能。主要流程是對采集到的數(shù)據(jù)進行無效數(shù)據(jù)的過濾,得到需要向用戶展示的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)進行再加工,對數(shù)據(jù)進行一些比較、計算,最終得到測評結(jié)果,為數(shù)據(jù)可視化層做好數(shù)據(jù)準(zhǔn)備。
數(shù)據(jù)的過濾目的是將與測評結(jié)果無關(guān)聯(lián)的數(shù)據(jù)進行過濾刪除,獲取測評指標(biāo)所需要的數(shù)據(jù),本系統(tǒng)主要是對采集到的網(wǎng)頁性能數(shù)據(jù)進行過濾。數(shù)據(jù)計算是進一步將過濾得到的數(shù)據(jù)進行再加工。本系統(tǒng)需要展示測評結(jié)果,測評結(jié)果的產(chǎn)生需要對網(wǎng)頁性能數(shù)據(jù)進行計算占比、加減運算以及求平均值;并參照測評指標(biāo),得到最終的測評結(jié)果。
數(shù)據(jù)可視化層主要負(fù)責(zé)視圖的顯示,該模塊集成SpringBoot Thymeleaf 模板完成視圖的設(shè)計與展示,結(jié)合Echarts 實現(xiàn)數(shù)據(jù)可視化。
系統(tǒng)的測試內(nèi)容主要是功能測試,采用黑盒測試方法,接下來對部分測試用例的設(shè)計進行說明,闡述系統(tǒng)的測試工作。
鏈接可用性測試完成驗證鏈接可用性測評結(jié)果是否與測評指標(biāo)一致。通過在用戶界面中選擇測評鏈接可用性,輸入待測評的網(wǎng)址,確認(rèn)后返回不可打開鏈接數(shù),并展示依據(jù)績效測評指標(biāo)做出的評分。
首屏?xí)r間測試完成驗證首屏?xí)r間測評結(jié)果是否與測評指標(biāo)一致。通過在用戶界面中選擇測評首屏?xí)r間,輸入待測評的網(wǎng)址,確認(rèn)后返回首屏在Firefox、Google 以及IE 的打開時間,并展示依據(jù)績效測評指標(biāo)做出的評分。
通過以上兩項測試,測評鏈接可用性和測評首屏?xí)r間實際結(jié)果均與預(yù)期結(jié)果一致,這兩個功能測試通過。
本文面向政府門戶網(wǎng)站,提出基于Selenium 框架的自動化測評平臺,并成功實踐了對政府網(wǎng)站的自動測評。根據(jù)需求對系統(tǒng)進行設(shè)計,并基于Selenium 搭建自動化測試平臺,能夠通過模擬瀏覽器來進行自動化采集相關(guān)性能數(shù)據(jù),達到最終的測評目的,系統(tǒng)運行效果良好,提高了測評工作的效率和質(zhì)量。
作者要感謝張綱強老師和編輯的寶貴意見和建議,這些意見和建議極大地幫助改善了論文的質(zhì)量。這項工作得到了來自廣西民族大學(xué)軟件工程重點實驗室(2020-18XJSY-03)、國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201810608005)、廣西高等教育本科教學(xué)改革工程項目(2019JGB174)以及廣西民族大學(xué)特色專業(yè)及實驗實訓(xùn)教學(xué)基地一體化建設(shè)項目的支持。