[關(guān)鍵詞]自動化;變電站網(wǎng)絡(luò)交換機(jī);網(wǎng)絡(luò)測試儀
隨著信息化、智能化技術(shù)在電網(wǎng)控制系統(tǒng)中的應(yīng)用,交換機(jī)逐漸成為控制系統(tǒng)鏈接和數(shù)據(jù)轉(zhuǎn)發(fā)的樞紐,得到廣泛應(yīng)用。變電站網(wǎng)絡(luò)交換機(jī)作為智能變電站通信網(wǎng)絡(luò)中的核心基礎(chǔ)設(shè)備,其穩(wěn)定性和性能至關(guān)重要。為滿足電網(wǎng)控制系統(tǒng)的不同站點(diǎn)需求,變電站網(wǎng)絡(luò)交換機(jī)在站點(diǎn)配置、端口類型、安全要求、吞吐量等方面均有差異,傳統(tǒng)的人工測試無法快速保質(zhì)地響應(yīng)變化,因此需要一種自動化手段來提高測試效率和保證測試準(zhǔn)確度。
國內(nèi)外對于變電站的繼電保護(hù)設(shè)備自動化和配電終端自動化的研究較多,對于承接數(shù)據(jù)轉(zhuǎn)發(fā)的變電站網(wǎng)絡(luò)交換機(jī)的自動化研究較少??紤]到變電站網(wǎng)絡(luò)交換機(jī)采用的配置下發(fā)主要是借助于網(wǎng)頁配置,且網(wǎng)頁配置的自動化已經(jīng)有了大量研究,文章期望設(shè)計出一套扎實可行的變電站網(wǎng)絡(luò)交換機(jī)(以下簡稱“交換機(jī)”)的自動化測試系統(tǒng)(以下簡稱“自動測試系統(tǒng)”)。
1 交換機(jī)自動測試系統(tǒng)框架
1.1 交換機(jī)測試原理
交換機(jī)手工測試流程如圖1所示。在交換機(jī)各型號批量發(fā)布、迭代輪次較多時,該測試方式存在人力消耗大、測試質(zhì)量不可保證等問題。
1.2 變電站交換機(jī)自動測試系統(tǒng)設(shè)計方案
交換機(jī)自動測試系統(tǒng)以架構(gòu)分層模型為設(shè)計思路,根據(jù)系統(tǒng)的各個功能劃分為不同的層次,包括數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層及用戶應(yīng)用層,如圖2所示。
用戶應(yīng)用層調(diào)用數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層的數(shù)據(jù),模擬交換機(jī)手工測試:配置測試環(huán)境、網(wǎng)頁配置交換機(jī)參數(shù)、構(gòu)造流量驗證交換機(jī)轉(zhuǎn)發(fā)情況,形成測試閉環(huán)腳本。所有腳本匯集成腳本序列,通過腳本調(diào)度邏輯,實現(xiàn)按需執(zhí)行。
1.2.1 數(shù)據(jù)訪問層
(1)環(huán)境配置文件。以ini格式存儲,管理待測交換機(jī)所屬類別,交換機(jī)產(chǎn)品型號、通信IP、用戶登錄等,以及網(wǎng)絡(luò)測試儀通信IP。
(2)測例文件。以Excel格式存儲,是一種介于文本測例和腳本測例之間的中間形態(tài),其將每個文本測例分解成不同類型的數(shù)據(jù),作為自動測試腳本的輸入。為便于靈活增刪數(shù)據(jù),以列表、字典的類型存儲,包括測例名稱、測例適用的交換機(jī)產(chǎn)品型號、測例執(zhí)行等級、測例步驟、預(yù)期結(jié)果、交換機(jī)網(wǎng)頁參數(shù)、網(wǎng)絡(luò)測試儀流量參數(shù)。這些數(shù)據(jù)組成一個中間形態(tài)的測例,多個測例組成測例文件。
(3)報告數(shù)據(jù)。以Word方式存儲,測試報告中的數(shù)據(jù)是在腳本執(zhí)行過程中提取的,主要提取測例名稱、測例步驟、預(yù)期結(jié)果、實際執(zhí)行的測例結(jié)果等。
1.2.2 業(yè)務(wù)邏輯層
(1)WEB接口庫?;赟elenium+WebDriver技術(shù),以Python語言為載體,調(diào)用瀏覽器接口,發(fā)送HTTP請求和接收響應(yīng),模擬網(wǎng)頁手工測試,包括網(wǎng)頁頁面切換、網(wǎng)頁參數(shù)下發(fā)、網(wǎng)頁參數(shù)選擇、網(wǎng)頁參數(shù)查詢等。根據(jù)場景驅(qū)動開發(fā)的思想將不同頁面操作封裝成不同模型庫,便于復(fù)用和修改。
(2)測試儀接口庫。集成第三方網(wǎng)絡(luò)測試儀接口,理解并利用其接口協(xié)議和數(shù)據(jù)庫,根據(jù)場景驅(qū)動開發(fā)(Scenarios-DrivenDevelopment)的思想,將交換機(jī)測試流量封裝成不同模型庫,包括不同流量配置模型、不同流量統(tǒng)計模型等,便于復(fù)用和修改。
1.2.3 用戶應(yīng)用層
支持自主開發(fā)腳本,支持不同腳本調(diào)度執(zhí)行模式,即按序執(zhí)行完所有待測用例→選擇單個或多個測例執(zhí)行→重復(fù)執(zhí)行測例。
2 自動測試系統(tǒng)實踐應(yīng)用
2.1 測例數(shù)據(jù)準(zhǔn)備
2.1.1 測例環(huán)境數(shù)據(jù)
如圖3所示,測例環(huán)境數(shù)據(jù)指的是自動測試系統(tǒng)中待測交換機(jī)、網(wǎng)絡(luò)測試儀、組網(wǎng)拓?fù)浼皽y例管理相關(guān)的數(shù)據(jù)。數(shù)據(jù)以Python可以直接讀取的數(shù)據(jù)類型存放在Excel中,形成數(shù)據(jù)測例。為了便于自動測試腳本復(fù)用,增加了模塊化數(shù)據(jù),實現(xiàn)了一個腳本可以對應(yīng)多個測例。
測試環(huán)境數(shù)據(jù)分為3類:①測例,包括測例名稱、對應(yīng)的模塊名、測例步驟、測試預(yù)置條件、測試預(yù)期結(jié)果。測試步驟、測試預(yù)置條件及測試預(yù)期結(jié)果以列表方式存放,便于測試報告模塊調(diào)用。②測例屬性,包括測例所屬產(chǎn)品線、測例所屬測試級別、測例適用產(chǎn)品型號。測例適用產(chǎn)品型號以列表方式存放,便于測例執(zhí)行時調(diào)用選擇。③網(wǎng)絡(luò)測試儀信息,包括占用端口信息、端口發(fā)送流量數(shù)目。網(wǎng)絡(luò)測試儀信息以字典嵌套列表方式存放,便于測例中和測試儀的指定端口建立連接,以及指定端口發(fā)送指定流量。
2.1.2 網(wǎng)頁配置數(shù)據(jù)
如圖4所示,網(wǎng)頁配置數(shù)據(jù)指的是測例中交換機(jī)的所有配置數(shù)據(jù),以字典的方式存儲網(wǎng)頁元素值。字典的key是配置參數(shù)名,value是具體配置參數(shù)的元素id。Value以列表方式存放,可解決不同測例需要配置不同的交換機(jī)參數(shù)的問題。
網(wǎng)頁配置數(shù)據(jù)包括交換機(jī)的VLAN功能配置數(shù)據(jù)、MAC功能配置數(shù)據(jù)、STP功能配置數(shù)據(jù)、組播功能配置數(shù)據(jù)、Qos功能配置數(shù)據(jù)等。
2.1.3 流量配置數(shù)據(jù)
如圖5所示,流量配置數(shù)據(jù)指的是網(wǎng)絡(luò)測試儀構(gòu)建的測試流量,通過構(gòu)建的測試流量下發(fā)到交換機(jī),從而驗證交換機(jī)在不同場景不同性能下的指標(biāo)是否符合預(yù)期。
每個測例需要用到的網(wǎng)絡(luò)測試儀端口數(shù)目不一,每個測試儀端口下的流量數(shù)目和流量內(nèi)容也不同,采取列表嵌套字典的方式存放。列表中的每個元素對應(yīng)一條流量,列表有幾個元素即該測例需要網(wǎng)絡(luò)測試儀下發(fā)幾條流量。每條流量以字典方式存放,字典的key是流量屬性,包括流量的源MAC地址、目的MAC地址、VLAN、優(yōu)先級、幀長、持續(xù)時間、發(fā)送模式、發(fā)送速率等。字典的value是流量屬性值,根據(jù)測例的測試目的設(shè)置流量屬性對應(yīng)的屬性值。這樣可以滿足不同測例需要用不同數(shù)目、不同內(nèi)容的流量。
配合測試環(huán)境數(shù)據(jù)中的網(wǎng)絡(luò)測試儀信息,可以按需分配測試儀端口下的流量,以解決每個測例用到的網(wǎng)絡(luò)測試儀端口數(shù)目不一的問題。
測例環(huán)境數(shù)據(jù)、網(wǎng)頁配置數(shù)據(jù)及流量配置數(shù)據(jù)都存在Excel中,開發(fā)解析表格的程序,提取對應(yīng)值給測試腳本使用。
2.2 測試腳本開發(fā)
人機(jī)交互界面導(dǎo)入測試環(huán)境配置文件和測例文件,選擇測試報告存儲路徑,選擇測試等級(會自動構(gòu)建測試策略,按照需要的測試等級選擇測試腳本)開始執(zhí)行,執(zhí)行完成后會給出提示信息。
3 自動測試結(jié)果與分析
3.1 測試報告
測例全部執(zhí)行完成后,會自動給出測試報告,報告中包括測例名稱、測試步驟、預(yù)期結(jié)果及實際執(zhí)行結(jié)果。實際執(zhí)行結(jié)果包括是否通過,以及測試流量的收發(fā)詳細(xì)情況,報告以Word方式存儲。
3.2 采集測試過程信息
為了便于對執(zhí)行失敗的測例進(jìn)行定位分析,或在同等配置下進(jìn)行手工測試,該自動測試系統(tǒng)支持自動收集交換機(jī)當(dāng)前配置信息,以XML方式存儲,可以直接下載到交換機(jī)恢復(fù)指定環(huán)境。此外,還支持收集測試流量信息,以XML方式存儲,可以直接在網(wǎng)絡(luò)測試儀加載使用。
4 結(jié)束語
變電站網(wǎng)絡(luò)交換機(jī)自動測試系統(tǒng)實現(xiàn)了交換機(jī)的功能和性能的自動化測試,同時可以自動輸出交換機(jī)測試報告,并采集測試過程信息,極大地提高了測試效率,降低了人力成本,并保證了測試結(jié)果的可靠性。該系統(tǒng)在研發(fā)測試階段和批量檢測階段均具有較高的應(yīng)用價值。